diff --git a/tests/baselines/reference/1.0lib-noErrors.types b/tests/baselines/reference/1.0lib-noErrors.types index f7d94356d476b..2be844402cad2 100644 --- a/tests/baselines/reference/1.0lib-noErrors.types +++ b/tests/baselines/reference/1.0lib-noErrors.types @@ -2081,7 +2081,7 @@ interface Array { */ concat(...items: U[]): T[]; >concat : { (...items: U[]): T[]; (...items: T[]): T[]; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >items : U[] > : ^^^ @@ -2091,7 +2091,7 @@ interface Array { */ concat(...items: T[]): T[]; >concat : { (...items: U[]): T[]; (...items: T[]): T[]; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >items : T[] > : ^^^ @@ -2286,7 +2286,7 @@ interface Array { */ map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; >map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >callbackfn : (value: T, index: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2322,7 +2322,7 @@ interface Array { */ reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; >reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : T @@ -2343,7 +2343,7 @@ interface Array { */ reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; >reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : U @@ -2364,7 +2364,7 @@ interface Array { */ reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; >reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : T @@ -2385,7 +2385,7 @@ interface Array { */ reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; >reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : U @@ -2412,7 +2412,7 @@ interface Array { } declare var Array: { >Array : { (arrayLength?: number): any[]; (arrayLength: number): T[]; (...items: T[]): T[]; new (arrayLength?: number): any[]; new (arrayLength: number): T[]; new (...items: T[]): T[]; isArray(arg: any): boolean; prototype: Array; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^ new (arrayLength?: number): any[]; >arrayLength : number diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.types b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.types index b5d83b085fe32..9f0063ecf0c33 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.types +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.types @@ -15,7 +15,7 @@ class clodule { static fn(id: U) { } >fn : (id: U) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >id : U > : ^ } @@ -27,7 +27,7 @@ module clodule { // error: duplicate identifier expected export function fn(x: T, y: T): T { >fn : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.types b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.types index 4c07c54074623..465a9653db89a 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.types +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.types @@ -27,7 +27,7 @@ module clodule { // error: duplicate identifier expected export function fn(x: T, y: T): T { >fn : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedStaticFunctionUsingClassPrivateStatics.types b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedStaticFunctionUsingClassPrivateStatics.types index dab3a189612fd..b330c272c8143 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedStaticFunctionUsingClassPrivateStatics.types +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedStaticFunctionUsingClassPrivateStatics.types @@ -29,7 +29,7 @@ module clodule { // error: duplicate identifier expected export function fn(x: T, y: T): number { >fn : (x: T, y: T) => number -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/ES5For-ofTypeCheck13.types b/tests/baselines/reference/ES5For-ofTypeCheck13.types index 57b4befbd990d..472d2177469fe 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck13.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck13.types @@ -13,11 +13,11 @@ strSet.add('Hello') >strSet.add('Hello') : Set > : ^^^^^^^^^^^ >strSet.add : (value: string) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >strSet : Set > : ^^^^^^^^^^^ >add : (value: string) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >'Hello' : "Hello" > : ^^^^^^^ @@ -25,11 +25,11 @@ strSet.add('World') >strSet.add('World') : Set > : ^^^^^^^^^^^ >strSet.add : (value: string) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >strSet : Set > : ^^^^^^^^^^^ >add : (value: string) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >'World' : "World" > : ^^^^^^^ diff --git a/tests/baselines/reference/ModuleWithExportedAndNonExportedFunctions.types b/tests/baselines/reference/ModuleWithExportedAndNonExportedFunctions.types index 73a4a2b513ba5..5bf08192c30d7 100644 --- a/tests/baselines/reference/ModuleWithExportedAndNonExportedFunctions.types +++ b/tests/baselines/reference/ModuleWithExportedAndNonExportedFunctions.types @@ -18,7 +18,7 @@ module A { export function fng(s: T): U { >fng : (s: T) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s : T > : ^ @@ -38,7 +38,7 @@ module A { function fng2(s: T): U { >fng2 : (s: T) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s : T > : ^ @@ -65,19 +65,19 @@ var fn = A.fn; var fng: (s: T) => U; >fng : (s: T) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s : T > : ^ var fng = A.fng; // bug 838015 >fng : (s: T) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >A.fng : (s: T) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >A : typeof A > : ^^^^^^^^ >fng : (s: T) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ // these should be errors since the functions are not exported var fn2 = A.fn2; diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types index df868ced09330..79d0e5911f42c 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types @@ -21,7 +21,7 @@ module A { export function mirror(p: T) { >mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p : T > : ^ @@ -123,7 +123,7 @@ var o = A.Utils.mirror(o); >A.Utils.mirror(o) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >A.Utils.mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >A.Utils : typeof A.Utils > : ^^^^^^^^^^^^^^ >A : typeof A @@ -131,7 +131,7 @@ var o = A.Utils.mirror(o); >Utils : typeof A.Utils > : ^^^^^^^^^^^^^^ >mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : { x: number; y: number; } > : ^^^^^ ^^^^^ ^^^ diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types index cf8deaad9704a..21f7388a8f87e 100644 --- a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types +++ b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types @@ -21,7 +21,7 @@ export module A { export function mirror(p: T) { >mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p : T > : ^ diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types index 1e0e29ec3dd25..809d2b3bf3fda 100644 --- a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndDifferentCommonRoot.types @@ -25,7 +25,7 @@ module Root { export function mirror(p: T) { >mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p : T > : ^ diff --git a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types index 2e2e43b4cc31d..5246758ddb296 100644 --- a/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types +++ b/tests/baselines/reference/TwoInternalModulesWithTheSameNameAndSameCommonRoot.types @@ -21,7 +21,7 @@ module A { export function mirror(p: T) { >mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p : T > : ^ @@ -117,7 +117,7 @@ var o = A.Utils.mirror(o); >A.Utils.mirror(o) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >A.Utils.mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >A.Utils : typeof A.Utils > : ^^^^^^^^^^^^^^ >A : typeof A @@ -125,7 +125,7 @@ var o = A.Utils.mirror(o); >Utils : typeof A.Utils > : ^^^^^^^^^^^^^^ >mirror : (p: T) => { x: number; y: number; } -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : { x: number; y: number; } > : ^^^^^ ^^^^^ ^^^ diff --git a/tests/baselines/reference/acceptSymbolAsWeakType.types b/tests/baselines/reference/acceptSymbolAsWeakType.types index fb7de081382bc..59faf3b79c555 100644 --- a/tests/baselines/reference/acceptSymbolAsWeakType.types +++ b/tests/baselines/reference/acceptSymbolAsWeakType.types @@ -27,11 +27,11 @@ ws.add(s); >ws.add(s) : WeakSet > : ^^^^^^^^^^^^^^^ >ws.add : (value: symbol) => WeakSet -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >ws : WeakSet > : ^^^^^^^^^^^^^^^ >add : (value: symbol) => WeakSet -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >s : symbol > : ^^^^^^ @@ -79,11 +79,11 @@ wm.set(s, true); >wm.set(s, true) : WeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^ >wm.set : (key: symbol, value: boolean) => WeakMap -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^ >wm : WeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^ >set : (key: symbol, value: boolean) => WeakMap -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^ >s : symbol > : ^^^^^^ >true : true @@ -105,11 +105,11 @@ wm.get(s); >wm.get(s) : boolean | undefined > : ^^^^^^^^^^^^^^^^^^^ >wm.get : (key: symbol) => boolean | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >wm : WeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^ >get : (key: symbol) => boolean | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >s : symbol > : ^^^^^^ @@ -139,11 +139,11 @@ wr.deref(); >wr.deref() : symbol | undefined > : ^^^^^^^^^^^^^^^^^^ >wr.deref : () => symbol | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ >wr : WeakRef > : ^^^^^^^^^^^^^^^ >deref : () => symbol | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ const f = new FinalizationRegistry(() => {}); >f : FinalizationRegistry diff --git a/tests/baselines/reference/accessorsOverrideProperty8.types b/tests/baselines/reference/accessorsOverrideProperty8.types index 33c2b8cf935d4..7d786f5df5c64 100644 --- a/tests/baselines/reference/accessorsOverrideProperty8.types +++ b/tests/baselines/reference/accessorsOverrideProperty8.types @@ -22,7 +22,7 @@ type AnyCtor

= new (...a: any[]) => P declare function classWithProperties(properties: T, klass: AnyCtor

): { >classWithProperties : (properties: T, klass: AnyCtor

) => { new (): P & Properties; prototype: P & Properties; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : string > : ^^^^^^ >properties : T @@ -39,11 +39,11 @@ declare function classWithPropertiesBase : { new (): Base & Properties<{ readonly x: "boolean"; y: "string"; }>; prototype: Base & Properties<{ readonly x: "boolean"; y: "string"; }>; } -> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >classWithProperties({ get x() { return 'boolean' as const }, y: 'string',}, class Base {}) : { new (): Base & Properties<{ readonly x: "boolean"; y: "string"; }>; prototype: Base & Properties<{ readonly x: "boolean"; y: "string"; }>; } -> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >classWithProperties : (properties: T, klass: AnyCtor

) => { new (): P & Properties; prototype: P & Properties; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ get x() { return 'boolean' as const }, y: 'string',} : { readonly x: "boolean"; y: "string"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/accessorsOverrideProperty9.types b/tests/baselines/reference/accessorsOverrideProperty9.types index c87f2cb1fda6a..4594652414c30 100644 --- a/tests/baselines/reference/accessorsOverrideProperty9.types +++ b/tests/baselines/reference/accessorsOverrideProperty9.types @@ -50,7 +50,7 @@ interface ApiItemContainerMixin extends ApiItem { function ApiItemContainerMixin( >ApiItemContainerMixin : (baseClass: TBaseClass) => TBaseClass & (new (...args: any[]) => ApiItemContainerMixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ baseClass: TBaseClass >baseClass : TBaseClass @@ -102,7 +102,7 @@ export class ApiEnum extends ApiItemContainerMixin(ApiItem) { >ApiItemContainerMixin(ApiItem) : ApiItem & ApiItemContainerMixin > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ApiItemContainerMixin : (baseClass: TBaseClass) => TBaseClass & (new (...args: any[]) => ApiItemContainerMixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >ApiItem : typeof ApiItem > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/additionOperatorWithConstrainedTypeParameter.types b/tests/baselines/reference/additionOperatorWithConstrainedTypeParameter.types index e42aab3004d1c..b13b971c34ed1 100644 --- a/tests/baselines/reference/additionOperatorWithConstrainedTypeParameter.types +++ b/tests/baselines/reference/additionOperatorWithConstrainedTypeParameter.types @@ -4,7 +4,7 @@ // test for #17069 function sum, K extends string>(n: number, v: T, k: K) { >sum : , K extends string>(n: number, v: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : number > : ^^^^^^ >v : T @@ -42,7 +42,7 @@ function sum, K extends string>(n: number, v: T, k: } function realSum, K extends string>(n: number, vs: T[], k: K) { >realSum : , K extends string>(n: number, vs: T[], k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : number > : ^^^^^^ >vs : T[] diff --git a/tests/baselines/reference/additionOperatorWithTypeParameter.types b/tests/baselines/reference/additionOperatorWithTypeParameter.types index 5291fc2fe0e57..19a60cdea2b82 100644 --- a/tests/baselines/reference/additionOperatorWithTypeParameter.types +++ b/tests/baselines/reference/additionOperatorWithTypeParameter.types @@ -12,7 +12,7 @@ enum E { a, b } function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash1.types b/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash1.types index a5e42e379a797..bc83af7c62330 100644 --- a/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash1.types +++ b/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash1.types @@ -12,7 +12,7 @@ class ErrImpl { declare const Err: typeof ErrImpl & (() => T); >Err : typeof ErrImpl & (() => T) -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >ErrImpl : typeof ErrImpl > : ^^^^^^^^^^^^^^ @@ -20,7 +20,7 @@ type ErrAlias = typeof Err; >ErrAlias : { new (): ErrImpl; prototype: ErrImpl; } & (() => U) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Err : typeof ErrImpl & (() => T) -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ declare const e: ErrAlias; >e : { new (): ErrImpl; prototype: ErrImpl; } & (() => number) diff --git a/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash2.types b/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash2.types index 6d3b00218874e..227cbc24c5a72 100644 --- a/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash2.types +++ b/tests/baselines/reference/aliasInstantiationExpressionGenericIntersectionNoCrash2.types @@ -12,7 +12,7 @@ declare class Class { declare function fn(): T; >fn : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ type ClassAlias = typeof Class; @@ -25,7 +25,7 @@ type FnAlias = typeof fn; >FnAlias : typeof fn > : >fn : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ type Wat = ClassAlias & FnAlias; >Wat : Wat diff --git a/tests/baselines/reference/aliasUsageInGenericFunction.types b/tests/baselines/reference/aliasUsageInGenericFunction.types index d197ab6f2d306..940beb6bbc0c3 100644 --- a/tests/baselines/reference/aliasUsageInGenericFunction.types +++ b/tests/baselines/reference/aliasUsageInGenericFunction.types @@ -22,7 +22,7 @@ interface IHasVisualizationModel { } function foo(x: T) { >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >a : IHasVisualizationModel > : ^^^^^^^^^^^^^^^^^^^^^^ >x : T @@ -38,7 +38,7 @@ var r = foo({ a: moduleA }); >foo({ a: moduleA }) : { a: typeof moduleA; } > : ^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ a: moduleA } : { a: typeof moduleA; } > : ^^^^^^^^^^^^^^^^^^^^^^ >a : typeof moduleA @@ -52,7 +52,7 @@ var r2 = foo({ a: null }); >foo({ a: null }) : { a: IHasVisualizationModel; } > : ^^^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ a: null } : { a: IHasVisualizationModel; } > : ^^^^^ ^^^ >a : IHasVisualizationModel diff --git a/tests/baselines/reference/allowJscheckJsTypeParameterNoCrash.types b/tests/baselines/reference/allowJscheckJsTypeParameterNoCrash.types index 7904fc785a0f9..71bce2f719d7f 100644 --- a/tests/baselines/reference/allowJscheckJsTypeParameterNoCrash.types +++ b/tests/baselines/reference/allowJscheckJsTypeParameterNoCrash.types @@ -27,7 +27,7 @@ export var vextend = extend; === app.js === import {vextend} from './func'; >vextend : (options: ComponentOptions<{}>) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ // hover on vextend export var a = vextend({ @@ -36,7 +36,7 @@ export var a = vextend({ >vextend({ watch: { data1(val) { this.data2 = 1; }, data2(val) { }, }}) : void > : ^^^^ >vextend : (options: ComponentOptions<{}>) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ watch: { data1(val) { this.data2 = 1; }, data2(val) { }, }} : { watch: { data1(val: any): void; }; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/ambientConstLiterals.types b/tests/baselines/reference/ambientConstLiterals.types index 50e0f36e70664..a4fadad5e7dc3 100644 --- a/tests/baselines/reference/ambientConstLiterals.types +++ b/tests/baselines/reference/ambientConstLiterals.types @@ -3,7 +3,7 @@ === ambientConstLiterals.ts === function f(x: T): T { >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -54,7 +54,7 @@ const c5 = f(123); >f(123) : 123 > : ^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >123 : 123 > : ^^^ @@ -64,7 +64,7 @@ const c6 = f(-123); >f(-123) : -123 > : ^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >-123 : -123 > : ^^^^ >123 : 123 diff --git a/tests/baselines/reference/ambientDeclarations.types b/tests/baselines/reference/ambientDeclarations.types index c403f220e083b..ba3faf5da75e7 100644 --- a/tests/baselines/reference/ambientDeclarations.types +++ b/tests/baselines/reference/ambientDeclarations.types @@ -72,7 +72,7 @@ declare function fn9(...q: {}[]); declare function fn10(...q: T[]); >fn10 : (...q: T[]) => any -> : ^ ^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >q : T[] > : ^^^ diff --git a/tests/baselines/reference/ambiguousGenericAssertion1.types b/tests/baselines/reference/ambiguousGenericAssertion1.types index 605a874b06f6b..5cd4547d80397 100644 --- a/tests/baselines/reference/ambiguousGenericAssertion1.types +++ b/tests/baselines/reference/ambiguousGenericAssertion1.types @@ -3,15 +3,15 @@ === ambiguousGenericAssertion1.ts === function f(x: T): T { return null; } >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var r = (x: T) => x; >r : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -19,13 +19,13 @@ var r = (x: T) => x; var r2 = < (x: T) => T>f; // valid >r2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >< (x: T) => T>f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r3 = <(x: T) => T>f; // ambiguous, appears to the parser as a << operation >r3 : boolean @@ -49,5 +49,5 @@ var r3 = <(x: T) => T>f; // ambiguous, appears to the parser as a << operatio >T : any > : ^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/amdDeclarationEmitNoExtraDeclare.types b/tests/baselines/reference/amdDeclarationEmitNoExtraDeclare.types index 298d9b7a59a76..59d3d60cb9f2c 100644 --- a/tests/baselines/reference/amdDeclarationEmitNoExtraDeclare.types +++ b/tests/baselines/reference/amdDeclarationEmitNoExtraDeclare.types @@ -3,7 +3,7 @@ === Class.ts === import { Configurable } from "./Configurable" >Configurable : >(base: T) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ export class HiddenClass {} >HiddenClass : HiddenClass @@ -15,7 +15,7 @@ export class ActualClass extends Configurable(HiddenClass) {} >Configurable(HiddenClass) : HiddenClass > : ^^^^^^^^^^^ >Configurable : >(base: T) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ >HiddenClass : typeof HiddenClass > : ^^^^^^^^^^^^^^^^^^ @@ -30,7 +30,7 @@ export type Constructor = { } export function Configurable>(base: T): T { >Configurable : >(base: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >base : T > : ^ diff --git a/tests/baselines/reference/amdLikeInputDeclarationEmit.types b/tests/baselines/reference/amdLikeInputDeclarationEmit.types index 8c8e555cd2240..e5d2f7e626e7a 100644 --- a/tests/baselines/reference/amdLikeInputDeclarationEmit.types +++ b/tests/baselines/reference/amdLikeInputDeclarationEmit.types @@ -3,7 +3,7 @@ === typing.d.ts === declare function define(name: string, modules: string[], ready: (...modules: unknown[]) => T); >define : (name: string, modules: string[], ready: (...modules: unknown[]) => T) => any -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >name : string > : ^^^^^^ >modules : string[] @@ -24,7 +24,7 @@ declare module "deps/BaseClass" { static extends(a: A): new () => A & BaseClass; >extends : (a: A) => new () => A & BaseClass -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : A > : ^ } @@ -36,7 +36,7 @@ declare module "deps/BaseClass" { define("lib/ExtendedClass", ["deps/BaseClass"], >define("lib/ExtendedClass", ["deps/BaseClass"], /** * {typeof import("deps/BaseClass")} * @param {typeof import("deps/BaseClass")} BaseClass * @returns */(BaseClass) => { const ExtendedClass = BaseClass.extends({ f: function() { return "something"; } }); // Exports the module in a way tsc recognize class export const module = {}; module.exports = ExtendedClass return module.exports;}) : any >define : (name: string, modules: string[], ready: (...modules: unknown[]) => T) => any -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >"lib/ExtendedClass" : "lib/ExtendedClass" > : ^^^^^^^^^^^^^^^^^^^ >["deps/BaseClass"] : string[] @@ -57,15 +57,15 @@ define("lib/ExtendedClass", ["deps/BaseClass"], const ExtendedClass = BaseClass.extends({ >ExtendedClass : new () => { f: () => "something"; } & import("deps/BaseClass") -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ >BaseClass.extends({ f: function() { return "something"; } }) : new () => { f: () => "something"; } & import("deps/BaseClass") -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ >BaseClass.extends : (a: A) => new () => A & import("deps/BaseClass") -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >BaseClass : typeof import("deps/BaseClass") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >extends : (a: A) => new () => A & import("deps/BaseClass") -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >{ f: function() { return "something"; } } : { f: () => "something"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -96,7 +96,7 @@ define("lib/ExtendedClass", ["deps/BaseClass"], >exports : any > : ^^^ >ExtendedClass : new () => { f: () => "something"; } & import("deps/BaseClass") -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ return module.exports; >module.exports : any diff --git a/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types b/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types index 28dfac47372a5..3fa3028724b4d 100644 --- a/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types +++ b/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types @@ -30,7 +30,7 @@ export type Constructor = new (...args: any[]) => T; export function Timestamped(Base: TBase) { >Timestamped : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : TBase > : ^^^^^ @@ -60,7 +60,7 @@ import { wrapClass, Timestamped } from "./wrapClass"; >wrapClass : (param: any) => typeof Wrapped > : ^ ^^ ^^^^^^^^^^^^^^^^^^^ >Timestamped : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ export default wrapClass(0); >wrapClass(0) : typeof Wrapped @@ -89,7 +89,7 @@ export class TimestampedUser extends Timestamped(User) { >Timestamped(User) : Timestamped.(Anonymous class) & User > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Timestamped : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >User : typeof User > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/anyAssignabilityInInheritance.types b/tests/baselines/reference/anyAssignabilityInInheritance.types index 9d3dfd809172f..23c12c3485f51 100644 --- a/tests/baselines/reference/anyAssignabilityInInheritance.types +++ b/tests/baselines/reference/anyAssignabilityInInheritance.types @@ -239,7 +239,7 @@ declare function foo13(x: (x: T) => T): (x: T) => T; >foo13 : { (x: (x: T) => T): (x: T) => T; (x: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/anyAssignableToEveryType.types b/tests/baselines/reference/anyAssignableToEveryType.types index e298b59a6d888..871c941b59991 100644 --- a/tests/baselines/reference/anyAssignableToEveryType.types +++ b/tests/baselines/reference/anyAssignableToEveryType.types @@ -123,7 +123,7 @@ var n: { foo: string } = a; var o: (x: T) => T = a; >o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >a : any @@ -140,7 +140,7 @@ var q: String = a; function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/anyInferenceAnonymousFunctions.types b/tests/baselines/reference/anyInferenceAnonymousFunctions.types index 8d06646fc9793..1f5b0f704ae2b 100644 --- a/tests/baselines/reference/anyInferenceAnonymousFunctions.types +++ b/tests/baselines/reference/anyInferenceAnonymousFunctions.types @@ -8,11 +8,11 @@ var paired: any[]; paired.reduce(function (a1, a2) { >paired.reduce(function (a1, a2) { return a1.concat({});} , []) : any >paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >paired : any[] > : ^^^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >function (a1, a2) { return a1.concat({});} : (a1: any, a2: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >a1 : any @@ -35,11 +35,11 @@ paired.reduce(function (a1, a2) { paired.reduce((b1, b2) => { >paired.reduce((b1, b2) => { return b1.concat({});} , []) : any >paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >paired : any[] > : ^^^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(b1, b2) => { return b1.concat({});} : (b1: any, b2: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >b1 : any @@ -62,11 +62,11 @@ paired.reduce((b1, b2) => { paired.reduce((b3, b4) => b3.concat({}), []); >paired.reduce((b3, b4) => b3.concat({}), []) : any >paired.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >paired : any[] > : ^^^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(b3, b4) => b3.concat({}) : (b3: any, b4: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >b3 : any diff --git a/tests/baselines/reference/argumentsReferenceInFunction1_Js.types b/tests/baselines/reference/argumentsReferenceInFunction1_Js.types index 2d41b9e618782..7df593eeb4fa0 100644 --- a/tests/baselines/reference/argumentsReferenceInFunction1_Js.types +++ b/tests/baselines/reference/argumentsReferenceInFunction1_Js.types @@ -93,11 +93,11 @@ const debuglog = function() { >format.apply(null, arguments) : string > : ^^^^^^ >format.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >format : (f: any, ...args: any[]) => string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/argumentsSpreadRestIterables(target=es5).types b/tests/baselines/reference/argumentsSpreadRestIterables(target=es5).types index f6c3889ad00d4..6ed06a68bde6f 100644 --- a/tests/baselines/reference/argumentsSpreadRestIterables(target=es5).types +++ b/tests/baselines/reference/argumentsSpreadRestIterables(target=es5).types @@ -59,7 +59,7 @@ declare const itNum: Iterable declare function fn1(...args: T): T; >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -69,7 +69,7 @@ const res1 = fn1(..."hello"); >fn1(..."hello") : readonly any[] > : ^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >..."hello" : any > : ^^^ >"hello" : "hello" @@ -81,7 +81,7 @@ const res2 = fn1(...itNum); >fn1(...itNum) : Iterable > : ^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...itNum : Iterable > : ^^^^^^^^^^^^^^^^ >itNum : Iterable @@ -93,7 +93,7 @@ const res3 = fn1(true, ..."hello"); >fn1(true, ..."hello") : readonly [true, ...any[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >..."hello" : any @@ -107,7 +107,7 @@ const res4 = fn1(true, ...itNum); >fn1(true, ...itNum) : readonly [true, ...Iterable[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...itNum : Iterable @@ -118,7 +118,7 @@ const res4 = fn1(true, ...itNum); // repro from #52781 declare function foo(...args: T): T; >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -128,7 +128,7 @@ const p1 = foo(..."hello"); >foo(..."hello") : any[] > : ^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >..."hello" : any > : ^^^ >"hello" : "hello" @@ -140,7 +140,7 @@ const p2 = foo(...itNum); >foo(...itNum) : Iterable > : ^^^^^^^^^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...itNum : Iterable > : ^^^^^^^^^^^^^^^^ >itNum : Iterable @@ -152,7 +152,7 @@ const p3 = foo(true, ..."hello"); >foo(true, ..."hello") : [boolean, ...any[]] > : ^^^^^^^^^^^^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >..."hello" : any @@ -166,7 +166,7 @@ const p4 = foo(true, ...itNum); >foo(true, ...itNum) : [boolean, ...Iterable[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...itNum : Iterable diff --git a/tests/baselines/reference/argumentsSpreadRestIterables(target=esnext).types b/tests/baselines/reference/argumentsSpreadRestIterables(target=esnext).types index be4b8553796b9..10466fcd16818 100644 --- a/tests/baselines/reference/argumentsSpreadRestIterables(target=esnext).types +++ b/tests/baselines/reference/argumentsSpreadRestIterables(target=esnext).types @@ -59,7 +59,7 @@ declare const itNum: Iterable declare function fn1(...args: T): T; >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -69,7 +69,7 @@ const res1 = fn1(..."hello"); >fn1(..."hello") : readonly string[] > : ^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >..."hello" : string > : ^^^^^^ >"hello" : "hello" @@ -81,7 +81,7 @@ const res2 = fn1(...itNum); >fn1(...itNum) : readonly number[] > : ^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...itNum : number > : ^^^^^^ >itNum : Iterable @@ -93,7 +93,7 @@ const res3 = fn1(true, ..."hello"); >fn1(true, ..."hello") : readonly [true, ...string[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >..."hello" : string @@ -107,7 +107,7 @@ const res4 = fn1(true, ...itNum); >fn1(true, ...itNum) : readonly [true, ...number[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...itNum : number @@ -118,7 +118,7 @@ const res4 = fn1(true, ...itNum); // repro from #52781 declare function foo(...args: T): T; >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -128,7 +128,7 @@ const p1 = foo(..."hello"); >foo(..."hello") : string[] > : ^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >..."hello" : string > : ^^^^^^ >"hello" : "hello" @@ -140,7 +140,7 @@ const p2 = foo(...itNum); >foo(...itNum) : number[] > : ^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...itNum : number > : ^^^^^^ >itNum : Iterable @@ -152,7 +152,7 @@ const p3 = foo(true, ..."hello"); >foo(true, ..."hello") : [boolean, ...string[]] > : ^^^^^^^^^^^^^^^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >..."hello" : string @@ -166,7 +166,7 @@ const p4 = foo(true, ...itNum); >foo(true, ...itNum) : [boolean, ...number[]] > : ^^^^^^^^^^^^^^^^^^^^^^ >foo : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...itNum : number diff --git a/tests/baselines/reference/arithmeticOnInvalidTypes2.types b/tests/baselines/reference/arithmeticOnInvalidTypes2.types index 72572b5599434..5119da3b2ec6b 100644 --- a/tests/baselines/reference/arithmeticOnInvalidTypes2.types +++ b/tests/baselines/reference/arithmeticOnInvalidTypes2.types @@ -3,11 +3,11 @@ === arithmeticOnInvalidTypes2.ts === var obj = function f(a: T, b: T) { >obj : (a: T, b: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >function f(a: T, b: T) { var z1 = a + b; var z2 = a - b; var z3 = a * b; var z4 = a / b; return a;} : (a: T, b: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >f : (a: T, b: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >a : T > : ^ >b : T diff --git a/tests/baselines/reference/arithmeticOperatorWithTypeParameter.types b/tests/baselines/reference/arithmeticOperatorWithTypeParameter.types index 11e91bc03c362..6046dfe6d5815 100644 --- a/tests/baselines/reference/arithmeticOperatorWithTypeParameter.types +++ b/tests/baselines/reference/arithmeticOperatorWithTypeParameter.types @@ -4,7 +4,7 @@ // type parameter type is not valid for arithmetic operand function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/arrayAugment.types b/tests/baselines/reference/arrayAugment.types index 6a91cbccca3cc..35f5e587fe8d8 100644 --- a/tests/baselines/reference/arrayAugment.types +++ b/tests/baselines/reference/arrayAugment.types @@ -23,11 +23,11 @@ var y = x.split(4); >x.split(4) : string[][] > : ^^^^^^^^^^ >x.split : (parts: number) => string[][] -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : string[] > : ^^^^^^^^ >split : (parts: number) => string[][] -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >4 : 4 > : ^ diff --git a/tests/baselines/reference/arrayConcat2.types b/tests/baselines/reference/arrayConcat2.types index b7eefc82f1c5f..849000f9745b4 100644 --- a/tests/baselines/reference/arrayConcat2.types +++ b/tests/baselines/reference/arrayConcat2.types @@ -11,11 +11,11 @@ a.concat("hello", 'world'); >a.concat("hello", 'world') : string[] > : ^^^^^^^^ >a.concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >a : string[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >"hello" : "hello" > : ^^^^^^^ >'world' : "world" @@ -25,11 +25,11 @@ a.concat('Hello'); >a.concat('Hello') : string[] > : ^^^^^^^^ >a.concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >a : string[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >'Hello' : "Hello" > : ^^^^^^^ @@ -45,11 +45,11 @@ b.concat('hello'); >b.concat('hello') : string[] > : ^^^^^^^^ >b.concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >b : string[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >'hello' : "hello" > : ^^^^^^^ diff --git a/tests/baselines/reference/arrayConcat3.types b/tests/baselines/reference/arrayConcat3.types index 74c353243d2fb..2115ef5a57f4c 100644 --- a/tests/baselines/reference/arrayConcat3.types +++ b/tests/baselines/reference/arrayConcat3.types @@ -10,7 +10,7 @@ type Fn = (subj: U) => U function doStuff(a: Array>, b: Array>) { >doStuff : (a: Array>, b: Array>) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : Fn[] > : ^^^^^^^ >b : Fn[] @@ -20,11 +20,11 @@ function doStuff(a: Array>, b: Arrayb.concat(a) : Fn[] > : ^^^^^^^^ >b.concat : { (...items: ConcatArray>[]): Fn[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ >b : Fn[] > : ^^^^^^^^ >concat : { (...items: ConcatArray>[]): Fn[]; (...items: (Fn | ConcatArray>)[]): Fn[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ >a : Fn[] > : ^^^^^^^ } diff --git a/tests/baselines/reference/arrayConcatMap.types b/tests/baselines/reference/arrayConcatMap.types index 11c221cf3b470..44115f84a46cf 100644 --- a/tests/baselines/reference/arrayConcatMap.types +++ b/tests/baselines/reference/arrayConcatMap.types @@ -11,11 +11,11 @@ var x = [].concat([{ a: 1 }], [{ a: 2 }]) >[].concat([{ a: 1 }], [{ a: 2 }]) : any[] > : ^^^^^ >[].concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >[] : undefined[] > : ^^^^^^^^^^^ >concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >[{ a: 1 }] : { a: number; }[] > : ^^^^^^^^^^^^^^^^ >{ a: 1 } : { a: number; } diff --git a/tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types b/tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types index 166661165d34c..db6d29bd0f898 100644 --- a/tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types +++ b/tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types @@ -30,7 +30,7 @@ type BadFlatArray = {obj: { declare function flat( >flat : (arr: A, depth?: D) => BadFlatArray[] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^ ^^^^^ arr: A, >arr : A @@ -44,7 +44,7 @@ declare function flat( function foo(arr: T[], depth: number) { >foo : (arr: T[], depth: number) => (T | (T extends readonly (infer InnerArr)[] ? InnerArr | (InnerArr extends readonly (infer InnerArr)[] ? any : InnerArr) : T))[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : T[] > : ^^^ >depth : number @@ -54,7 +54,7 @@ function foo(arr: T[], depth: number) { >flat(arr, depth) : (T | (T extends readonly (infer InnerArr)[] ? InnerArr | (InnerArr extends readonly (infer InnerArr)[] ? any : InnerArr) : T))[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >flat : (arr: A, depth?: D) => BadFlatArray[] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^ ^^^^^ >arr : T[] > : ^^^ >depth : number diff --git a/tests/baselines/reference/arrayFilter.types b/tests/baselines/reference/arrayFilter.types index 6d96955697ebc..d7a2a15de1dce 100644 --- a/tests/baselines/reference/arrayFilter.types +++ b/tests/baselines/reference/arrayFilter.types @@ -35,11 +35,11 @@ foo.filter(x => x.name); //should accepted all possible types not only boolean! >foo.filter(x => x.name) : { name: string; }[] > : ^^^^^^^^^^^^^^^^^^^ >foo.filter : { (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => value is S, thisArg?: any): S[]; (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => unknown, thisArg?: any): { name: string; }[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^ >foo : { name: string; }[] > : ^^^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => value is S, thisArg?: any): S[]; (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => unknown, thisArg?: any): { name: string; }[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^ >x => x.name : (x: { name: string; }) => string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : { name: string; } diff --git a/tests/baselines/reference/arrayFind.types b/tests/baselines/reference/arrayFind.types index 8b225c6ccd1f6..287b525eef832 100644 --- a/tests/baselines/reference/arrayFind.types +++ b/tests/baselines/reference/arrayFind.types @@ -41,11 +41,11 @@ const foundNumber: number | undefined = arrayOfStringsNumbersAndBooleans.find(is >arrayOfStringsNumbersAndBooleans.find(isNumber) : number > : ^^^^^^ >arrayOfStringsNumbersAndBooleans.find : { (predicate: (value: string | number | boolean, index: number, obj: (string | number | boolean)[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: string | number | boolean, index: number, obj: (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean) | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ >arrayOfStringsNumbersAndBooleans : (string | number | boolean)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >find : { (predicate: (value: string | number | boolean, index: number, obj: (string | number | boolean)[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: string | number | boolean, index: number, obj: (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean) | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ >isNumber : (x: any) => x is number > : ^ ^^ ^^^^^ @@ -63,11 +63,11 @@ const readonlyFoundNumber: number | undefined = readonlyArrayOfStringsNumbersAnd >readonlyArrayOfStringsNumbersAndBooleans.find(isNumber) : number > : ^^^^^^ >readonlyArrayOfStringsNumbersAndBooleans.find : { (predicate: (value: string | number | boolean, index: number, obj: readonly (string | number | boolean)[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: string | number | boolean, index: number, obj: readonly (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean) | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ >readonlyArrayOfStringsNumbersAndBooleans : readonly (string | number | boolean)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >find : { (predicate: (value: string | number | boolean, index: number, obj: readonly (string | number | boolean)[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: string | number | boolean, index: number, obj: readonly (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean) | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ >isNumber : (x: any) => x is number > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/arrayFlatNoCrashInference.types b/tests/baselines/reference/arrayFlatNoCrashInference.types index 0d614732f87dc..7162f87f08654 100644 --- a/tests/baselines/reference/arrayFlatNoCrashInference.types +++ b/tests/baselines/reference/arrayFlatNoCrashInference.types @@ -3,7 +3,7 @@ === arrayFlatNoCrashInference.ts === function foo(arr: T[], depth: number) { >foo : (arr: T[], depth: number) => FlatArray[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : T[] > : ^^^ >depth : number diff --git a/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types b/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types index e062190b0ff4e..b8be856520348 100644 --- a/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types +++ b/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types @@ -3,7 +3,7 @@ === arrayFlatNoCrashInferenceDeclarations.ts === function foo(arr: T[], depth: number) { >foo : (arr: T[], depth: number) => FlatArray[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : T[] > : ^^^ >depth : number diff --git a/tests/baselines/reference/arrayFrom.types b/tests/baselines/reference/arrayFrom.types index dd4a41a176eb7..6a5a5b4152ae7 100644 --- a/tests/baselines/reference/arrayFrom.types +++ b/tests/baselines/reference/arrayFrom.types @@ -44,7 +44,7 @@ const inputARand = getEither(inputA, inputALike); >getEither(inputA, inputALike) : ArrayLike | Iterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >getEither : (in1: Iterable, in2: ArrayLike) => ArrayLike | Iterable -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >inputA : A[] > : ^^^ >inputALike : ArrayLike @@ -64,11 +64,11 @@ const result1: A[] = Array.from(inputA); >Array.from(inputA) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputA : A[] > : ^^^ @@ -78,11 +78,11 @@ const result2: A[] = Array.from(inputA.values()); >Array.from(inputA.values()) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputA.values() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^ >inputA.values : () => IterableIterator @@ -98,11 +98,11 @@ const result3: B[] = Array.from(inputA.values()); // expect error >Array.from(inputA.values()) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputA.values() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^ >inputA.values : () => IterableIterator @@ -118,11 +118,11 @@ const result4: A[] = Array.from(inputB, ({ b }): A => ({ a: b })); >Array.from(inputB, ({ b }): A => ({ a: b })) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputB : B[] > : ^^^ >({ b }): A => ({ a: b }) : ({ b }: B) => A @@ -144,11 +144,11 @@ const result5: A[] = Array.from(inputALike); >Array.from(inputALike) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputALike : ArrayLike > : ^^^^^^^^^^^^ @@ -158,11 +158,11 @@ const result6: B[] = Array.from(inputALike); // expect error >Array.from(inputALike) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputALike : ArrayLike > : ^^^^^^^^^^^^ @@ -172,11 +172,11 @@ const result7: B[] = Array.from(inputALike, ({ a }): B => ({ b: a })); >Array.from(inputALike, ({ a }): B => ({ b: a })) : B[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputALike : ArrayLike > : ^^^^^^^^^^^^ >({ a }): B => ({ b: a }) : ({ a }: A) => B @@ -198,11 +198,11 @@ const result8: A[] = Array.from(inputARand); >Array.from(inputARand) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputARand : ArrayLike | Iterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -212,11 +212,11 @@ const result9: B[] = Array.from(inputARand, ({ a }): B => ({ b: a })); >Array.from(inputARand, ({ a }): B => ({ b: a })) : B[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputARand : ArrayLike | Iterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >({ a }): B => ({ b: a }) : ({ a }: A) => B @@ -238,11 +238,11 @@ const result10: A[] = Array.from(new Set()); >Array.from(new Set()) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >new Set() : Set > : ^^^^^^ >Set : SetConstructor @@ -254,11 +254,11 @@ const result11: B[] = Array.from(inputASet, ({ a }): B => ({ b: a })); >Array.from(inputASet, ({ a }): B => ({ b: a })) : B[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >inputASet : Set > : ^^^^^^ >({ a }): B => ({ b: a }) : ({ a }: A) => B @@ -279,7 +279,7 @@ const result11: B[] = Array.from(inputASet, ({ a }): B => ({ b: a })); // even when the type is written as : Iterable|ArrayLike function getEither (in1: Iterable, in2: ArrayLike) { >getEither : (in1: Iterable, in2: ArrayLike) => ArrayLike | Iterable -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >in1 : Iterable > : ^^^^^^^^^^^ >in2 : ArrayLike diff --git a/tests/baselines/reference/arrayFromAsync.types b/tests/baselines/reference/arrayFromAsync.types index abea2cbd32d8d..2657fc1b70d46 100644 --- a/tests/baselines/reference/arrayFromAsync.types +++ b/tests/baselines/reference/arrayFromAsync.types @@ -57,11 +57,11 @@ function * genPromises (n) { >Promise.resolve(i * 2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >i * 2 : number > : ^^^^^^ >i : number @@ -83,11 +83,11 @@ const arrLike = { >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ @@ -97,11 +97,11 @@ const arrLike = { >Promise.resolve(2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ @@ -111,11 +111,11 @@ const arrLike = { >Promise.resolve(4) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >4 : 4 > : ^ @@ -125,11 +125,11 @@ const arrLike = { >Promise.resolve(6) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >6 : 6 > : ^ @@ -177,11 +177,11 @@ const sameArr1 = await Array.fromAsync(arrLike); >Array.fromAsync(arrLike) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arrLike : { 0: Promise; 1: Promise; 2: Promise; 3: Promise; length: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -193,51 +193,51 @@ const sameArr2 = await Array.fromAsync([Promise.resolve(0), Promise.resolve(2), >Array.fromAsync([Promise.resolve(0), Promise.resolve(2), Promise.resolve(4), Promise.resolve(6)]) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[Promise.resolve(0), Promise.resolve(2), Promise.resolve(4), Promise.resolve(6)] : Promise[] > : ^^^^^^^^^^^^^^^^^ >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ >Promise.resolve(2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ >Promise.resolve(4) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >4 : 4 > : ^ >Promise.resolve(6) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >6 : 6 > : ^ @@ -249,11 +249,11 @@ const sameArr3 = await Array.fromAsync(genPromises(4)); >Array.fromAsync(genPromises(4)) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >genPromises(4) : Generator, void, unknown> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >genPromises : (n: any) => Generator, void, unknown> @@ -269,11 +269,11 @@ const sameArr4 = await Array.fromAsync(asyncGen(4)); >Array.fromAsync(asyncGen(4)) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >asyncGen(4) : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >asyncGen : (n: any) => AsyncGenerator @@ -288,19 +288,19 @@ function Data (n) {} Data.fromAsync = Array.fromAsync; >Data.fromAsync = Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Data.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Data : typeof Data > : ^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ const sameArr5 = await Data.fromAsync(asyncGen(4)); >sameArr5 : number[] @@ -310,11 +310,11 @@ const sameArr5 = await Data.fromAsync(asyncGen(4)); >Data.fromAsync(asyncGen(4)) : Promise > : ^^^^^^^^^^^^^^^^^ >Data.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Data : typeof Data > : ^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >asyncGen(4) : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >asyncGen : (n: any) => AsyncGenerator @@ -330,11 +330,11 @@ const mapArr1 = await Array.fromAsync(asyncGen(4), v => v ** 2); >Array.fromAsync(asyncGen(4), v => v ** 2) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >asyncGen(4) : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >asyncGen : (n: any) => AsyncGenerator @@ -360,11 +360,11 @@ const mapArr2 = await Array.fromAsync([0,2,4,6], v => Promise.resolve(v ** 2)); >Array.fromAsync([0,2,4,6], v => Promise.resolve(v ** 2)) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[0,2,4,6] : number[] > : ^^^^^^^^ >0 : 0 @@ -382,11 +382,11 @@ const mapArr2 = await Array.fromAsync([0,2,4,6], v => Promise.resolve(v ** 2)); >Promise.resolve(v ** 2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >v ** 2 : number > : ^^^^^^ >v : number @@ -402,11 +402,11 @@ const mapArr3 = await Array.fromAsync([0,2,4,6], v => v ** 2); >Array.fromAsync([0,2,4,6], v => v ** 2) : Promise > : ^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[0,2,4,6] : number[] > : ^^^^^^^^ >0 : 0 @@ -461,11 +461,11 @@ const badArray = await Array.fromAsync(badIterable); >Array.fromAsync(badIterable) : Promise > : ^^^^^^^^^^^^^^^^^^ >Array.fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >fromAsync : { (iterableOrArrayLike: AsyncIterable | Iterable> | ArrayLike>): Promise; (iterableOrArrayLike: AsyncIterable | Iterable | ArrayLike, mapFn: (value: Awaited) => U, thisArg?: any): Promise[]>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >badIterable : { [Symbol.iterator](): never; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/arrayLiteralInference.types b/tests/baselines/reference/arrayLiteralInference.types index 6520794bbf907..3f3e6b9278c39 100644 --- a/tests/baselines/reference/arrayLiteralInference.types +++ b/tests/baselines/reference/arrayLiteralInference.types @@ -181,7 +181,7 @@ const appTypeStylesWithError: Map> = new Map([ declare function foo(...args: T[]): T[]; >foo : (...args: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >args : T[] > : ^^^ @@ -193,7 +193,7 @@ let b1: { x: boolean }[] = foo({ x: true }, { x: false }); >foo({ x: true }, { x: false }) : ({ x: true; } | { x: false; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (...args: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ x: true } : { x: true; } > : ^^^^^^^^^^^^ >x : true @@ -213,7 +213,7 @@ let b2: boolean[][] = foo([true], [false]); >foo([true], [false]) : (true[] | false[])[] > : ^^^^^^^^^^^^^^^^^^^^ >foo : (...args: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[true] : true[] > : ^^^^^^ >true : true diff --git a/tests/baselines/reference/arrayOfFunctionTypes3.types b/tests/baselines/reference/arrayOfFunctionTypes3.types index fc811643c30ce..7e7d6c6b22624 100644 --- a/tests/baselines/reference/arrayOfFunctionTypes3.types +++ b/tests/baselines/reference/arrayOfFunctionTypes3.types @@ -122,7 +122,7 @@ var r5b = r4(1); var a2: { (x: T): number; (x: string): string;}; >a2 : { (x: T): number; (x: string): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : string @@ -130,7 +130,7 @@ var a2: { (x: T): number; (x: string): string;}; var b2: { (x: T): number; (x: string): string; }; >b2 : { (x: T): number; (x: string): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : string @@ -138,7 +138,7 @@ var b2: { (x: T): number; (x: string): string; }; var c2: { (x: number): number; (x: T): any; }; >c2 : { (x: number): number; (x: T): any; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : number > : ^^^^^^ >x : T @@ -146,23 +146,23 @@ var c2: { (x: number): number; (x: T): any; }; var z2 = [a2, b2, c2]; >z2 : { (x: number): number; (x: T): any; }[] -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^ >[a2, b2, c2] : { (x: number): number; (x: T): any; }[] -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^ >a2 : { (x: T): number; (x: string): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b2 : { (x: T): number; (x: string): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >c2 : { (x: number): number; (x: T): any; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ var r6 = z2[0]; >r6 : { (x: number): number; (x: T): any; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >z2[0] : { (x: number): number; (x: T): any; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >z2 : { (x: number): number; (x: T): any; }[] -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ @@ -170,7 +170,7 @@ var r7 = r6(''); // any not string >r7 : any >r6('') : any >r6 : { (x: number): number; (x: T): any; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >'' : "" > : ^^ diff --git a/tests/baselines/reference/arraySlice.types b/tests/baselines/reference/arraySlice.types index cb3db625c8856..5fdad356b821f 100644 --- a/tests/baselines/reference/arraySlice.types +++ b/tests/baselines/reference/arraySlice.types @@ -9,11 +9,11 @@ arr.splice(1, 1); >arr.splice(1, 1) : string[] | number[] > : ^^^^^^^^^^^^^^^^^^^ >arr.splice : { (start: number, deleteCount?: number): string[]; (start: number, deleteCount: number, ...items: string[]): string[]; } | { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^ >arr : string[] | number[] > : ^^^^^^^^^^^^^^^^^^^ >splice : { (start: number, deleteCount?: number): string[]; (start: number, deleteCount: number, ...items: string[]): string[]; } | { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^ >1 : 1 > : ^ >1 : 1 diff --git a/tests/baselines/reference/arraySpreadInCall.types b/tests/baselines/reference/arraySpreadInCall.types index 5bded461fc933..1cc81b3d9c1e1 100644 --- a/tests/baselines/reference/arraySpreadInCall.types +++ b/tests/baselines/reference/arraySpreadInCall.types @@ -185,7 +185,7 @@ f1(...(([1, 2])), ...(((([3, 4])))), ...([5, 6])); declare function f2(...args: T): T; >f2 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -195,7 +195,7 @@ const x21 = f2(...[1, 'foo']) >f2(...[1, 'foo']) : [number, string] > : ^^^^^^^^^^^^^^^^ >f2 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...[1, 'foo'] : string | number > : ^^^^^^^^^^^^^^^ >[1, 'foo'] : [number, string] @@ -211,7 +211,7 @@ const x22 = f2(true, ...[1, 'foo']) >f2(true, ...[1, 'foo']) : [boolean, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...[1, 'foo'] : string | number @@ -229,7 +229,7 @@ const x23 = f2(...([1, 'foo'])) >f2(...([1, 'foo'])) : [number, string] > : ^^^^^^^^^^^^^^^^ >f2 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...([1, 'foo']) : string | number > : ^^^^^^^^^^^^^^^ >([1, 'foo']) : [number, string] @@ -247,7 +247,7 @@ const x24 = f2(true, ...([1, 'foo'])) >f2(true, ...([1, 'foo'])) : [boolean, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...([1, 'foo']) : string | number @@ -263,7 +263,7 @@ const x24 = f2(true, ...([1, 'foo'])) declare function f3(...args: T): T; >f3 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -273,7 +273,7 @@ const x31 = f3(...[1, 'foo']) >f3(...[1, 'foo']) : [number, string] > : ^^^^^^^^^^^^^^^^ >f3 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...[1, 'foo'] : string | number > : ^^^^^^^^^^^^^^^ >[1, 'foo'] : [number, string] @@ -289,7 +289,7 @@ const x32 = f3(true, ...[1, 'foo']) >f3(true, ...[1, 'foo']) : [boolean, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f3 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...[1, 'foo'] : string | number @@ -307,7 +307,7 @@ const x33 = f3(...([1, 'foo'])) >f3(...([1, 'foo'])) : [number, string] > : ^^^^^^^^^^^^^^^^ >f3 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...([1, 'foo']) : string | number > : ^^^^^^^^^^^^^^^ >([1, 'foo']) : [number, string] @@ -325,7 +325,7 @@ const x34 = f3(true, ...([1, 'foo'])) >f3(true, ...([1, 'foo'])) : [boolean, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f3 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...([1, 'foo']) : string | number @@ -341,7 +341,7 @@ const x34 = f3(true, ...([1, 'foo'])) declare function f4(...args: T): T; >f4 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -351,7 +351,7 @@ const x41 = f4(...[1, 'foo']) >f4(...[1, 'foo']) : readonly [number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...[1, 'foo'] : string | number > : ^^^^^^^^^^^^^^^ >[1, 'foo'] : [number, string] @@ -367,7 +367,7 @@ const x42 = f4(true, ...[1, 'foo']) >f4(true, ...[1, 'foo']) : readonly [true, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...[1, 'foo'] : string | number @@ -385,7 +385,7 @@ const x43 = f4(...([1, 'foo'])) >f4(...([1, 'foo'])) : readonly [number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...([1, 'foo']) : string | number > : ^^^^^^^^^^^^^^^ >([1, 'foo']) : [number, string] @@ -403,7 +403,7 @@ const x44 = f4(true, ...([1, 'foo'])) >f4(true, ...([1, 'foo'])) : readonly [true, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...([1, 'foo']) : string | number diff --git a/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types b/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types index 5c62a97c0fc12..da348c94d3da8 100644 --- a/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types +++ b/tests/baselines/reference/arrayTypeInSignatureOfInterfaceAndClass.types @@ -11,7 +11,7 @@ declare module WinJS { then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; >then : (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/arrayconcat.types b/tests/baselines/reference/arrayconcat.types index 6cdcb06d06a7f..28588f7cf6b1f 100644 --- a/tests/baselines/reference/arrayconcat.types +++ b/tests/baselines/reference/arrayconcat.types @@ -57,7 +57,7 @@ class parser { >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; } }) : IOptions[] > : ^^^^^^^^^^ >this.options.sort : (compareFn?: (a: IOptions, b: IOptions) => number) => IOptions[] -> : ^ ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >this.options : IOptions[] > : ^^^^^^^^^^ >this : this @@ -65,7 +65,7 @@ class parser { >options : IOptions[] > : ^^^^^^^^^^ >sort : (compareFn?: (a: IOptions, b: IOptions) => number) => IOptions[] -> : ^ ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >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; } } : (a: IOptions, b: IOptions) => 1 | -1 | 0 > : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : IOptions diff --git a/tests/baselines/reference/arrowFunctionContexts.types b/tests/baselines/reference/arrowFunctionContexts.types index d9b147d2034c8..0b43f175ea2a7 100644 --- a/tests/baselines/reference/arrowFunctionContexts.types +++ b/tests/baselines/reference/arrowFunctionContexts.types @@ -307,9 +307,9 @@ module M2 { // (ParamList) => { ... } is a generic arrow function var generic1 = (n: T) => [n]; >generic1 : (n: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >(n: T) => [n] : (n: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >n : T > : ^ >[n] : T[] @@ -319,15 +319,15 @@ var generic1 = (n: T) => [n]; var generic1: { (n: T): T[] }; // Incorrect error, Bug 829597 >generic1 : (n: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >n : T > : ^ var generic2 = (n: T) => { return [n]; }; >generic2 : (n: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >(n: T) => { return [n]; } : (n: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >n : T > : ^ >[n] : T[] @@ -337,7 +337,7 @@ var generic2 = (n: T) => { return [n]; }; var generic2: { (n: T): T[] }; >generic2 : (n: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >n : T > : ^ diff --git a/tests/baselines/reference/arrowFunctionJSDocAnnotation.types b/tests/baselines/reference/arrowFunctionJSDocAnnotation.types index 4c8bbacebc9df..438eee7bd54c2 100644 --- a/tests/baselines/reference/arrowFunctionJSDocAnnotation.types +++ b/tests/baselines/reference/arrowFunctionJSDocAnnotation.types @@ -25,7 +25,7 @@ const x = identity( */ param => param >param => param : (param: number) => number | undefined -> : ^ ^^ ^^^^^ ^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^ >param : number > : ^^^^^^ >param : number diff --git a/tests/baselines/reference/arrowFunctionParsingGenericInObject.types b/tests/baselines/reference/arrowFunctionParsingGenericInObject.types index 2d55ef97a0337..a07be461247ac 100644 --- a/tests/baselines/reference/arrowFunctionParsingGenericInObject.types +++ b/tests/baselines/reference/arrowFunctionParsingGenericInObject.types @@ -3,19 +3,19 @@ === arrowFunctionParsingGenericInObject.ts === const fn1 = () => ({ >fn1 : () => { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => ({ test: (value: T): T => value, extraValue: () => {},}) : () => { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >({ test: (value: T): T => value, extraValue: () => {},}) : { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ test: (value: T): T => value, extraValue: () => {},} : { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ test: (value: T): T => value, >test : (value: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >(value: T): T => value : (value: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -31,19 +31,19 @@ const fn1 = () => ({ const fn1async = () => ({ >fn1async : () => { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => ({ test: async (value: T): Promise => value, extraValue: () => {},}) : () => { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >({ test: async (value: T): Promise => value, extraValue: () => {},}) : { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ test: async (value: T): Promise => value, extraValue: () => {},} : { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ test: async (value: T): Promise => value, >test : (value: T) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >async (value: T): Promise => value : (value: T) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -59,19 +59,19 @@ const fn1async = () => ({ const fn2 = () => ({ >fn2 : () => { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => ({ test: (value: T): T => value, extraValue: () => {},}) : () => { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >({ test: (value: T): T => value, extraValue: () => {},}) : { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ test: (value: T): T => value, extraValue: () => {},} : { test: (value: T) => T; extraValue: () => void; } -> : ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ test: (value: T): T => value, >test : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(value: T): T => value : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -87,19 +87,19 @@ const fn2 = () => ({ const fn2async = () => ({ >fn2async : () => { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => ({ test: async (value: T): Promise => value, extraValue: () => {},}) : () => { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >({ test: async (value: T): Promise => value, extraValue: () => {},}) : { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ test: async (value: T): Promise => value, extraValue: () => {},} : { test: (value: T) => Promise; extraValue: () => void; } -> : ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ test: async (value: T): Promise => value, >test : (value: T) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >async (value: T): Promise => value : (value: T) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -115,13 +115,13 @@ const fn2async = () => ({ const fn3 = () => ({ >fn3 : () => { extraValue: () => void; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >() => ({ extraValue: () => {}, test: (value: T): T => value,}) : () => { extraValue: () => void; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >({ extraValue: () => {}, test: (value: T): T => value,}) : { extraValue: () => void; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >{ extraValue: () => {}, test: (value: T): T => value,} : { extraValue: () => void; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ extraValue: () => {}, >extraValue : () => void @@ -131,9 +131,9 @@ const fn3 = () => ({ test: (value: T): T => value, >test : (value: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >(value: T): T => value : (value: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -143,13 +143,13 @@ const fn3 = () => ({ const fn3async = () => ({ >fn3async : () => { extraValue: () => void; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >() => ({ extraValue: () => {}, test: async (value: T): Promise => value,}) : () => { extraValue: () => void; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >({ extraValue: () => {}, test: async (value: T): Promise => value,}) : { extraValue: () => void; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >{ extraValue: () => {}, test: async (value: T): Promise => value,} : { extraValue: () => void; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ extraValue: () => {}, >extraValue : () => void @@ -159,9 +159,9 @@ const fn3async = () => ({ test: async (value: T): Promise => value, >test : (value: T) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >async (value: T): Promise => value : (value: T) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -171,13 +171,13 @@ const fn3async = () => ({ const fn4 = () => ({ >fn4 : () => { extraValue: string; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >() => ({ extraValue: '', test: (value: T): T => value,}) : () => { extraValue: string; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >({ extraValue: '', test: (value: T): T => value,}) : { extraValue: string; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >{ extraValue: '', test: (value: T): T => value,} : { extraValue: string; test: (value: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ extraValue: '', >extraValue : string @@ -187,9 +187,9 @@ const fn4 = () => ({ test: (value: T): T => value, >test : (value: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >(value: T): T => value : (value: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >value : T > : ^ >value : T @@ -199,13 +199,13 @@ const fn4 = () => ({ const fn4async = () => ({ >fn4async : () => { extraValue: string; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >() => ({ extraValue: '', test: async (value: T): Promise => value,}) : () => { extraValue: string; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >({ extraValue: '', test: async (value: T): Promise => value,}) : { extraValue: string; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >{ extraValue: '', test: async (value: T): Promise => value,} : { extraValue: string; test: (value: T) => Promise; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ extraValue: '', >extraValue : string @@ -215,9 +215,9 @@ const fn4async = () => ({ test: async (value: T): Promise => value, >test : (value: T) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >async (value: T): Promise => value : (value: T) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >value : T > : ^ >value : T diff --git a/tests/baselines/reference/assertInWrapSomeTypeParameter.types b/tests/baselines/reference/assertInWrapSomeTypeParameter.types index f0bd1575914de..d78dd060710d7 100644 --- a/tests/baselines/reference/assertInWrapSomeTypeParameter.types +++ b/tests/baselines/reference/assertInWrapSomeTypeParameter.types @@ -7,7 +7,7 @@ class C> { foo>(x: U) { >foo : >>(x: U) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : U > : ^ diff --git a/tests/baselines/reference/assertionFunctionWildcardImport2.types b/tests/baselines/reference/assertionFunctionWildcardImport2.types index bf742e7e4de48..85a9eb47755b6 100644 --- a/tests/baselines/reference/assertionFunctionWildcardImport2.types +++ b/tests/baselines/reference/assertionFunctionWildcardImport2.types @@ -3,7 +3,7 @@ === asserts.ts === function isNonNullable(obj: T): asserts obj is NonNullable { >isNonNullable : (obj: T) => asserts obj is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -34,7 +34,7 @@ function isNonNullable(obj: T): asserts obj is NonNullable { export { isNonNullable >isNonNullable : (obj: T) => asserts obj is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ }; @@ -53,11 +53,11 @@ function test(obj: string | null): void { >asserts.isNonNullable(obj) : void > : ^^^^ >asserts.isNonNullable : (obj: T) => asserts obj is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >asserts : typeof asserts > : ^^^^^^^^^^^^^^ >isNonNullable : (obj: T) => asserts obj is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : string | null > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types b/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types index cac49b5bdf977..267f117da133c 100644 --- a/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types +++ b/tests/baselines/reference/assertionFunctionsCanNarrowByDiscriminant.types @@ -31,7 +31,7 @@ type Animal = Cat | Dog; declare function assertEqual(value: any, type: T): asserts value is T; >assertEqual : (value: any, type: T) => asserts value is T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >value : any >type : T > : ^ @@ -56,7 +56,7 @@ assertEqual(animal.type, 'cat' as const); >assertEqual(animal.type, 'cat' as const) : void > : ^^^^ >assertEqual : (value: any, type: T) => asserts value is T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >animal.type : "cat" | "dog" > : ^^^^^^^^^^^^^ >animal : Animal @@ -96,7 +96,7 @@ assertEqual(animalOrUndef?.type, 'cat' as const); >assertEqual(animalOrUndef?.type, 'cat' as const) : void > : ^^^^ >assertEqual : (value: any, type: T) => asserts value is T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >animalOrUndef?.type : "cat" | "dog" | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >animalOrUndef : Animal | undefined diff --git a/tests/baselines/reference/assertionTypePredicates1.types b/tests/baselines/reference/assertionTypePredicates1.types index 079224ba5369b..f30f5e25d6fe5 100644 --- a/tests/baselines/reference/assertionTypePredicates1.types +++ b/tests/baselines/reference/assertionTypePredicates1.types @@ -37,7 +37,7 @@ declare function assertIsArrayOfStrings(value: unknown): asserts value is string declare function assertDefined(value: T): asserts value is NonNullable; >assertDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -263,7 +263,7 @@ function f01(x: unknown) { >assertDefined(x) : void > : ^^^^ >assertDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | undefined > : ^^^^^^^^^^^^^^^^^^ @@ -391,7 +391,7 @@ function f02(x: string | undefined) { >assertDefined(x) : void > : ^^^^ >assertDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | undefined > : ^^^^^^^^^^^^^^^^^^ @@ -446,7 +446,7 @@ namespace Debug { export declare function assertDefined(value: T): asserts value is NonNullable; >assertDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ } @@ -529,11 +529,11 @@ function f10(x: string | undefined) { >Debug.assertDefined(x) : void > : ^^^^ >Debug.assertDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >Debug : typeof Debug > : ^^^^^^^^^^^^ >assertDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | undefined > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/assertionsAndNonReturningFunctions.types b/tests/baselines/reference/assertionsAndNonReturningFunctions.types index e5913a73415b5..f93528300f054 100644 --- a/tests/baselines/reference/assertionsAndNonReturningFunctions.types +++ b/tests/baselines/reference/assertionsAndNonReturningFunctions.types @@ -89,7 +89,7 @@ function fail() { */ function f1(x) { >f1 : (x: any) => void -> : ^ ^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^ >x : any > : ^^^ diff --git a/tests/baselines/reference/assignAnyToEveryType.types b/tests/baselines/reference/assignAnyToEveryType.types index ae14349981f21..32ed3087db3f4 100644 --- a/tests/baselines/reference/assignAnyToEveryType.types +++ b/tests/baselines/reference/assignAnyToEveryType.types @@ -125,7 +125,7 @@ var j: { (): string } = x; var j2: { (x: T): string } = x; >j2 : (x: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : any @@ -152,7 +152,7 @@ M = x; function k(a: T) { >k : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/assignEveryTypeToAny.types b/tests/baselines/reference/assignEveryTypeToAny.types index 42e00f5bc6df7..7bc7c8f0092cc 100644 --- a/tests/baselines/reference/assignEveryTypeToAny.types +++ b/tests/baselines/reference/assignEveryTypeToAny.types @@ -195,12 +195,12 @@ x = { f() { return 1; } } x = { f(x: T) { return x; } } >x = { f(x: T) { return x; } } : { f(x: T): T; } -> : ^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^ >x : any >{ f(x: T) { return x; } } : { f(x: T): T; } -> : ^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -208,7 +208,7 @@ x = { f(x: T) { return x; } } function j(a: T) { >j : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures.types b/tests/baselines/reference/assignmentCompatWithCallSignatures.types index ebe2000df48b2..861c97abb6eac 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures.types @@ -83,11 +83,11 @@ a = a2; t = (x: T) => 1; >t = (x: T) => 1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >t : T > : ^ >(x: T) => 1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >1 : 1 @@ -117,11 +117,11 @@ t = function (x: number) { return ''; } a = (x: T) => 1; >a = (x: T) => 1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : (x: number) => void > : ^ ^^ ^^^^^ >(x: T) => 1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures2.types b/tests/baselines/reference/assignmentCompatWithCallSignatures2.types index 1da1324ee7c3f..605b3e41e89c8 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures2.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures2.types @@ -105,15 +105,15 @@ t = { f: () => 1 }; t = { f: (x:T) => 1 }; >t = { f: (x:T) => 1 } : { f: (x: T) => number; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >t : T > : ^ >{ f: (x:T) => 1 } : { f: (x: T) => number; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >f : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >(x:T) => 1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >1 : 1 @@ -165,15 +165,15 @@ a = { f: () => 1 } a = { f: (x: T) => 1 }; >a = { f: (x: T) => 1 } : { f: (x: T) => number; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >a : { f(x: number): void; } > : ^^^^ ^^ ^^^ ^^^ >{ f: (x: T) => 1 } : { f: (x: T) => number; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >f : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >(x: T) => 1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types index 225a7032edf1a..346fef97599f6 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types @@ -173,7 +173,7 @@ var a15: { } var a16: { >a16 : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (x: T): number[]; >x : T @@ -234,73 +234,73 @@ var a18: { var b: (x: T) => T[]; >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a = b; // ok >a = b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (x: number) => number[] > : ^ ^^ ^^^^^ >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b = a; // ok >b = a : (x: number) => number[] > : ^ ^^ ^^^^^ >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (x: number) => number[] > : ^ ^^ ^^^^^ var b2: (x: T) => string[]; >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; // ok >a2 = b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : (x: number) => string[] > : ^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2 = a2; // ok >b2 = a2 : (x: number) => string[] > : ^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : (x: number) => string[] > : ^ ^^ ^^^^^ var b3: (x: T) => T; >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3 = b3; // ok >a3 = b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a3 : (x: number) => void > : ^ ^^ ^^^^^ >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b3 = a3; // ok >b3 = a3 : (x: number) => void > : ^ ^^ ^^^^^ >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a3 : (x: number) => void > : ^ ^^ ^^^^^ var b4: (x: T, y: U) => T; >b4 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -308,23 +308,23 @@ var b4: (x: T, y: U) => T; a4 = b4; // ok >a4 = b4 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : (x: string, y: number) => string > : ^ ^^ ^^ ^^ ^^^^^ >b4 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ b4 = a4; // ok >b4 = a4 : (x: string, y: number) => string > : ^ ^^ ^^ ^^ ^^^^^ >b4 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : (x: string, y: number) => string > : ^ ^^ ^^ ^^ ^^^^^ var b5: (x: (arg: T) => U) => T; >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -332,23 +332,23 @@ var b5: (x: (arg: T) => U) => T; a5 = b5; // ok >a5 = b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a5 : (x: (arg: string) => number) => string > : ^ ^^ ^^^^^ >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ b5 = a5; // ok >b5 = a5 : (x: (arg: string) => number) => string > : ^ ^^ ^^^^^ >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a5 : (x: (arg: string) => number) => string > : ^ ^^ ^^^^^ var b6: (x: (arg: T) => U) => T; >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -356,23 +356,23 @@ var b6: (x: (arg: T) => U) => T; a6 = b6; // ok >a6 = b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : (x: (arg: Base) => Derived) => Base > : ^ ^^ ^^^^^ >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b6 = a6; // ok >b6 = a6 : (x: (arg: Base) => Derived) => Base > : ^ ^^ ^^^^^ >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : (x: (arg: Base) => Derived) => Base > : ^ ^^ ^^^^^ var b7: (x: (arg: T) => U) => (r: T) => U; >b7 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -382,23 +382,23 @@ var b7: (x: (arg: T) => U) => (r: T) => U; a7 = b7; // ok >a7 = b7 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^^^^ >b7 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b7 = a7; // ok >b7 = a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^^^^ >b7 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^^^^ var b8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; >b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -412,23 +412,23 @@ var b8: (x: (arg: T) => U, y: (arg2: T) => U) a8 = b8; // ok >a8 = b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ >b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b8 = a8; // ok >b8 = a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ >b8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ var b9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; >b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -446,45 +446,45 @@ var b9: (x: (arg: T) => U, y: (arg2: { foo: s a9 = b9; // ok >a9 = b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ >b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b9 = a9; // ok >b9 = a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ >b9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a9 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ var b10: (...x: T[]) => T; >b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a10 = b10; // ok >a10 = b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : (...x: Derived[]) => Derived > : ^^^^ ^^ ^^^^^ >b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ b10 = a10; // ok >b10 = a10 : (...x: Derived[]) => Derived > : ^^^^ ^^ ^^^^^ >b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : (...x: Derived[]) => Derived > : ^^^^ ^^ ^^^^^ var b11: (x: T, y: T) => T; >b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -492,23 +492,23 @@ var b11: (x: T, y: T) => T; a11 = b11; // ok >a11 = b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ >b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b11 = a11; // ok >b11 = a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ >b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ var b12: >(x: Array, y: T) => Array; >b12 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -516,23 +516,23 @@ var b12: >(x: Array, y: T) => Array; a12 = b12; // ok >a12 = b12 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >b12 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b12 = a12; // ok >b12 = a12 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >b12 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ var b13: >(x: Array, y: T) => T; >b13 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -540,23 +540,23 @@ var b13: >(x: Array, y: T) => T; a13 = b13; // ok >a13 = b13 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a13 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >b13 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b13 = a13; // ok >b13 = a13 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >b13 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a13 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ var b14: (x: { a: T; b: T }) => T; >b14 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -566,67 +566,67 @@ var b14: (x: { a: T; b: T }) => T; a14 = b14; // ok >a14 = b14 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a14 : (x: { a: string; b: number; }) => Object > : ^ ^^ ^^^^^ >b14 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b14 = a14; // ok >b14 = a14 : (x: { a: string; b: number; }) => Object > : ^ ^^ ^^^^^ >b14 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a14 : (x: { a: string; b: number; }) => Object > : ^ ^^ ^^^^^ var b15: (x: T) => T[]; >b15 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a15 = b15; // ok >a15 = b15 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a15 : { (x: number): number[]; (x: string): string[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b15 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b15 = a15; // ok >b15 = a15 : { (x: number): number[]; (x: string): string[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b15 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a15 : { (x: number): number[]; (x: string): string[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ var b16: (x: T) => number[]; >b16 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ a16 = b16; // ok >a16 = b16 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a16 : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b16 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ b16 = a16; // ok >b16 = a16 : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b16 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a16 : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ var b17: (x: (a: T) => T) => T[]; // ok >b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -634,23 +634,23 @@ var b17: (x: (a: T) => T) => T[]; // ok a17 = b17; // ok >a17 = b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b17 = a17; // ok >b17 = a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a17 : { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ var b18: (x: (a: T) => T) => T[]; >b18 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -658,17 +658,17 @@ var b18: (x: (a: T) => T) => T[]; a18 = b18; // ok >a18 = b18 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b18 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b18 = a18; // ok >b18 = a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b18 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a18 : { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types index e351d651a975b..2904c68fceadf 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types @@ -160,7 +160,7 @@ module Errors { (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -173,7 +173,7 @@ module Errors { }): any[]; (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -188,29 +188,29 @@ module Errors { var b2: (x: T) => U[]; >b2 : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; >a2 = b2 : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a2 : (x: number) => string[] > : ^ ^^ ^^^^^ >b2 : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ b2 = a2; >b2 = a2 : (x: number) => string[] > : ^ ^^ ^^^^^ >b2 : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a2 : (x: number) => string[] > : ^ ^^ ^^^^^ var b7: (x: (arg: T) => U) => (r: T) => V; >b7 : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -220,23 +220,23 @@ module Errors { a7 = b7; >a7 = b7 : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^ ^^ ^^^^^ >b7 : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b7 = a7; >b7 = a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^ ^^ ^^^^^ >b7 : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^ ^^ ^^^^^ var b8: (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; >b8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -252,46 +252,46 @@ module Errors { a8 = b8; // error, { foo: number } and Base are incompatible >a8 = b8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ >b8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b8 = a8; // error, { foo: number } and Base are incompatible >b8 = a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ >b8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^ var b10: (...x: T[]) => T; >b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a10 = b10; >a10 = b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : (...x: Base[]) => Base > : ^^^^ ^^ ^^^^^ >b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ b10 = a10; >b10 = a10 : (...x: Base[]) => Base > : ^^^^ ^^ ^^^^^ >b10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : (...x: Base[]) => Base > : ^^^^ ^^ ^^^^^ var b11: (x: T, y: T) => T; >b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -299,23 +299,23 @@ module Errors { a11 = b11; >a11 = b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ >b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b11 = a11; >b11 = a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ >b11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ var b12: >(x: Array, y: Array) => T; >b12 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -323,23 +323,23 @@ module Errors { a12 = b12; >a12 = b12 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >b12 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b12 = a12; >b12 = a12 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >b12 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ var b15: (x: { a: T; b: T }) => T; >b15 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -349,23 +349,23 @@ module Errors { a15 = b15; >a15 = b15 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a15 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^ >b15 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b15 = a15; >b15 = a15 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^ >b15 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a15 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^ var b15a: (x: { a: T; b: T }) => number; >b15a : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -375,23 +375,23 @@ module Errors { a15 = b15a; >a15 = b15a : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a15 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^ >b15a : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ b15a = a15; >b15a = a15 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^ >b15a : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a15 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^ var b16: (x: (a: T) => T) => T[]; >b16 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -399,23 +399,23 @@ module Errors { a16 = b16; >a16 = b16 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a16 : { (x: { (a: number): number; (a?: number): number; }): number[]; (x: { (a: boolean): boolean; (a?: boolean): boolean; }): boolean[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b16 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b16 = a16; >b16 = a16 : { (x: { (a: number): number; (a?: number): number; }): number[]; (x: { (a: boolean): boolean; (a?: boolean): boolean; }): boolean[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b16 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a16 : { (x: { (a: number): number; (a?: number): number; }): number[]; (x: { (a: boolean): boolean; (a?: boolean): boolean; }): boolean[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ var b17: (x: (a: T) => T) => any[]; >b17 : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -423,17 +423,17 @@ module Errors { a17 = b17; >a17 = b17 : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a17 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b17 : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b17 = a17; >b17 = a17 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >b17 : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a17 : { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ } @@ -445,59 +445,59 @@ module Errors { // target type has generic call signature var a2: (x: T) => T[]; >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var b2: (x: T) => string[]; >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; >a2 = b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2 = a2; >b2 = a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // target type has generic call signature var a3: (x: T) => string[]; >a3 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var b3: (x: T) => T[]; >b3 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3 = b3; >a3 = b3 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a3 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b3 = a3; >b3 = a3 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a3 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } } diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types index 911c4db793b3f..43a6ab6580914 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types @@ -35,25 +35,25 @@ class OtherDerived extends Base { bing: string; } var a: (x: T) => T[]; >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var a2: (x: T) => string[]; >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var a3: (x: T) => void; >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var a4: (x: T, y: U) => string; >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -61,7 +61,7 @@ var a4: (x: T, y: U) => string; var a5: (x: (arg: T) => U) => T; >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -69,7 +69,7 @@ var a5: (x: (arg: T) => U) => T; var a6: (x: (arg: T) => Derived) => T; >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -77,7 +77,7 @@ var a6: (x: (arg: T) => Derived) => T; var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -91,7 +91,7 @@ var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; var a15: (x: { a: T; b: T }) => T[]; >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -101,7 +101,7 @@ var a15: (x: { a: T; b: T }) => T[]; var a16: (x: { a: T; b: T }) => T[]; >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -111,7 +111,7 @@ var a16: (x: { a: T; b: T }) => T[]; var a17: { >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (x: (a: T) => T): T[]; >x : (a: T) => T @@ -132,7 +132,7 @@ var a18: { (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -145,7 +145,7 @@ var a18: { }): any[]; (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -160,73 +160,73 @@ var a18: { var b: (x: T) => T[]; >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a = b; // ok >a = b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b = a; // ok >b = a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b2: (x: T) => string[]; >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; // ok >a2 = b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2 = a2; // ok >b2 = a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b3: (x: T) => T; >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3 = b3; // ok >a3 = b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b3 = a3; // ok >b3 = a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b4: (x: T, y: U) => string; >b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -234,23 +234,23 @@ var b4: (x: T, y: U) => string; a4 = b4; // ok >a4 = b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ b4 = a4; // ok >b4 = a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var b5: (x: (arg: T) => U) => T; >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -258,23 +258,23 @@ var b5: (x: (arg: T) => U) => T; a5 = b5; // ok >a5 = b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ b5 = a5; // ok >b5 = a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var b6: (x: (arg: T) => U) => T; >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -282,23 +282,23 @@ var b6: (x: (arg: T) => U) => T; a6 = b6; // ok >a6 = b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b6 = a6; // ok >b6 = a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -312,23 +312,23 @@ var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; a11 = b11; // ok >a11 = b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ b11 = a11; // ok >b11 = a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var b15: (x: { a: U; b: V; }) => U[]; >b15 : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { a: U; b: V; } > : ^^^^^ ^^^^^ ^^^ >a : U @@ -338,23 +338,23 @@ var b15: (x: { a: U; b: V; }) => U[]; a15 = b15; // ok, T = U, T = V >a15 = b15 : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b15 : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ b15 = a15; // ok >b15 = a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b15 : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b16: (x: { a: T; b: T }) => T[]; >b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -364,23 +364,23 @@ var b16: (x: { a: T; b: T }) => T[]; a15 = b16; // ok >a15 = b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b15 = a16; // ok >b15 = a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b15 : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ var b17: (x: (a: T) => T) => T[]; >b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -388,25 +388,25 @@ var b17: (x: (a: T) => T) => T[]; a17 = b17; // ok >a17 = b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b17 = a17; // ok >b17 = a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ var b18: (x: (a: T) => T) => any[]; >b18 : (x: (a: T) => T) => any[] > : ^ ^^ ^^^^^ >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types index 0fecc27a18058..385bb5eefe5f3 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types @@ -36,25 +36,25 @@ class OtherDerived extends Base { bing: string; } interface A { a: (x: T) => T[]; >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2: (x: T) => string[]; >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3: (x: T) => void; >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y: U) => string; >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -62,7 +62,7 @@ interface A { a5: (x: (arg: T) => U) => T; >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -70,7 +70,7 @@ interface A { a6: (x: (arg: T) => Derived) => T; >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -78,7 +78,7 @@ interface A { a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -92,7 +92,7 @@ interface A { a15: (x: { a: T; b: T }) => T[]; >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -102,7 +102,7 @@ interface A { a16: (x: { a: T; b: T }) => T[]; >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -117,97 +117,97 @@ var x: A; var b: (x: T) => T[]; >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ x.a = b; >x.a = b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b = x.a; >b = x.a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b2: (x: T) => string[]; >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ x.a2 = b2; >x.a2 = b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2 = x.a2; >b2 = x.a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b3: (x: T) => T; >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ x.a3 = b3; >x.a3 = b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b3 = x.a3; >b3 = x.a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var b4: (x: T, y: U) => string; >b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -215,31 +215,31 @@ var b4: (x: T, y: U) => string; x.a4 = b4; >x.a4 = b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ b4 = x.a4; >b4 = x.a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var b5: (x: (arg: T) => U) => T; >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -247,31 +247,31 @@ var b5: (x: (arg: T) => U) => T; x.a5 = b5; >x.a5 = b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x.a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ b5 = x.a5; >b5 = x.a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >b5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x.a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -285,31 +285,31 @@ var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; x.a11 = b11; >x.a11 = b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ b11 = x.a11; >b11 = x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var b16: (x: { a: T; b: T }) => T[]; >b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -319,25 +319,25 @@ var b16: (x: { a: T; b: T }) => T[]; x.a16 = b16; >x.a16 = b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : A > : ^ >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b16 = x.a16; >b16 = x.a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x.a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : A > : ^ >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types index db13d8160940d..3c3d42057fd03 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types @@ -173,7 +173,7 @@ var a15: { } var a16: { >a16 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: T): number[]; >x : T @@ -234,73 +234,73 @@ var a18: { var b: new (x: T) => T[]; >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a = b; // ok >a = b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: number) => number[] > : ^^^^^ ^^ ^^^^^ >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b = a; // ok >b = a : new (x: number) => number[] > : ^^^^^ ^^ ^^^^^ >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: number) => number[] > : ^^^^^ ^^ ^^^^^ var b2: new (x: T) => string[]; >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; // ok >a2 = b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b2 = a2; // ok >b2 = a2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ var b3: new (x: T) => T; >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3 = b3; // ok >a3 = b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a3 : new (x: number) => void > : ^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b3 = a3; // ok >b3 = a3 : new (x: number) => void > : ^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a3 : new (x: number) => void > : ^^^^^ ^^ ^^^^^ var b4: new (x: T, y: U) => T; >b4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -308,23 +308,23 @@ var b4: new (x: T, y: U) => T; a4 = b4; // ok >a4 = b4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ b4 = a4; // ok >b4 = a4 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b5: new (x: (arg: T) => U) => T; >b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -332,23 +332,23 @@ var b5: new (x: (arg: T) => U) => T; a5 = b5; // ok >a5 = b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a5 : new (x: (arg: string) => number) => string > : ^^^^^ ^^ ^^^^^ >b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ b5 = a5; // ok >b5 = a5 : new (x: (arg: string) => number) => string > : ^^^^^ ^^ ^^^^^ >b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a5 : new (x: (arg: string) => number) => string > : ^^^^^ ^^ ^^^^^ var b6: new (x: (arg: T) => U) => T; >b6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -356,23 +356,23 @@ var b6: new (x: (arg: T) => U) => T; a6 = b6; // ok >a6 = b6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : new (x: (arg: Base) => Derived) => Base > : ^^^^^ ^^ ^^^^^ >b6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b6 = a6; // ok >b6 = a6 : new (x: (arg: Base) => Derived) => Base > : ^^^^^ ^^ ^^^^^ >b6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : new (x: (arg: Base) => Derived) => Base > : ^^^^^ ^^ ^^^^^ var b7: new (x: (arg: T) => U) => (r: T) => U; >b7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -382,23 +382,23 @@ var b7: new (x: (arg: T) => U) => (r: T) => U a7 = b7; // ok >a7 = b7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^^^^ >b7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b7 = a7; // ok >b7 = a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^^^^ >b7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^^^^ var b8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; >b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -412,23 +412,23 @@ var b8: new (x: (arg: T) => U, y: (arg2: T) = a8 = b8; // ok >a8 = b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b8 = a8; // ok >b8 = a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; >b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -446,45 +446,45 @@ var b9: new (x: (arg: T) => U, y: (arg2: { fo a9 = b9; // ok >a9 = b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b9 = a9; // ok >b9 = a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a9 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b10: new (...x: T[]) => T; >b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a10 = b10; // ok >a10 = b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : new (...x: Derived[]) => Derived > : ^^^^^^^^ ^^ ^^^^^ >b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ b10 = a10; // ok >b10 = a10 : new (...x: Derived[]) => Derived > : ^^^^^^^^ ^^ ^^^^^ >b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : new (...x: Derived[]) => Derived > : ^^^^^^^^ ^^ ^^^^^ var b11: new (x: T, y: T) => T; >b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -492,23 +492,23 @@ var b11: new (x: T, y: T) => T; a11 = b11; // ok >a11 = b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b11 = a11; // ok >b11 = a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b12: new >(x: Array, y: T) => Array; >b12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -516,23 +516,23 @@ var b12: new >(x: Array, y: T) => Array; a12 = b12; // ok >a12 = b12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b12 = a12; // ok >b12 = a12 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b13: new >(x: Array, y: T) => T; >b13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -540,23 +540,23 @@ var b13: new >(x: Array, y: T) => T; a13 = b13; // ok >a13 = b13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a13 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b13 = a13; // ok >b13 = a13 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a13 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b14: new (x: { a: T; b: T }) => T; >b14 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -566,67 +566,67 @@ var b14: new (x: { a: T; b: T }) => T; a14 = b14; // ok >a14 = b14 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a14 : new (x: { a: string; b: number; }) => Object > : ^^^^^ ^^ ^^^^^ >b14 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b14 = a14; // ok >b14 = a14 : new (x: { a: string; b: number; }) => Object > : ^^^^^ ^^ ^^^^^ >b14 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a14 : new (x: { a: string; b: number; }) => Object > : ^^^^^ ^^ ^^^^^ var b15: new (x: T) => T[]; >b15 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a15 = b15; // ok >a15 = b15 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a15 : { new (x: number): number[]; new (x: string): string[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b15 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b15 = a15; // ok >b15 = a15 : { new (x: number): number[]; new (x: string): string[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b15 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a15 : { new (x: number): number[]; new (x: string): string[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ var b16: new (x: T) => number[]; >b16 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ a16 = b16; // ok >a16 = b16 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a16 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b16 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ b16 = a16; // ok >b16 = a16 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b16 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a16 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ var b17: new (x: new (a: T) => T) => T[]; // ok >b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -634,23 +634,23 @@ var b17: new (x: new (a: T) => T) => T[]; // ok a17 = b17; // ok >a17 = b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b17 = a17; // ok >b17 = a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a17 : { new (x: new (a: number) => number): number[]; new (x: new (a: string) => string): string[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ var b18: new (x: new (a: T) => T) => T[]; >b18 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -658,17 +658,17 @@ var b18: new (x: new (a: T) => T) => T[]; a18 = b18; // ok >a18 = b18 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b18 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b18 = a18; // ok >b18 = a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b18 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a18 : { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types index c6660acd5d6b5..548876b373352 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types @@ -160,7 +160,7 @@ module Errors { new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -173,7 +173,7 @@ module Errors { }): any[]; new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -188,29 +188,29 @@ module Errors { var b2: new (x: T) => U[]; >b2 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; // ok >a2 = b2 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ >b2 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ b2 = a2; // ok >b2 = a2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ >b2 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ var b7: new (x: (arg: T) => U) => (r: T) => V; >b7 : new (x: (arg: T) => U) => (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -220,23 +220,23 @@ module Errors { a7 = b7; // ok >a7 = b7 : new (x: (arg: T) => U) => (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^^^^^ ^^ ^^^^^ >b7 : new (x: (arg: T) => U) => (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b7 = a7; // ok >b7 = a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^^^^^ ^^ ^^^^^ >b7 : new (x: (arg: T) => U) => (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a7 : new (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^^^^^ ^^ ^^^^^ var b8: new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; >b8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -252,46 +252,46 @@ module Errors { a8 = b8; // error, type mismatch >a8 = b8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b8 = a8; // error >b8 = a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a8 : new (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b10: new (...x: T[]) => T; >b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a10 = b10; // ok >a10 = b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : new (...x: Base[]) => Base > : ^^^^^^^^ ^^ ^^^^^ >b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ b10 = a10; // ok >b10 = a10 : new (...x: Base[]) => Base > : ^^^^^^^^ ^^ ^^^^^ >b10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a10 : new (...x: Base[]) => Base > : ^^^^^^^^ ^^ ^^^^^ var b11: new (x: T, y: T) => T; >b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -299,23 +299,23 @@ module Errors { a11 = b11; // ok >a11 = b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b11 = a11; // ok >b11 = a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a11 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b12: new >(x: Array, y: Array) => T; >b12 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -323,23 +323,23 @@ module Errors { a12 = b12; // ok >a12 = b12 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b12 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ b12 = a12; // ok >b12 = a12 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >b12 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a12 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ var b15: new (x: { a: T; b: T }) => T; >b15 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -349,23 +349,23 @@ module Errors { a15 = b15; // ok >a15 = b15 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a15 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ >b15 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b15 = a15; // ok >b15 = a15 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ >b15 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a15 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ var b15a: new (x: { a: T; b: T }) => number; >b15a : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -375,23 +375,23 @@ module Errors { a15 = b15a; // ok >a15 = b15a : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a15 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ >b15a : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ b15a = a15; // ok >b15a = a15 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ >b15a : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a15 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ var b16: new (x: (a: T) => T) => T[]; >b16 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -399,23 +399,23 @@ module Errors { a16 = b16; // error >a16 = b16 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a16 : { new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b16 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b16 = a16; // error >b16 = a16 : { new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b16 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a16 : { new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ var b17: new (x: (a: T) => T) => any[]; >b17 : new (x: (a: T) => T) => any[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -423,17 +423,17 @@ module Errors { a17 = b17; // error >a17 = b17 : new (x: (a: T) => T) => any[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a17 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b17 : new (x: (a: T) => T) => any[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b17 = a17; // error >b17 = a17 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b17 : new (x: (a: T) => T) => any[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a17 : { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ } @@ -445,59 +445,59 @@ module Errors { // target type has generic call signature var a2: new (x: T) => T[]; >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var b2: new (x: T) => string[]; >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; // ok >a2 = b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b2 = a2; // ok >b2 = a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // target type has generic call signature var a3: new (x: T) => string[]; >a3 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var b3: new (x: T) => T[]; >b3 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3 = b3; // ok >a3 = b3 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a3 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b3 = a3; // ok >b3 = a3 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a3 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ } } diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types index 9d799dad6853c..f7e21425df2e8 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types @@ -35,25 +35,25 @@ class OtherDerived extends Base { bing: string; } var a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var a2: new (x: T) => string[]; >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -61,7 +61,7 @@ var a4: new (x: T, y: U) => string; var a5: new (x: new (arg: T) => U) => T; >a5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -69,7 +69,7 @@ var a5: new (x: new (arg: T) => U) => T; var a6: new (x: new (arg: T) => Derived) => T; >a6 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => Derived > : ^^^^^ ^^ ^^^^^ >arg : T @@ -77,7 +77,7 @@ var a6: new (x: new (arg: T) => Derived) => T; var a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -91,7 +91,7 @@ var a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; var a15: new (x: { a: T; b: T }) => T[]; >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -101,7 +101,7 @@ var a15: new (x: { a: T; b: T }) => T[]; var a16: new (x: { a: T; b: T }) => T[]; >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -111,7 +111,7 @@ var a16: new (x: { a: T; b: T }) => T[]; var a17: { >a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: new (a: T) => T): T[]; >x : new (a: T) => T @@ -132,7 +132,7 @@ var a18: { new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -145,7 +145,7 @@ var a18: { }): any[]; new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -160,73 +160,73 @@ var a18: { var b: new (x: T) => T[]; >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a = b; // ok >a = b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b = a; // ok >b = a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b2: new (x: T) => string[]; >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2 = b2; // ok >a2 = b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b2 = a2; // ok >b2 = a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b3: new (x: T) => T; >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3 = b3; // ok >a3 = b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b3 = a3; // ok >b3 = a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b4: new (x: T, y: U) => string; >b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -234,23 +234,23 @@ var b4: new (x: T, y: U) => string; a4 = b4; // ok >a4 = b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ b4 = a4; // ok >b4 = a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var b5: new (x: new (arg: T) => U) => T; >b5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -258,23 +258,23 @@ var b5: new (x: new (arg: T) => U) => T; a5 = b5; // ok >a5 = b5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ b5 = a5; // ok >b5 = a5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var b6: new (x: new (arg: T) => U) => T; >b6 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -282,23 +282,23 @@ var b6: new (x: new (arg: T) => U) => T; a6 = b6; // ok >a6 = b6 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >b6 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ b6 = a6; // ok >b6 = a6 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >b6 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a6 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; >b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -312,23 +312,23 @@ var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; a11 = b11; // ok >a11 = b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ b11 = a11; // ok >b11 = a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var b15: new (x: { a: U; b: V; }) => U[]; >b15 : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : { a: U; b: V; } > : ^^^^^ ^^^^^ ^^^ >a : U @@ -338,23 +338,23 @@ var b15: new (x: { a: U; b: V; }) => U[]; a15 = b15; // ok >a15 = b15 : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b15 : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ b15 = a15; // ok >b15 = a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b15 : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b16: new (x: { a: T; b: T }) => T[]; >b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -364,23 +364,23 @@ var b16: new (x: { a: T; b: T }) => T[]; a15 = b16; // ok >a15 = b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b15 = a16; // ok >b15 = a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >b15 : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var b17: new (x: new (a: T) => T) => T[]; >b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -388,25 +388,25 @@ var b17: new (x: new (a: T) => T) => T[]; a17 = b17; // ok >a17 = b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b17 = a17; // ok >b17 = a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >b17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ var b18: new (x: new (a: T) => T) => any[]; >b18 : new (x: new (a: T) => T) => any[] > : ^^^^^ ^^ ^^^^^ >x : new (a: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types index 49e305196573a..ab86ce4bd913c 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types @@ -36,25 +36,25 @@ class OtherDerived extends Base { bing: string; } interface A { a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -62,7 +62,7 @@ interface A { a5: new (x: (arg: T) => U) => T; >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -70,7 +70,7 @@ interface A { a6: new (x: (arg: T) => Derived) => T; >a6 : new (x: (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -78,7 +78,7 @@ interface A { a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -92,7 +92,7 @@ interface A { a15: new (x: { a: T; b: T }) => T[]; >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -102,7 +102,7 @@ interface A { a16: new (x: { a: T; b: T }) => T[]; >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -117,97 +117,97 @@ var x: A; var b: new (x: T) => T[]; >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ x.a = b; >x.a = b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b = x.a; >b = x.a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b2: new (x: T) => string[]; >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ x.a2 = b2; >x.a2 = b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b2 = x.a2; >b2 = x.a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b3: new (x: T) => T; >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ x.a3 = b3; >x.a3 = b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b3 = x.a3; >b3 = x.a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var b4: new (x: T, y: U) => string; >b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -215,31 +215,31 @@ var b4: new (x: T, y: U) => string; x.a4 = b4; >x.a4 = b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ b4 = x.a4; >b4 = x.a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var b5: new (x: (arg: T) => U) => T; >b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -247,31 +247,31 @@ var b5: new (x: (arg: T) => U) => T; x.a5 = b5; >x.a5 = b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x.a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ b5 = x.a5; >b5 = x.a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x.a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : A > : ^ >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; >b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -285,31 +285,31 @@ var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; x.a11 = b11; >x.a11 = b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ b11 = x.a11; >b11 = x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x.a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : A > : ^ >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var b16: new (x: { a: T; b: T }) => T[]; >b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -319,25 +319,25 @@ var b16: new (x: { a: T; b: T }) => T[]; x.a16 = b16; >x.a16 = b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : A > : ^ >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ b16 = x.a16; >b16 = x.a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >b16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x.a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : A > : ^ >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types index 60456125156cd..7a10d5426366d 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures.types @@ -5,7 +5,7 @@ var f: (x: S) => void >f : (x: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >p : string > : ^^^^^^ >x : S @@ -13,7 +13,7 @@ var f: (x: S) => void var g: (x: T[]) => void >g : (x: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >p : string > : ^^^^^^ >x : T[] @@ -21,17 +21,17 @@ var g: (x: T[]) => void f = g; // ok >f = g : (x: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >f : (x: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >g : (x: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ g = f; // ok >g = f : (x: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >g : (x: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >f : (x: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types index e5b13acfec9e1..1dfdef14a691f 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures3.types @@ -15,7 +15,7 @@ interface I { var g: (x: T) => (y: S) => I >g : (x: T) => (y: S) => I -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >y : S @@ -23,7 +23,7 @@ var g: (x: T) => (y: S) => I var h: (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U } >h : (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >y : S @@ -37,9 +37,9 @@ var h: (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U } g = h // ok >g = h : (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : (x: T) => (y: S) => I -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >h : (x: T) => (y: S) => { (f: (x: T) => (y: S) => U): U; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.types index c80be1723f5eb..08b915e326593 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.types @@ -11,30 +11,30 @@ interface I2 { var x: >(z: T) => void >x : >(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >z : T > : ^ var y: >>(z: T) => void >y : >>(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >z : T > : ^ // These both do not make sense as we would eventually be comparing I2 to I2>, and they are self referencing anyway x = y >x = y : >>(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : >(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : >>(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ y = x >y = x : >(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : >>(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : >(z: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.types index b274d669d6272..68999ccd5dd79 100644 --- a/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.types +++ b/tests/baselines/reference/assignmentCompatWithGenericCallSignaturesWithOptionalParameters.types @@ -315,23 +315,23 @@ module GenericSignaturesInvalid { a: () => T; >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a2: (x?: T) => T; >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y?: T) => T; >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -339,7 +339,7 @@ module GenericSignaturesInvalid { a5: (x?: T, y?: T) => T; >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -401,11 +401,11 @@ module GenericSignaturesInvalid { >b.a = t.a : () => T > : ^^^^^^^ >b.a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >b : Base2 > : ^^^^^ >a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >t.a : () => T > : ^^^^^^^ >t : Target @@ -417,11 +417,11 @@ module GenericSignaturesInvalid { >b.a = t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >b.a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >b : Base2 > : ^^^^^ >a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >t : Target @@ -433,11 +433,11 @@ module GenericSignaturesInvalid { >b.a = t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >b.a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >b : Base2 > : ^^^^^ >a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >t : Target @@ -449,11 +449,11 @@ module GenericSignaturesInvalid { >b.a = t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >b.a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >b : Base2 > : ^^^^^ >a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >t : Target @@ -465,11 +465,11 @@ module GenericSignaturesInvalid { >b.a = t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >b.a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >b : Base2 > : ^^^^^ >a : () => T_1 -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >t : Target @@ -481,11 +481,11 @@ module GenericSignaturesInvalid { >b.a2 = t.a : () => T > : ^^^^^^^ >b.a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >t.a : () => T > : ^^^^^^^ >t : Target @@ -497,11 +497,11 @@ module GenericSignaturesInvalid { >b.a2 = t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >b.a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >t : Target @@ -513,11 +513,11 @@ module GenericSignaturesInvalid { >b.a2 = t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >b.a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >t : Target @@ -529,11 +529,11 @@ module GenericSignaturesInvalid { >b.a2 = t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >b.a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >t : Target @@ -545,11 +545,11 @@ module GenericSignaturesInvalid { >b.a2 = t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >b.a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a2 : (x?: T_1) => T_1 -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >t : Target @@ -561,11 +561,11 @@ module GenericSignaturesInvalid { >b.a3 = t.a : () => T > : ^^^^^^^ >b.a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >b : Base2 > : ^^^^^ >a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >t.a : () => T > : ^^^^^^^ >t : Target @@ -577,11 +577,11 @@ module GenericSignaturesInvalid { >b.a3 = t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >b.a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >b : Base2 > : ^^^^^ >a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >t : Target @@ -593,11 +593,11 @@ module GenericSignaturesInvalid { >b.a3 = t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >b.a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >b : Base2 > : ^^^^^ >a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >t : Target @@ -609,11 +609,11 @@ module GenericSignaturesInvalid { >b.a3 = t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >b.a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >b : Base2 > : ^^^^^ >a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >t : Target @@ -625,11 +625,11 @@ module GenericSignaturesInvalid { >b.a3 = t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >b.a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >b : Base2 > : ^^^^^ >a3 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >t : Target @@ -641,11 +641,11 @@ module GenericSignaturesInvalid { >b.a4 = t.a : () => T > : ^^^^^^^ >b.a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >t.a : () => T > : ^^^^^^^ >t : Target @@ -657,11 +657,11 @@ module GenericSignaturesInvalid { >b.a4 = t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >b.a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >t : Target @@ -673,11 +673,11 @@ module GenericSignaturesInvalid { >b.a4 = t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >b.a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >t : Target @@ -689,11 +689,11 @@ module GenericSignaturesInvalid { >b.a4 = t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >b.a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >t : Target @@ -705,11 +705,11 @@ module GenericSignaturesInvalid { >b.a4 = t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >b.a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a4 : (x: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >t : Target @@ -721,11 +721,11 @@ module GenericSignaturesInvalid { >b.a5 = t.a : () => T > : ^^^^^^^ >b.a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >t.a : () => T > : ^^^^^^^ >t : Target @@ -737,11 +737,11 @@ module GenericSignaturesInvalid { >b.a5 = t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >b.a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >t.a2 : (x?: T) => T > : ^ ^^^^^^^^^^ >t : Target @@ -753,11 +753,11 @@ module GenericSignaturesInvalid { >b.a5 = t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >b.a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >t.a3 : (x: T) => T > : ^ ^^^^^^^^^ >t : Target @@ -769,11 +769,11 @@ module GenericSignaturesInvalid { >b.a5 = t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >b.a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >t.a4 : (x: T, y?: T) => T > : ^ ^^^^^ ^^^^^^^^^^ >t : Target @@ -785,11 +785,11 @@ module GenericSignaturesInvalid { >b.a5 = t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >b.a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : Base2 > : ^^^^^ >a5 : (x?: T_1, y?: T_1) => T_1 -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >t.a5 : (x?: T, y?: T) => T > : ^ ^^^^^^ ^^^^^^^^^^ >t : Target @@ -809,23 +809,23 @@ module GenericSignaturesValid { a: () => T; >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a2: (x?: T) => T; >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y?: T) => T; >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -833,7 +833,7 @@ module GenericSignaturesValid { a5: (x?: T, y?: T) => T; >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -849,39 +849,39 @@ module GenericSignaturesValid { >this.a = () => null : () => any > : ^^^^^^^^^^^^ >this.a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >this : this > : ^^^^ >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => null : () => any > : ^^^^^^^^^^^^ this.a = (x?: T) => null; // ok, same T of required params >this.a = (x?: T) => null : (x?: T) => any -> : ^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ >this.a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >this : this > : ^^^^ >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(x?: T) => null : (x?: T) => any -> : ^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ >x : T > : ^ this.a = (x: T) => null; // error, too many required params >this.a = (x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >this.a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >this : this > : ^^^^ >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -889,39 +889,39 @@ module GenericSignaturesValid { >this.a2 = () => null : () => any > : ^^^^^^^^^^^^ >this.a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >this : this > : ^^^^ >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >() => null : () => any > : ^^^^^^^^^^^^ this.a2 = (x?: T) => null; // ok, same T of required params >this.a2 = (x?: T) => null : (x?: T) => any -> : ^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ >this.a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >this : this > : ^^^^ >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >(x?: T) => null : (x?: T) => any -> : ^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ >x : T > : ^ this.a2 = (x: T) => null; // ok, same number of params >this.a2 = (x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >this.a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >this : this > : ^^^^ >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >(x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -929,53 +929,53 @@ module GenericSignaturesValid { >this.a3 = () => null : () => any > : ^^^^^^^^^^^^ >this.a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this : this > : ^^^^ >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => null : () => any > : ^^^^^^^^^^^^ this.a3 = (x?: T) => null; // ok, fewer required params >this.a3 = (x?: T) => null : (x?: T) => any -> : ^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ >this.a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this : this > : ^^^^ >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x?: T) => null : (x?: T) => any -> : ^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ >x : T > : ^ this.a3 = (x: T) => null; // ok, same T of required params >this.a3 = (x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >this.a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this : this > : ^^^^ >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ this.a3 = (x: T, y: T) => null; // error, too many required params >this.a3 = (x: T, y: T) => null : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >this.a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this : this > : ^^^^ >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T, y: T) => null : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ >y : T @@ -985,25 +985,25 @@ module GenericSignaturesValid { >this.a4 = () => null : () => any > : ^^^^^^^^^^^^ >this.a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >() => null : () => any > : ^^^^^^^^^^^^ this.a4 = (x?: T, y?: T) => null; // ok, fewer required params >this.a4 = (x?: T, y?: T) => null : (x?: T, y?: T) => any -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^^^^ >this.a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >(x?: T, y?: T) => null : (x?: T, y?: T) => any -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^^^^ >x : T > : ^ >y : T @@ -1011,29 +1011,29 @@ module GenericSignaturesValid { this.a4 = (x: T) => null; // ok, same T of required params >this.a4 = (x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >this.a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >(x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ this.a4 = (x: T, y: T) => null; // ok, same number of params >this.a4 = (x: T, y: T) => null : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >this.a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >(x: T, y: T) => null : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ >y : T @@ -1044,25 +1044,25 @@ module GenericSignaturesValid { >this.a5 = () => null : () => any > : ^^^^^^^^^^^^ >this.a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >() => null : () => any > : ^^^^^^^^^^^^ this.a5 = (x?: T, y?: T) => null; // ok, fewer required params >this.a5 = (x?: T, y?: T) => null : (x?: T, y?: T) => any -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^^^^ >this.a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >(x?: T, y?: T) => null : (x?: T, y?: T) => any -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^^^^ >x : T > : ^ >y : T @@ -1070,29 +1070,29 @@ module GenericSignaturesValid { this.a5 = (x: T) => null; // ok, all present params match >this.a5 = (x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >this.a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >(x: T) => null : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ this.a5 = (x: T, y: T) => null; // ok, same number of params >this.a5 = (x: T, y: T) => null : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >this.a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >this : this > : ^^^^ >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >(x: T, y: T) => null : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/assignmentCompatability24.types b/tests/baselines/reference/assignmentCompatability24.types index 4e964a3a6dfcb..2f74789cbb364 100644 --- a/tests/baselines/reference/assignmentCompatability24.types +++ b/tests/baselines/reference/assignmentCompatability24.types @@ -31,11 +31,11 @@ module __test2__ { export var obj = function f(a: Tstring) { return a; };; >obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >function f(a: Tstring) { return a; } : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >f : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >a : Tstring > : ^^^^^^^ >a : Tstring @@ -43,19 +43,19 @@ module __test2__ { export var __val__obj = obj; >__val__obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ } __test2__.__val__obj = __test1__.__val__obj4 >__test2__.__val__obj = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test2__.__val__obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >__test2__ : typeof __test2__ > : ^^^^^^^^^^^^^^^^ >__val__obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test1__ : typeof __test1__ diff --git a/tests/baselines/reference/assignmentCompatability33.types b/tests/baselines/reference/assignmentCompatability33.types index 216500a14bad4..702c8db5d824c 100644 --- a/tests/baselines/reference/assignmentCompatability33.types +++ b/tests/baselines/reference/assignmentCompatability33.types @@ -31,25 +31,25 @@ module __test2__ { export var obj: { (a: Tstring): Tstring; }; >obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >a : Tstring > : ^^^^^^^ export var __val__obj = obj; >__val__obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ } __test2__.__val__obj = __test1__.__val__obj4 >__test2__.__val__obj = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test2__.__val__obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >__test2__ : typeof __test2__ > : ^^^^^^^^^^^^^^^^ >__val__obj : (a: Tstring) => Tstring -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test1__ : typeof __test1__ diff --git a/tests/baselines/reference/assignmentCompatability34.types b/tests/baselines/reference/assignmentCompatability34.types index 874597fae32b1..bd1d8c5c160af 100644 --- a/tests/baselines/reference/assignmentCompatability34.types +++ b/tests/baselines/reference/assignmentCompatability34.types @@ -31,25 +31,25 @@ module __test2__ { export var obj: { (a:Tnumber):Tnumber;}; >obj : (a: Tnumber) => Tnumber -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >a : Tnumber > : ^^^^^^^ export var __val__obj = obj; >__val__obj : (a: Tnumber) => Tnumber -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : (a: Tnumber) => Tnumber -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ } __test2__.__val__obj = __test1__.__val__obj4 >__test2__.__val__obj = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test2__.__val__obj : (a: Tnumber) => Tnumber -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >__test2__ : typeof __test2__ > : ^^^^^^^^^^^^^^^^ >__val__obj : (a: Tnumber) => Tnumber -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test1__ : typeof __test1__ diff --git a/tests/baselines/reference/assignmentCompatability37.types b/tests/baselines/reference/assignmentCompatability37.types index 7b765f2c7a564..23f0068c6a84d 100644 --- a/tests/baselines/reference/assignmentCompatability37.types +++ b/tests/baselines/reference/assignmentCompatability37.types @@ -31,25 +31,25 @@ module __test2__ { export var aa:{ new (param: Tnumber); };; >aa : new (param: Tnumber) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >param : Tnumber > : ^^^^^^^ export var __val__aa = aa; >__val__aa : new (param: Tnumber) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >aa : new (param: Tnumber) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ } __test2__.__val__aa = __test1__.__val__obj4 >__test2__.__val__aa = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test2__.__val__aa : new (param: Tnumber) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >__test2__ : typeof __test2__ > : ^^^^^^^^^^^^^^^^ >__val__aa : new (param: Tnumber) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test1__ : typeof __test1__ diff --git a/tests/baselines/reference/assignmentCompatability38.types b/tests/baselines/reference/assignmentCompatability38.types index 1f31f968295f7..7ca91b9947407 100644 --- a/tests/baselines/reference/assignmentCompatability38.types +++ b/tests/baselines/reference/assignmentCompatability38.types @@ -31,25 +31,25 @@ module __test2__ { export var aa:{ new (param: Tstring); };; >aa : new (param: Tstring) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >param : Tstring > : ^^^^^^^ export var __val__aa = aa; >__val__aa : new (param: Tstring) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >aa : new (param: Tstring) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ } __test2__.__val__aa = __test1__.__val__obj4 >__test2__.__val__aa = __test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test2__.__val__aa : new (param: Tstring) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >__test2__ : typeof __test2__ > : ^^^^^^^^^^^^^^^^ >__val__aa : new (param: Tstring) => any -> : ^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >__test1__.__val__obj4 : __test1__.interfaceWithPublicAndOptional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >__test1__ : typeof __test1__ diff --git a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types index de7504bed4c23..4ce523dd03847 100644 --- a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types +++ b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types @@ -21,13 +21,13 @@ let mappedObject: {[K in "foo"]: null | {x: string}} = {foo: {x: "hello"}}; declare function foo(x: T): null | T; >foo : (x: T) => null | T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ function bar(key: K) { >bar : (key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : K > : ^ @@ -37,7 +37,7 @@ function bar(key: K) { >foo(mappedObject[key]) : { foo: { x: string; }; }[K] > : ^^^^^^^^^^^^ ^^^^^^^^^ >foo : (x: T) => null | T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >mappedObject[key] : { foo: { x: string; }; }[K] > : ^^^^^^^^^^^^ ^^^^^^^^^ >mappedObject : { foo: { x: string; }; } diff --git a/tests/baselines/reference/assignmentNonObjectTypeConstraints.types b/tests/baselines/reference/assignmentNonObjectTypeConstraints.types index 8924c51561a2e..76116ad290467 100644 --- a/tests/baselines/reference/assignmentNonObjectTypeConstraints.types +++ b/tests/baselines/reference/assignmentNonObjectTypeConstraints.types @@ -13,7 +13,7 @@ const enum E { A, B, C } function foo(x: T) { >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -28,7 +28,7 @@ foo(5); >foo(5) : void > : ^^^^ >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >5 : 5 > : ^ @@ -36,7 +36,7 @@ foo(E.A); >foo(E.A) : void > : ^^^^ >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >E.A : E.A > : ^^^ >E : typeof E @@ -56,7 +56,7 @@ class B { b } function bar(x: T) { >bar : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -71,7 +71,7 @@ bar(new A); >bar(new A) : void > : ^^^^ >bar : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >new A : A > : ^ >A : typeof A @@ -81,7 +81,7 @@ bar(new B); >bar(new B) : void > : ^^^^ >bar : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >new B : B > : ^ >B : typeof B diff --git a/tests/baselines/reference/assignmentStricterConstraints.types b/tests/baselines/reference/assignmentStricterConstraints.types index 4307744b8b0f9..20224fcd62a52 100644 --- a/tests/baselines/reference/assignmentStricterConstraints.types +++ b/tests/baselines/reference/assignmentStricterConstraints.types @@ -3,9 +3,9 @@ === assignmentStricterConstraints.ts === var f = function (x: T, y: S): void { >f : (x: T, y: S) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >function (x: T, y: S): void { x = y} : (x: T, y: S) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : S @@ -22,9 +22,9 @@ var f = function (x: T, y: S): void { var g = function (x: T, y: S): void { } >g : (x: T, y: S) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >function (x: T, y: S): void { } : (x: T, y: S) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : S @@ -32,17 +32,17 @@ var g = function (x: T, y: S): void { } g = f >g = f : (x: T, y: S) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g : (x: T, y: S) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >f : (x: T, y: S) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ g(1, "") >g(1, "") : void > : ^^^^ >g : (x: T, y: S) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" diff --git a/tests/baselines/reference/assignmentToAnyArrayRestParameters.types b/tests/baselines/reference/assignmentToAnyArrayRestParameters.types index 09a3540c6a0a5..b621b69432c65 100644 --- a/tests/baselines/reference/assignmentToAnyArrayRestParameters.types +++ b/tests/baselines/reference/assignmentToAnyArrayRestParameters.types @@ -5,7 +5,7 @@ function foo( >foo : (fa: (s: string, ...args: string[]) => string, fb: (s: string, ...args: T) => string) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ fa: (s: string, ...args: string[]) => string, >fa : (s: string, ...args: string[]) => string diff --git a/tests/baselines/reference/asyncArrowFunction11_es5.types b/tests/baselines/reference/asyncArrowFunction11_es5.types index 395793e8ed2ad..0a5f9d8368948 100644 --- a/tests/baselines/reference/asyncArrowFunction11_es5.types +++ b/tests/baselines/reference/asyncArrowFunction11_es5.types @@ -20,11 +20,11 @@ class A { >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ const obj = { ["a"]: () => this }; // computed property name after `await` triggers case >obj : { a: () => this; } diff --git a/tests/baselines/reference/asyncArrowFunction_allowJs.types b/tests/baselines/reference/asyncArrowFunction_allowJs.types index f21ca3c9126bf..99e2cb63575e0 100644 --- a/tests/baselines/reference/asyncArrowFunction_allowJs.types +++ b/tests/baselines/reference/asyncArrowFunction_allowJs.types @@ -50,7 +50,7 @@ const d = async () => { /** @type {function(function(): string): void} */ const f = (p) => {} >f : (arg0: () => string) => void -> : ^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^ ^^^^^ >(p) => {} : (p: () => string) => void > : ^ ^^^^^^^^ ^^^^^ >p : () => string @@ -61,7 +61,7 @@ f(async () => { >f(async () => { return 0}) : void > : ^^^^ >f : (arg0: () => string) => void -> : ^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^ ^^^^^ >async () => { return 0} : () => Promise > : ^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/asyncFunctionContextuallyTypedReturns.types b/tests/baselines/reference/asyncFunctionContextuallyTypedReturns.types index 19a78cded49dc..ab1ee85fcffaf 100644 --- a/tests/baselines/reference/asyncFunctionContextuallyTypedReturns.types +++ b/tests/baselines/reference/asyncFunctionContextuallyTypedReturns.types @@ -29,11 +29,11 @@ f(v => v ? [0] : Promise.reject()); >Promise.reject() : Promise<[0]> > : ^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ f(async v => v ? [0] : Promise.reject()); >f(async v => v ? [0] : Promise.reject()) : void @@ -55,11 +55,11 @@ f(async v => v ? [0] : Promise.reject()); >Promise.reject() : Promise<[0]> > : ^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ declare function g(cb: (v: boolean) => "contextuallyTypable" | PromiseLike<"contextuallyTypable">): void; >g : (cb: (v: boolean) => "contextuallyTypable" | PromiseLike<"contextuallyTypable">) => void @@ -87,11 +87,11 @@ g(v => v ? "contextuallyTypable" : Promise.reject()); >Promise.reject() : Promise<"contextuallyTypable"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ g(async v => v ? "contextuallyTypable" : Promise.reject()); >g(async v => v ? "contextuallyTypable" : Promise.reject()) : void @@ -111,11 +111,11 @@ g(async v => v ? "contextuallyTypable" : Promise.reject()); >Promise.reject() : Promise<"contextuallyTypable"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ type MyCallback = (thing: string) => void; >MyCallback : MyCallback @@ -151,11 +151,11 @@ h(v => v ? (abc) => { } : Promise.reject()); >Promise.reject() : Promise > : ^^^^^^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ h(async v => v ? (def) => { } : Promise.reject()); >h(async v => v ? (def) => { } : Promise.reject()) : void @@ -177,11 +177,11 @@ h(async v => v ? (def) => { } : Promise.reject()); >Promise.reject() : Promise > : ^^^^^^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ // repro from #29196 const increment: ( diff --git a/tests/baselines/reference/asyncFunctionReturnType.types b/tests/baselines/reference/asyncFunctionReturnType.types index 0ffaf33a7a328..e2bce57922c96 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.types +++ b/tests/baselines/reference/asyncFunctionReturnType.types @@ -64,11 +64,11 @@ async function fIndexedTypeForPromiseOfStringProp(obj: Obj): PromisePromise.resolve(obj.stringProp) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.stringProp : string > : ^^^^^^ >obj : Obj @@ -87,11 +87,11 @@ async function fIndexedTypeForExplicitPromiseOfStringProp(obj: Obj): PromisePromise.resolve(obj.stringProp) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.stringProp : string > : ^^^^^^ >obj : Obj @@ -124,11 +124,11 @@ async function fIndexedTypeForPromiseOfAnyProp(obj: Obj): PromisePromise.resolve(obj.anyProp) : Promise > : ^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.anyProp : any >obj : Obj > : ^^^ @@ -146,11 +146,11 @@ async function fIndexedTypeForExplicitPromiseOfAnyProp(obj: Obj): PromisePromise.resolve(obj.anyProp) : Promise > : ^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.anyProp : any >obj : Obj > : ^^^ @@ -160,7 +160,7 @@ async function fIndexedTypeForExplicitPromiseOfAnyProp(obj: Obj): Promise(obj: TObj): Promise { >fGenericIndexedTypeForStringProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ @@ -175,7 +175,7 @@ async function fGenericIndexedTypeForStringProp(obj: TObj): Pr async function fGenericIndexedTypeForPromiseOfStringProp(obj: TObj): Promise { >fGenericIndexedTypeForPromiseOfStringProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ @@ -183,11 +183,11 @@ async function fGenericIndexedTypeForPromiseOfStringProp(obj: >Promise.resolve(obj.stringProp) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.stringProp : string > : ^^^^^^ >obj : TObj @@ -198,7 +198,7 @@ async function fGenericIndexedTypeForPromiseOfStringProp(obj: async function fGenericIndexedTypeForExplicitPromiseOfStringProp(obj: TObj): Promise { >fGenericIndexedTypeForExplicitPromiseOfStringProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ @@ -206,11 +206,11 @@ async function fGenericIndexedTypeForExplicitPromiseOfStringPropPromise.resolve(obj.stringProp) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.stringProp : string > : ^^^^^^ >obj : TObj @@ -221,7 +221,7 @@ async function fGenericIndexedTypeForExplicitPromiseOfStringProp(obj: TObj): Promise { >fGenericIndexedTypeForAnyProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ @@ -235,7 +235,7 @@ async function fGenericIndexedTypeForAnyProp(obj: TObj): Promi async function fGenericIndexedTypeForPromiseOfAnyProp(obj: TObj): Promise { >fGenericIndexedTypeForPromiseOfAnyProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ @@ -243,11 +243,11 @@ async function fGenericIndexedTypeForPromiseOfAnyProp(obj: TOb >Promise.resolve(obj.anyProp) : Promise > : ^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.anyProp : any >obj : TObj > : ^^^^ @@ -257,7 +257,7 @@ async function fGenericIndexedTypeForPromiseOfAnyProp(obj: TOb async function fGenericIndexedTypeForExplicitPromiseOfAnyProp(obj: TObj): Promise { >fGenericIndexedTypeForExplicitPromiseOfAnyProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ @@ -265,11 +265,11 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( >Promise.resolve(obj.anyProp) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj.anyProp : any >obj : TObj > : ^^^^ @@ -279,7 +279,7 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise { >fGenericIndexedTypeForKProp : (obj: TObj, key: K) => Promise -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ >key : K @@ -296,7 +296,7 @@ async function fGenericIndexedTypeForKProp(obj: TObj, key: K): Promise { >fGenericIndexedTypeForPromiseOfKProp : (obj: TObj, key: K) => Promise -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ >key : K @@ -306,11 +306,11 @@ async function fGenericIndexedTypeForPromiseOfKPropPromise.resolve(obj[key]) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj[key] : TObj[K] > : ^^^^^^^ >obj : TObj @@ -321,7 +321,7 @@ async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise { >fGenericIndexedTypeForExplicitPromiseOfKProp : (obj: TObj, key: K) => Promise -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ >key : K @@ -331,11 +331,11 @@ async function fGenericIndexedTypeForExplicitPromiseOfKPropPromise.resolve(obj[key]) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj[key] : TObj[K] > : ^^^^^^^ >obj : TObj diff --git a/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types b/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types index a0e3a9f070b79..235bb91778a85 100644 --- a/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types +++ b/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types @@ -5,7 +5,7 @@ declare namespace Windows.Foundation { interface IPromise { then(success?: (value: TResult) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: TResult) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : ((value: TResult) => IPromise) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >value : TResult @@ -19,7 +19,7 @@ declare namespace Windows.Foundation { then(success?: (value: TResult) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: TResult) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : ((value: TResult) => IPromise) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >value : TResult @@ -33,7 +33,7 @@ declare namespace Windows.Foundation { then(success?: (value: TResult) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: TResult) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : ((value: TResult) => U) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >value : TResult @@ -47,7 +47,7 @@ declare namespace Windows.Foundation { then(success?: (value: TResult) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: TResult) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: TResult) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : ((value: TResult) => U) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >value : TResult @@ -101,13 +101,13 @@ async function sample(promise: Windows.Foundation.IPromise) { declare function resolve1(value: T): Promise; >resolve1 : (value: T) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ declare function resolve2(value: T): Windows.Foundation.IPromise; >resolve2 : (value: T) => Windows.Foundation.IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ >Windows : any @@ -129,7 +129,7 @@ async function sample2(x?: number) { >resolve1(x) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >resolve1 : (value: T) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : number | undefined > : ^^^^^^^^^^^^^^^^^^ @@ -141,7 +141,7 @@ async function sample2(x?: number) { >resolve2(x) : Windows.Foundation.IPromise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >resolve2 : (value: T) => Windows.Foundation.IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : number | undefined > : ^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/asyncGeneratorGenericNonWrappedReturn.types b/tests/baselines/reference/asyncGeneratorGenericNonWrappedReturn.types index b42023e6c7686..976533b78c238 100644 --- a/tests/baselines/reference/asyncGeneratorGenericNonWrappedReturn.types +++ b/tests/baselines/reference/asyncGeneratorGenericNonWrappedReturn.types @@ -5,7 +5,7 @@ export async function* test(a: T): AsyncGenerator { >test : (a: T) => AsyncGenerator -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/asyncImportedPromise_es5.types b/tests/baselines/reference/asyncImportedPromise_es5.types index 45922f1c1475a..866c2cb323408 100644 --- a/tests/baselines/reference/asyncImportedPromise_es5.types +++ b/tests/baselines/reference/asyncImportedPromise_es5.types @@ -18,5 +18,5 @@ class Test { async example(): Task { return; } >example : () => Task -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } diff --git a/tests/baselines/reference/asyncImportedPromise_es6.types b/tests/baselines/reference/asyncImportedPromise_es6.types index 5a6dab44269ab..c0fab0a64aaed 100644 --- a/tests/baselines/reference/asyncImportedPromise_es6.types +++ b/tests/baselines/reference/asyncImportedPromise_es6.types @@ -18,5 +18,5 @@ class Test { async example(): Task { return; } >example : () => Task -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } diff --git a/tests/baselines/reference/awaitCallExpressionInSyncFunction.types b/tests/baselines/reference/awaitCallExpressionInSyncFunction.types index fa988a13c2c11..1d6e367eed1e7 100644 --- a/tests/baselines/reference/awaitCallExpressionInSyncFunction.types +++ b/tests/baselines/reference/awaitCallExpressionInSyncFunction.types @@ -15,11 +15,11 @@ function foo() { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/awaitUnionPromise.types b/tests/baselines/reference/awaitUnionPromise.types index cd03ea8a5c7e0..a7d06cd381b72 100644 --- a/tests/baselines/reference/awaitUnionPromise.types +++ b/tests/baselines/reference/awaitUnionPromise.types @@ -43,11 +43,11 @@ async function main() { >x.next1() : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x.next1 : () => Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >x : IAsyncEnumerator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >next1 : () => Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ let b = await x.next2(); >b : number | AsyncEnumeratorDone @@ -57,11 +57,11 @@ async function main() { >x.next2() : Promise | Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x.next2 : () => Promise | Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >x : IAsyncEnumerator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >next2 : () => Promise | Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ let c = await x.next3(); >c : number | {} @@ -71,11 +71,11 @@ async function main() { >x.next3() : Promise > : ^^^^^^^^^^^^^^^^^^^^ >x.next3 : () => Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >x : IAsyncEnumerator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >next3 : () => Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ let d = await x.next4(); >d : number | { x: string; } @@ -85,10 +85,10 @@ async function main() { >x.next4() : Promise > : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >x.next4 : () => Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >x : IAsyncEnumerator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >next4 : () => Promise -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ } diff --git a/tests/baselines/reference/awaitedType.types b/tests/baselines/reference/awaitedType.types index dbc8add717e93..a8eb778636a75 100644 --- a/tests/baselines/reference/awaitedType.types +++ b/tests/baselines/reference/awaitedType.types @@ -140,7 +140,7 @@ type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -176,11 +176,11 @@ async function main() { >Promise.all([ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ]) : Promise<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ] : [number | Promise<1> | PromiseLike<1>, string | Promise<"2"> | PromiseLike<"2">, true | Promise | PromiseLike] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -188,7 +188,7 @@ async function main() { >MaybePromise(1) : 1 | Promise<1> | PromiseLike<1> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -196,7 +196,7 @@ async function main() { >MaybePromise('2') : "2" | Promise<"2"> | PromiseLike<"2"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'2' : "2" > : ^^^ @@ -204,7 +204,7 @@ async function main() { >MaybePromise(true) : true | Promise | PromiseLike > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -312,7 +312,7 @@ async function f6(x: Promise) { async function f7(x: T) { >f7 : (x: T) => Promise -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -332,7 +332,7 @@ async function f7(x: T) { async function f8(x: T) { >f8 : (x: T) => Promise -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -352,7 +352,7 @@ async function f8(x: T) { async function f9(x: T) { >f9 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -372,7 +372,7 @@ async function f9(x: T) { async function f10(x: T) { >f10 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -392,7 +392,7 @@ async function f10(x: T) { async function f11 void): void }>(x: T) { >f11 : void): void; }>(x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >then : (onfulfilled: (value: unknown) => void) => void > : ^ ^^ ^^^^^ >onfulfilled : (value: unknown) => void @@ -418,7 +418,7 @@ async function f11 void): void async function f12(x: T) { >f12 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -438,7 +438,7 @@ async function f12(x: T) { async function f13(x: T) { >f13 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -456,7 +456,7 @@ async function f13(x: T) { async function f14(x: T) { >f14 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >x : T @@ -476,7 +476,7 @@ async function f14(x: T) { async function f15(x: T) { >f15 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >then : number > : ^^^^^^ >x : T @@ -496,7 +496,7 @@ async function f15(x: T) { async function f16(x: T) { >f16 : (x: T) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >then : () => void > : ^^^^^^ >x : T @@ -523,7 +523,7 @@ type _Expect = TActual; // https://github.com/microsoft/TypeScript/issues/48320 async function f17 Promise>(fn: T) { >f17 : Promise>(fn: T) => Promise> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >args : any[] > : ^^^^^ >fn : T @@ -561,7 +561,7 @@ async function f17_usage() { >f17(async () => 123 as const) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^ >f17 : Promise>(fn: T) => Promise> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >async () => 123 as const : () => Promise<123> > : ^^^^^^^^^^^^^^^^^^ >123 as const : 123 @@ -586,7 +586,7 @@ type GenericStructure< async function brokenExample(structurePromise: Promise>, key: AcceptableKeyType): Promise { >brokenExample : (structurePromise: Promise>, key: AcceptableKeyType) => Promise -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >structurePromise : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : AcceptableKeyType @@ -660,7 +660,7 @@ type CheckSelect = T extends SelectAndInclude declare function findMany( >findMany : (args: T) => CheckSelect, Promise<2>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >select : string > : ^^^^^^ >include : string @@ -674,7 +674,7 @@ declare function findMany( async function findManyWrapper< >findManyWrapper : (args: T) => Promise, Promise<2>>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ T extends { select?: string; include?: string } >select : string @@ -694,7 +694,7 @@ async function findManyWrapper< >findMany(args) : CheckSelect, Promise<2>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >findMany : (args: T_1) => CheckSelect, Promise<2>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : T > : ^ @@ -715,7 +715,7 @@ async function mainFindMany() { >findManyWrapper({ select: "foo", include: "bar", }) : Promise<"Please either choose `select` or `include`"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >findManyWrapper : (args: T) => Promise, Promise<2>>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ select: "foo", include: "bar", } : { select: string; include: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -740,7 +740,7 @@ async function mainFindMany() { >findManyWrapper({}) : Promise> > : ^^^^^^^^^^^^^^^^^^^ >findManyWrapper : (args: T) => Promise, Promise<2>>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{} : {} > : ^^ @@ -752,7 +752,7 @@ async function mainFindMany() { >findManyWrapper({ select: "foo" }) : Promise> > : ^^^^^^^^^^^^^^^^^^^ >findManyWrapper : (args: T) => Promise, Promise<2>>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ select: "foo" } : { select: string; } > : ^^^^^^^^^^^^^^^^^^^ >select : string @@ -768,7 +768,7 @@ async function mainFindMany() { >findManyWrapper({ include: "bar" }) : Promise> > : ^^^^^^^^^^^^^^^^^^^ >findManyWrapper : (args: T) => Promise, Promise<2>>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ include: "bar" } : { include: string; } > : ^^^^^^^^^^^^^^^^^^^^ >include : string @@ -790,11 +790,11 @@ async function mainFindMany() { >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ @@ -806,11 +806,11 @@ async function mainFindMany() { >Promise.all(promises) : Promise<[number]> > : ^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >promises : readonly [Promise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >then : (onfulfilled?: (value: [number]) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise @@ -855,11 +855,11 @@ async function test40330() { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -877,11 +877,11 @@ async function test40330() { >Promise.all([ promiseNumber, ...[promiseVoid()] ]) : Promise<[number, ...void[]]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[ promiseNumber, ...[promiseVoid()] ] : [Promise, ...Promise[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/awaitedTypeCrash.types b/tests/baselines/reference/awaitedTypeCrash.types index e64266309cd6d..e0fb68efdbddb 100644 --- a/tests/baselines/reference/awaitedTypeCrash.types +++ b/tests/baselines/reference/awaitedTypeCrash.types @@ -4,5 +4,5 @@ // https://github.com/microsoft/TypeScript/issues/51984 async function* f>(): AsyncGenerator { } >f : >() => AsyncGenerator -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ diff --git a/tests/baselines/reference/awaitedTypeJQuery.types b/tests/baselines/reference/awaitedTypeJQuery.types index 85af2ef36ca47..6b2943305d27b 100644 --- a/tests/baselines/reference/awaitedTypeJQuery.types +++ b/tests/baselines/reference/awaitedTypeJQuery.types @@ -12,7 +12,7 @@ interface PromiseBase { thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP_1): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP_1): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD_1, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD_1, failFilter?: null, progressFilter?: null): PromiseBase; } -> : ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ BRD = never, BJD = never, BND = never, CRD = never, CJD = never, CND = never, @@ -75,7 +75,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP_1): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP_1): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter?: null, progressFilter?: null): PromiseBase; } -> : ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ BRF = never, BJF = never, BNF = never, CRF = never, CJF = never, CNF = never, @@ -123,7 +123,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP_1): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP_1): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter?: null, progressFilter?: null): PromiseBase; } -> : ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ BRP = never, BJP = never, BNP = never, CRP = never, CJP = never, CNP = never, @@ -156,7 +156,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD_1, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD_1, failFilter?: null, progressFilter?: null): PromiseBase; } -> : ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ BRD = never, BJD = never, BND = never, CRD = never, CJD = never, CND = never, @@ -204,7 +204,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF_1, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter?: null, progressFilter?: null): PromiseBase; } -> : ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ BRF = never, BJF = never, BNF = never, CRF = never, CJF = never, CNF = never, @@ -237,7 +237,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD_1, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD_1, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter?: null, progressFilter?: null): PromiseBase; } -> : ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ BRD = never, BJD = never, BND = never, CRD = never, CJD = never, CND = never, diff --git a/tests/baselines/reference/awaitedTypeNoLib.types b/tests/baselines/reference/awaitedTypeNoLib.types index f9fd4ea0a4f0a..c3d756230b2d8 100644 --- a/tests/baselines/reference/awaitedTypeNoLib.types +++ b/tests/baselines/reference/awaitedTypeNoLib.types @@ -28,7 +28,7 @@ class Thenable { private handleResolve( >handleResolve : (result: NotPromise | Thenable>, resolve: Receiver) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ result: NotPromise | Thenable>, >result : NotPromise | Thenable> @@ -52,11 +52,11 @@ class Thenable { >this.resolvePromise(result, resolve) : void > : ^^^^ >this.resolvePromise : (result: Thenable, resolve: Receiver) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >resolvePromise : (result: Thenable, resolve: Receiver) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >result : NotPromise | Thenable> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >resolve : Receiver @@ -66,7 +66,7 @@ class Thenable { private resolvePromise( >resolvePromise : (result: Thenable, resolve: Receiver) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ result: Thenable, >result : Thenable diff --git a/tests/baselines/reference/awaitedTypeStrictNull.types b/tests/baselines/reference/awaitedTypeStrictNull.types index 3a162c90d53b2..39bf55b4ca8a6 100644 --- a/tests/baselines/reference/awaitedTypeStrictNull.types +++ b/tests/baselines/reference/awaitedTypeStrictNull.types @@ -140,7 +140,7 @@ type MaybePromise = T | Promise | PromiseLike declare function MaybePromise(value: T): MaybePromise; >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -176,11 +176,11 @@ async function main() { >Promise.all([ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ]) : Promise<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[ MaybePromise(1), MaybePromise('2'), MaybePromise(true), ] : [number | Promise<1> | PromiseLike<1>, string | Promise<"2"> | PromiseLike<"2">, true | Promise | PromiseLike] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -188,7 +188,7 @@ async function main() { >MaybePromise(1) : 1 | Promise<1> | PromiseLike<1> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -196,7 +196,7 @@ async function main() { >MaybePromise('2') : "2" | Promise<"2"> | PromiseLike<"2"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'2' : "2" > : ^^^ @@ -204,7 +204,7 @@ async function main() { >MaybePromise(true) : true | Promise | PromiseLike > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MaybePromise : (value: T) => MaybePromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -223,15 +223,15 @@ class Api { >this.request() : Promise > : ^^^^^^^^^^ >this.request : () => Promise -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >this : this > : ^^^^ >request : () => Promise -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ async request(): Promise { throw new Error(); } >request : () => Promise -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >new Error() : Error > : ^^^^^ >Error : ErrorConstructor @@ -248,7 +248,7 @@ interface Obj { x: number } async function fn(): Promise { >fn : () => Promise -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // Per #45924, this was failing due to incorrect inference both above and here. // Should not error. diff --git a/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types b/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types index e7024a67541b4..2d994b4ecb2c0 100644 --- a/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types +++ b/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types @@ -17,7 +17,7 @@ interface Foo { declare function canYouInferThis(fn: () => Foo): A; >canYouInferThis : (fn: () => Foo) => A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fn : () => Foo > : ^^^^^^ @@ -27,7 +27,7 @@ const result = canYouInferThis(() => ({ >canYouInferThis(() => ({ a: { BLAH: 33 }, b: x => { }})) : { BLAH: number; } > : ^^^^^^^^^^^^^^^^^ >canYouInferThis : (fn: () => Foo) => A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => ({ a: { BLAH: 33 }, b: x => { }}) : () => { a: { BLAH: number; }; b: (x: { BLAH: number; }) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >({ a: { BLAH: 33 }, b: x => { }}) : { a: { BLAH: number; }; b: (x: { BLAH: number; }) => void; } @@ -67,7 +67,7 @@ result.BLAH; function goofus (f: (...args: ARGS) => any ) {} >goofus : (f: (...args: ARGS) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >f : (...args: ARGS) => any > : ^^^^ ^^ ^^^^^ >args : ARGS @@ -77,7 +77,7 @@ goofus((a: string) => ({ dog() { return a; } })); >goofus((a: string) => ({ dog() { return a; } })) : void > : ^^^^ >goofus : (f: (...args: ARGS) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(a: string) => ({ dog() { return a; } }) : (a: string) => { dog(): string; } > : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ >a : string @@ -95,7 +95,7 @@ goofus((a: string) => ({ dog: function() { return a; } })); >goofus((a: string) => ({ dog: function() { return a; } })) : void > : ^^^^ >goofus : (f: (...args: ARGS) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(a: string) => ({ dog: function() { return a; } }) : (a: string) => { dog: () => string; } > : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : string diff --git a/tests/baselines/reference/baseConstraintOfDecorator.types b/tests/baselines/reference/baseConstraintOfDecorator.types index 38642810a20b6..9f646467235f0 100644 --- a/tests/baselines/reference/baseConstraintOfDecorator.types +++ b/tests/baselines/reference/baseConstraintOfDecorator.types @@ -3,7 +3,7 @@ === baseConstraintOfDecorator.ts === export function classExtender(superClass: TFunction, _instanceModifier: (instance: any, args: any[]) => void): TFunction { >classExtender : (superClass: TFunction, _instanceModifier: (instance: any, args: any[]) => void) => TFunction -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >superClass : TFunction > : ^^^^^^^^^ >_instanceModifier : (instance: any, args: any[]) => void @@ -56,7 +56,7 @@ class MyClass { private x; } export function classExtender2 MyClass>(superClass: TFunction, _instanceModifier: (instance: any, args: any[]) => void): TFunction { >classExtender2 : MyClass>(superClass: TFunction, _instanceModifier: (instance: any, args: any[]) => void) => TFunction -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >args : string[] > : ^^^^^^^^ >superClass : TFunction diff --git a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types index 5ad7b098ee2ea..9bce41a27ad8e 100644 --- a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.types @@ -178,7 +178,7 @@ var r11 = true ? base : derived2; function foo5(t: T, u: U): Object { >foo5 : (t: T, u: U) => Object -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types index 2f4354517301e..b9eea3bde3f7a 100644 --- a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types @@ -64,7 +64,7 @@ var r9 = true ? derived : derived2; function foo(t: T, u: U) { >foo : (t: T, u: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >t : T > : ^ >u : U @@ -83,7 +83,7 @@ function foo(t: T, u: U) { function foo2(t: T, u: U) { // Error for referencing own type parameter >foo2 : (t: T, u: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -102,7 +102,7 @@ function foo2(t: T, u: U) { // Error for referencing own type pa function foo3(t: T, u: U) { >foo3 : (t: T, u: U) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/betterErrorForUnionCall.types b/tests/baselines/reference/betterErrorForUnionCall.types index 5c06f2b2a2cb1..6fae98fb8f192 100644 --- a/tests/baselines/reference/betterErrorForUnionCall.types +++ b/tests/baselines/reference/betterErrorForUnionCall.types @@ -35,7 +35,7 @@ fnUnion(""); declare const fnUnion2: ((a: T) => void) | ((a: string) => void) >fnUnion2 : ((a: T) => void) | ((a: string) => void) -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -45,7 +45,7 @@ fnUnion2(""); >fnUnion2("") : any > : ^^^ >fnUnion2 : ((a: T) => void) | ((a: string) => void) -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >"" : "" > : ^^ diff --git a/tests/baselines/reference/bigintMissingES2019.types b/tests/baselines/reference/bigintMissingES2019.types index 6aa6626ff8dbb..067bdd79fa228 100644 --- a/tests/baselines/reference/bigintMissingES2019.types +++ b/tests/baselines/reference/bigintMissingES2019.types @@ -3,13 +3,13 @@ === bigintMissingES2019.ts === declare function test(): void; >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ test<{t?: string}, object>(); >test<{t?: string}, object>() : void > : ^^^^ >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >t : string > : ^^^^^^ @@ -17,7 +17,7 @@ test<{t?: string}, bigint>(); >test<{t?: string}, bigint>() : void > : ^^^^ >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >t : string > : ^^^^^^ diff --git a/tests/baselines/reference/bigintMissingES2020.types b/tests/baselines/reference/bigintMissingES2020.types index 19e9913c5b15a..377b55f1f09b8 100644 --- a/tests/baselines/reference/bigintMissingES2020.types +++ b/tests/baselines/reference/bigintMissingES2020.types @@ -3,13 +3,13 @@ === bigintMissingES2020.ts === declare function test(): void; >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ test<{t?: string}, object>(); >test<{t?: string}, object>() : void > : ^^^^ >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >t : string > : ^^^^^^ @@ -17,7 +17,7 @@ test<{t?: string}, bigint>(); >test<{t?: string}, bigint>() : void > : ^^^^ >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >t : string > : ^^^^^^ diff --git a/tests/baselines/reference/bigintMissingESNext.types b/tests/baselines/reference/bigintMissingESNext.types index 18dc7e73f5170..440dfd6150567 100644 --- a/tests/baselines/reference/bigintMissingESNext.types +++ b/tests/baselines/reference/bigintMissingESNext.types @@ -3,13 +3,13 @@ === bigintMissingESNext.ts === declare function test(): void; >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ test<{t?: string}, object>(); >test<{t?: string}, object>() : void > : ^^^^ >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >t : string > : ^^^^^^ @@ -17,7 +17,7 @@ test<{t?: string}, bigint>(); >test<{t?: string}, bigint>() : void > : ^^^^ >test : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >t : string > : ^^^^^^ diff --git a/tests/baselines/reference/bindingPatternCannotBeOnlyInferenceSource.types b/tests/baselines/reference/bindingPatternCannotBeOnlyInferenceSource.types index 53bac68d19430..b44705f891e1d 100644 --- a/tests/baselines/reference/bindingPatternCannotBeOnlyInferenceSource.types +++ b/tests/baselines/reference/bindingPatternCannotBeOnlyInferenceSource.types @@ -3,13 +3,13 @@ === bindingPatternCannotBeOnlyInferenceSource.ts === declare function f(): T; >f : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const {} = f(); // error (only in strictNullChecks) >f() : unknown > : ^^^^^^^ >f : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const { p1 } = f(); // error >p1 : any @@ -17,13 +17,13 @@ const { p1 } = f(); // error >f() : unknown > : ^^^^^^^ >f : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const [] = f(); // error >f() : unknown > : ^^^^^^^ >f : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const [e1, e2] = f(); // error >e1 : any @@ -33,7 +33,7 @@ const [e1, e2] = f(); // error >f() : unknown > : ^^^^^^^ >f : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // Repro from #43605 type Dispatch = { (action: T): T }; @@ -113,7 +113,7 @@ type TFuncs1 = typeof funcs1; declare function useReduxDispatch1>(destructuring: Destructuring): T; >useReduxDispatch1 : >(destructuring: Destructuring) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >destructuring : Destructuring<{ funcA: (a: boolean) => void; funcB: (b: string, bb: string) => void; funcC: (c: number, cc: number, ccc: boolean) => void; }, T> > : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^ @@ -121,7 +121,7 @@ const {} = useReduxDispatch1( >useReduxDispatch1( (d, f) => ({ funcA: (...p) => d(f.funcA(...p)), // p should be inferrable funcB: (...p) => d(f.funcB(...p)), funcC: (...p) => d(f.funcC(...p)), })) : { funcA: (a: boolean) => void; funcB: (b: string, bb: string) => void; funcC: (c: number, cc: number, ccc: boolean) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >useReduxDispatch1 : >(destructuring: Destructuring) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ (d, f) => ({ >(d, f) => ({ funcA: (...p) => d(f.funcA(...p)), // p should be inferrable funcB: (...p) => d(f.funcB(...p)), funcC: (...p) => d(f.funcC(...p)), }) : (d: Dispatch, f: { funcA: (a: boolean) => void; funcB: (b: string, bb: string) => void; funcC: (c: number, cc: number, ccc: boolean) => void; }) => { funcA: (a: boolean) => void; funcB: (b: string, bb: string) => void; funcC: (c: number, cc: number, ccc: boolean) => void; } diff --git a/tests/baselines/reference/bindingPatternContextualTypeDoesNotCauseWidening.types b/tests/baselines/reference/bindingPatternContextualTypeDoesNotCauseWidening.types index c2ab323df1845..d09eeb97e3079 100644 --- a/tests/baselines/reference/bindingPatternContextualTypeDoesNotCauseWidening.types +++ b/tests/baselines/reference/bindingPatternContextualTypeDoesNotCauseWidening.types @@ -3,7 +3,7 @@ === bindingPatternContextualTypeDoesNotCauseWidening.ts === declare function pick(keys: T[], obj?: O): Pick; >pick : (keys: T[], obj?: O) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >keys : T[] > : ^^^ >obj : O @@ -15,7 +15,7 @@ const _ = pick(['b'], { a: 'a', b: 'b' }); // T: "b" >pick(['b'], { a: 'a', b: 'b' }) : Pick<{ a: string; b: string; }, "b"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >pick : (keys: T[], obj?: O) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >['b'] : "b"[] > : ^^^^^ >'b' : "b" @@ -35,7 +35,7 @@ const { } = pick(['b'], { a: 'a', b: 'b' }); // T: "b" | "a" ??? (before fix) >pick(['b'], { a: 'a', b: 'b' }) : Pick<{ a: string; b: string; }, "b"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >pick : (keys: T[], obj?: O) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >['b'] : "b"[] > : ^^^^^ >'b' : "b" diff --git a/tests/baselines/reference/bivariantInferences.types b/tests/baselines/reference/bivariantInferences.types index 7706216479273..3829ac9e2c88a 100644 --- a/tests/baselines/reference/bivariantInferences.types +++ b/tests/baselines/reference/bivariantInferences.types @@ -6,7 +6,7 @@ interface Array { equalsShallow(this: ReadonlyArray, other: ReadonlyArray): boolean; >equalsShallow : (this: ReadonlyArray, other: ReadonlyArray) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >this : readonly T[] > : ^^^^^^^^^^^^ >other : readonly T[] diff --git a/tests/baselines/reference/bluebirdStaticThis.types b/tests/baselines/reference/bluebirdStaticThis.types index d87609047df49..0f716b03e04b6 100644 --- a/tests/baselines/reference/bluebirdStaticThis.types +++ b/tests/baselines/reference/bluebirdStaticThis.types @@ -27,7 +27,7 @@ export declare class Promise implements Promise.Thenable { static try(dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; >try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R_1, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -43,7 +43,7 @@ export declare class Promise implements Promise.Thenable { static try(dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; >try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -57,7 +57,7 @@ export declare class Promise implements Promise.Thenable { static attempt(dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; >attempt : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R_1, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -73,7 +73,7 @@ export declare class Promise implements Promise.Thenable { static attempt(dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; >attempt : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -97,7 +97,7 @@ export declare class Promise implements Promise.Thenable { static resolve(dit: typeof Promise): Promise; >resolve : { (dit: typeof Promise): Promise; (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -105,7 +105,7 @@ export declare class Promise implements Promise.Thenable { static resolve(dit: typeof Promise, value: Promise.Thenable): Promise; >resolve : { (dit: typeof Promise): Promise; (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R_1): Promise; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -117,7 +117,7 @@ export declare class Promise implements Promise.Thenable { static resolve(dit: typeof Promise, value: R): Promise; >resolve : { (dit: typeof Promise): Promise; (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -127,7 +127,7 @@ export declare class Promise implements Promise.Thenable { static reject(dit: typeof Promise, reason: any): Promise; >reject : { (dit: typeof Promise, reason: any): Promise; (dit: typeof Promise, reason: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -137,7 +137,7 @@ export declare class Promise implements Promise.Thenable { static reject(dit: typeof Promise, reason: any): Promise; >reject : { (dit: typeof Promise, reason: any): Promise; (dit: typeof Promise, reason: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -147,7 +147,7 @@ export declare class Promise implements Promise.Thenable { static defer(dit: typeof Promise): Promise.Resolver; >defer : (dit: typeof Promise) => Promise.Resolver -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -157,7 +157,7 @@ export declare class Promise implements Promise.Thenable { static cast(dit: typeof Promise, value: Promise.Thenable): Promise; >cast : { (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -169,7 +169,7 @@ export declare class Promise implements Promise.Thenable { static cast(dit: typeof Promise, value: R): Promise; >cast : { (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -207,7 +207,7 @@ export declare class Promise implements Promise.Thenable { static delay(dit: typeof Promise, value: Promise.Thenable, ms: number): Promise; >delay : { (dit: typeof Promise, value: Promise.Thenable, ms: number): Promise; (dit: typeof Promise, value: R_1, ms: number): Promise; (dit: typeof Promise, ms: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -221,7 +221,7 @@ export declare class Promise implements Promise.Thenable { static delay(dit: typeof Promise, value: R, ms: number): Promise; >delay : { (dit: typeof Promise, value: Promise.Thenable, ms: number): Promise; (dit: typeof Promise, value: R, ms: number): Promise; (dit: typeof Promise, ms: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -233,7 +233,7 @@ export declare class Promise implements Promise.Thenable { static delay(dit: typeof Promise, ms: number): Promise; >delay : { (dit: typeof Promise, value: Promise.Thenable, ms: number): Promise; (dit: typeof Promise, value: R, ms: number): Promise; (dit: typeof Promise, ms: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -275,7 +275,7 @@ export declare class Promise implements Promise.Thenable { static spawn(dit: typeof Promise, generatorFunction: Function): Promise; >spawn : (dit: typeof Promise, generatorFunction: Function) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -307,7 +307,7 @@ export declare class Promise implements Promise.Thenable { static all(dit: typeof Promise, values: Promise.Thenable[]>): Promise; >all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -321,7 +321,7 @@ export declare class Promise implements Promise.Thenable { static all(dit: typeof Promise, values: Promise.Thenable): Promise; >all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -333,7 +333,7 @@ export declare class Promise implements Promise.Thenable { static all(dit: typeof Promise, values: Promise.Thenable[]): Promise; >all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -345,7 +345,7 @@ export declare class Promise implements Promise.Thenable { static all(dit: typeof Promise, values: R[]): Promise; >all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -375,7 +375,7 @@ export declare class Promise implements Promise.Thenable { static settle(dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; >settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_1[]): Promise[]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -391,7 +391,7 @@ export declare class Promise implements Promise.Thenable { static settle(dit: typeof Promise, values: Promise.Thenable): Promise[]>; >settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_1[]): Promise[]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -405,7 +405,7 @@ export declare class Promise implements Promise.Thenable { static settle(dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; >settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_1[]): Promise[]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -419,7 +419,7 @@ export declare class Promise implements Promise.Thenable { static settle(dit: typeof Promise, values: R[]): Promise[]>; >settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R[]): Promise[]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -431,7 +431,7 @@ export declare class Promise implements Promise.Thenable { static any(dit: typeof Promise, values: Promise.Thenable[]>): Promise; >any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -445,7 +445,7 @@ export declare class Promise implements Promise.Thenable { static any(dit: typeof Promise, values: Promise.Thenable): Promise; >any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -457,7 +457,7 @@ export declare class Promise implements Promise.Thenable { static any(dit: typeof Promise, values: Promise.Thenable[]): Promise; >any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -469,7 +469,7 @@ export declare class Promise implements Promise.Thenable { static any(dit: typeof Promise, values: R[]): Promise; >any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -479,7 +479,7 @@ export declare class Promise implements Promise.Thenable { static race(dit: typeof Promise, values: Promise.Thenable[]>): Promise; >race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -493,7 +493,7 @@ export declare class Promise implements Promise.Thenable { static race(dit: typeof Promise, values: Promise.Thenable): Promise; >race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -505,7 +505,7 @@ export declare class Promise implements Promise.Thenable { static race(dit: typeof Promise, values: Promise.Thenable[]): Promise; >race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -517,7 +517,7 @@ export declare class Promise implements Promise.Thenable { static race(dit: typeof Promise, values: R[]): Promise; >race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -527,7 +527,7 @@ export declare class Promise implements Promise.Thenable { static some(dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; >some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_1[], count: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -543,7 +543,7 @@ export declare class Promise implements Promise.Thenable { static some(dit: typeof Promise, values: Promise.Thenable, count: number): Promise; >some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_1[], count: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -557,7 +557,7 @@ export declare class Promise implements Promise.Thenable { static some(dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; >some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_1[], count: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -571,7 +571,7 @@ export declare class Promise implements Promise.Thenable { static some(dit: typeof Promise, values: R[], count: number): Promise; >some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R[], count: number): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -583,7 +583,7 @@ export declare class Promise implements Promise.Thenable { static join(dit: typeof Promise, ...values: Promise.Thenable[]): Promise; >join : { (dit: typeof Promise, ...values: Promise.Thenable[]): Promise; (dit: typeof Promise, ...values: R_1[]): Promise; } -> : ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -595,7 +595,7 @@ export declare class Promise implements Promise.Thenable { static join(dit: typeof Promise, ...values: R[]): Promise; >join : { (dit: typeof Promise, ...values: Promise.Thenable[]): Promise; (dit: typeof Promise, ...values: R[]): Promise; } -> : ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -605,7 +605,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -629,7 +629,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => U): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -651,7 +651,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -673,7 +673,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => U): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -693,7 +693,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -715,7 +715,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -735,7 +735,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -755,7 +755,7 @@ export declare class Promise implements Promise.Thenable { static map(dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; >map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_1, index: number, arrayLength: number) => U_1): Promise; (dit: typeof Promise, values: R_1[], mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -773,7 +773,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -801,7 +801,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -827,7 +827,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -853,7 +853,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -877,7 +877,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -903,7 +903,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -927,7 +927,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -951,7 +951,7 @@ export declare class Promise implements Promise.Thenable { static reduce(dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; >reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => U_1, initialValue?: U_1): Promise; (dit: typeof Promise, values: R_1[], reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -973,7 +973,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -997,7 +997,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1019,7 +1019,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1041,7 +1041,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1061,7 +1061,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1083,7 +1083,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1103,7 +1103,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1123,7 +1123,7 @@ export declare class Promise implements Promise.Thenable { static filter(dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; >filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_1, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_1[], filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >dit : typeof Promise > : ^^^^^^^^^^^^^^ >Promise : typeof Promise @@ -1144,7 +1144,7 @@ export declare module Promise { export interface Thenable { then(onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; >then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_1): Thenable; (onFulfilled: (value: R) => U_1, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_1, onRejected?: (error: any) => U_1): Thenable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ >onFulfilled : (value: R) => Thenable > : ^ ^^ ^^^^^ >value : R @@ -1156,7 +1156,7 @@ export declare module Promise { then(onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U): Thenable; >then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U): Thenable; (onFulfilled: (value: R) => U_1, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_1, onRejected?: (error: any) => U_1): Thenable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ >onFulfilled : (value: R) => Thenable > : ^ ^^ ^^^^^ >value : R @@ -1168,7 +1168,7 @@ export declare module Promise { then(onFulfilled: (value: R) => U, onRejected: (error: any) => Thenable): Thenable; >then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_1): Thenable; (onFulfilled: (value: R) => U, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_1, onRejected?: (error: any) => U_1): Thenable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ >onFulfilled : (value: R) => U > : ^ ^^ ^^^^^ >value : R @@ -1180,7 +1180,7 @@ export declare module Promise { then(onFulfilled?: (value: R) => U, onRejected?: (error: any) => U): Thenable; >then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_1): Thenable; (onFulfilled: (value: R) => U_1, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U, onRejected?: (error: any) => U): Thenable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ >onFulfilled : (value: R) => U > : ^ ^^ ^^^^^ >value : R @@ -1226,11 +1226,11 @@ fooProm = Promise.try(Promise, () => { >Promise.try(Promise, () => { return foo;}) : Promise > : ^^^^^^^^^^^^ >Promise.try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Promise : typeof Promise > : ^^^^^^^^^^^^^^ >try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Promise : typeof Promise > : ^^^^^^^^^^^^^^ >() => { return foo;} : () => Foo @@ -1249,11 +1249,11 @@ fooProm = Promise.try(Promise, () => { >Promise.try(Promise, () => { return foo;}, arr) : Promise > : ^^^^^^^^^^^^ >Promise.try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Promise : typeof Promise > : ^^^^^^^^^^^^^^ >try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Promise : typeof Promise > : ^^^^^^^^^^^^^^ >() => { return foo;} : () => Foo @@ -1275,11 +1275,11 @@ fooProm = Promise.try(Promise, () => { >Promise.try(Promise, () => { return foo;}, arr, x) : Promise > : ^^^^^^^^^^^^ >Promise.try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Promise : typeof Promise > : ^^^^^^^^^^^^^^ >try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Promise : typeof Promise > : ^^^^^^^^^^^^^^ >() => { return foo;} : () => Foo diff --git a/tests/baselines/reference/booleanFilterAnyArray.types b/tests/baselines/reference/booleanFilterAnyArray.types index 3c9d16544b0a0..c8f26258bac0d 100644 --- a/tests/baselines/reference/booleanFilterAnyArray.types +++ b/tests/baselines/reference/booleanFilterAnyArray.types @@ -14,7 +14,7 @@ interface BulleanConstructor { interface Ari { filter(cb1: (value: T) => value is S): T extends any ? Ari : Ari; >filter : { (cb1: (value: T) => value is S): T extends any ? Ari : Ari; (cb2: (value: T) => unknown): Ari; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >cb1 : (value: T) => value is S > : ^ ^^ ^^^^^ >value : T @@ -22,7 +22,7 @@ interface Ari { filter(cb2: (value: T) => unknown): Ari; >filter : { (cb1: (value: T) => value is S): T extends any ? Ari : Ari; (cb2: (value: T) => unknown): Ari; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >cb2 : (value: T) => unknown > : ^ ^^ ^^^^^ >value : T @@ -46,11 +46,11 @@ var xs = anys.filter(Bullean) >anys.filter(Bullean) : Ari > : ^^^^^^^^ >anys.filter : { (cb1: (value: any) => value is S): any extends any ? Ari : Ari; (cb2: (value: any) => unknown): Ari; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^ >anys : Ari > : ^^^^^^^^ >filter : { (cb1: (value: any) => value is S): any extends any ? Ari : Ari; (cb2: (value: any) => unknown): Ari; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^ >Bullean : BulleanConstructor > : ^^^^^^^^^^^^^^^^^^ @@ -68,11 +68,11 @@ var ys = realanys.filter(Boolean) >realanys.filter(Boolean) : any[] > : ^^^^^ >realanys.filter : { (predicate: (value: any, index: number, array: any[]) => value is S, thisArg?: any): S[]; (predicate: (value: any, index: number, array: any[]) => unknown, thisArg?: any): any[]; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >realanys : any[] > : ^^^^^ >filter : { (predicate: (value: any, index: number, array: any[]) => value is S, thisArg?: any): S[]; (predicate: (value: any, index: number, array: any[]) => unknown, thisArg?: any): any[]; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >Boolean : BooleanConstructor > : ^^^^^^^^^^^^^^^^^^ @@ -100,11 +100,11 @@ var foor = foo.filter(x => x.name) >foo.filter(x => x.name) : { name: string; }[] > : ^^^^^^^^^^^^^^^^^^^ >foo.filter : { (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => value is S, thisArg?: any): S[]; (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => unknown, thisArg?: any): { name: string; }[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^ >foo : { name: string; }[] > : ^^^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => value is S, thisArg?: any): S[]; (predicate: (value: { name: string; }, index: number, array: { name: string; }[]) => unknown, thisArg?: any): { name: string; }[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^ >x => x.name : (x: { name: string; }) => string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : { name: string; } @@ -126,7 +126,7 @@ var foos = [true, true, false, null].filter((thing): thing is boolean => thing ! >[true, true, false, null].filter((thing): thing is boolean => thing !== null) : boolean[] > : ^^^^^^^^^ >[true, true, false, null].filter : { (predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; (predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >[true, true, false, null] : boolean[] > : ^^^^^^^^^ >true : true @@ -136,7 +136,7 @@ var foos = [true, true, false, null].filter((thing): thing is boolean => thing ! >false : false > : ^^^^^ >filter : { (predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; (predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >(thing): thing is boolean => thing !== null : (thing: boolean) => thing is boolean > : ^ ^^^^^^^^^^^^^^ >thing : boolean diff --git a/tests/baselines/reference/cachedContextualTypes.types b/tests/baselines/reference/cachedContextualTypes.types index 20735415cb6e4..5030a1dd40bc1 100644 --- a/tests/baselines/reference/cachedContextualTypes.types +++ b/tests/baselines/reference/cachedContextualTypes.types @@ -5,7 +5,7 @@ declare function createInstance any, R extends InstanceType>(ctor: Ctor, ...args: ConstructorParameters): R; >createInstance : any, R extends InstanceType>(ctor: Ctor, ...args: ConstructorParameters) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >args : any[] > : ^^^^^ >ctor : Ctor @@ -43,7 +43,7 @@ createInstance(MenuWorkbenchToolBar, { >createInstance(MenuWorkbenchToolBar, { toolbarOptions: { foo(bar) { return bar; } }}) : MenuWorkbenchToolBar > : ^^^^^^^^^^^^^^^^^^^^ >createInstance : any, R extends InstanceType>(ctor: Ctor, ...args: ConstructorParameters) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >MenuWorkbenchToolBar : typeof MenuWorkbenchToolBar > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ toolbarOptions: { foo(bar) { return bar; } }} : { toolbarOptions: { foo(bar: string): string; }; } diff --git a/tests/baselines/reference/callChain.3.types b/tests/baselines/reference/callChain.3.types index 64314d5a7b23b..fe8f878d0e626 100644 --- a/tests/baselines/reference/callChain.3.types +++ b/tests/baselines/reference/callChain.3.types @@ -3,13 +3,13 @@ === callChain.3.ts === declare function absorb(): T; >absorb : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ declare const a: { m?(obj: {x: T}): T } | undefined; >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >obj : { x: T; } > : ^^^^^ ^^^ >x : T @@ -21,11 +21,11 @@ const n1: number = a?.m?.({x: 12 }); // should be an error (`undefined` is not a >a?.m?.({x: 12 }) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >a?.m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >{x: 12 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -39,11 +39,11 @@ const n2: number = a?.m?.({x: absorb()}); // likewise >a?.m?.({x: absorb()}) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >a?.m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >{x: absorb()} : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -51,7 +51,7 @@ const n2: number = a?.m?.({x: absorb()}); // likewise >absorb() : number > : ^^^^^^ >absorb : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const n3: number | undefined = a?.m?.({x: 12}); // should be ok >n3 : number | undefined @@ -59,11 +59,11 @@ const n3: number | undefined = a?.m?.({x: 12}); // should be ok >a?.m?.({x: 12}) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >a?.m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >{x: 12} : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -77,11 +77,11 @@ const n4: number | undefined = a?.m?.({x: absorb()}); // likewise >a?.m?.({x: absorb()}) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >a?.m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >{x: absorb()} : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -89,7 +89,7 @@ const n4: number | undefined = a?.m?.({x: absorb()}); // likewise >absorb() : number > : ^^^^^^ >absorb : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // Also a test showing `!` vs `?` for good measure let t1 = a?.m?.({x: 12}); @@ -98,11 +98,11 @@ let t1 = a?.m?.({x: 12}); >a?.m?.({x: 12}) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >a?.m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >{x: 12} : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -118,15 +118,15 @@ t1 = a!.m!({x: 12}); >a!.m!({x: 12}) : number > : ^^^^^^ >a!.m! : (obj: { x: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a!.m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >a! : { m?(obj: { x: T; }): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a : { m?(obj: { x: T; }): T; } | undefined -> : ^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ >m : ((obj: { x: T; }) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >{x: 12} : { x: number; } > : ^^^^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/callChain.types b/tests/baselines/reference/callChain.types index 4014673ba5828..64c161567f990 100644 --- a/tests/baselines/reference/callChain.types +++ b/tests/baselines/reference/callChain.types @@ -431,7 +431,7 @@ o3["b"]?.(1, ...[2, 3], 4).c; declare const o4: undefined | ((f: (a: T) => T) => T); >o4 : ((f: (a: T) => T) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >f : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -449,7 +449,7 @@ const v: number | undefined = o4?.(incr); >o4?.(incr) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >o4 : ((f: (a: T) => T) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >incr : (x: number) => number > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/callChainInference.types b/tests/baselines/reference/callChainInference.types index 9e7c94a123bce..a54a5f807fda4 100644 --- a/tests/baselines/reference/callChainInference.types +++ b/tests/baselines/reference/callChainInference.types @@ -6,7 +6,7 @@ interface Y { foo(this: T, arg: keyof T): void; >foo : (this: T, arg: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >this : T > : ^ >arg : keyof T @@ -33,11 +33,11 @@ if (value) { >value?.foo("a") : void > : ^^^^ >value?.foo : (this: T, arg: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >value : Y > : ^ >foo : (this: T, arg: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >"a" : "a" > : ^^^ } @@ -46,11 +46,11 @@ value?.foo("a"); >value?.foo("a") : void | undefined > : ^^^^^^^^^^^^^^^^ >value?.foo : ((this: T, arg: keyof T) => void) | undefined -> : ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >value : Y | undefined > : ^^^^^^^^^^^^^ >foo : ((this: T, arg: keyof T) => void) | undefined -> : ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >"a" : "a" > : ^^^ diff --git a/tests/baselines/reference/callGenericFunctionWithIncorrectNumberOfTypeArguments.types b/tests/baselines/reference/callGenericFunctionWithIncorrectNumberOfTypeArguments.types index d142977e5f21c..ba1c33ae506aa 100644 --- a/tests/baselines/reference/callGenericFunctionWithIncorrectNumberOfTypeArguments.types +++ b/tests/baselines/reference/callGenericFunctionWithIncorrectNumberOfTypeArguments.types @@ -6,7 +6,7 @@ function f(x: T, y: U): T { return null; } >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -18,7 +18,7 @@ var r1 = f(1, ''); >f(1, '') : number > : ^^^^^^ >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -30,7 +30,7 @@ var r1b = f(1, ''); >f(1, '') : number > : ^^^^^^ >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -38,9 +38,9 @@ var r1b = f(1, ''); var f2 = (x: T, y: U): T => { return null; } >f2 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(x: T, y: U): T => { return null; } : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -52,7 +52,7 @@ var r2 = f2(1, ''); >f2(1, '') : number > : ^^^^^^ >f2 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -64,7 +64,7 @@ var r2b = f2(1, ''); >f2(1, '') : number > : ^^^^^^ >f2 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -72,7 +72,7 @@ var r2b = f2(1, ''); var f3: { (x: T, y: U): T; } >f3 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -84,7 +84,7 @@ var r3 = f3(1, ''); >f3(1, '') : number > : ^^^^^^ >f3 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -96,7 +96,7 @@ var r3b = f3(1, ''); >f3(1, '') : number > : ^^^^^^ >f3 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -108,7 +108,7 @@ class C { f(x: T, y: U): T { >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -123,7 +123,7 @@ var r4 = (new C()).f(1, ''); >(new C()).f(1, '') : number > : ^^^^^^ >(new C()).f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(new C()) : C > : ^ >new C() : C @@ -131,7 +131,7 @@ var r4 = (new C()).f(1, ''); >C : typeof C > : ^^^^^^^^ >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -143,7 +143,7 @@ var r4b = (new C()).f(1, ''); >(new C()).f(1, '') : number > : ^^^^^^ >(new C()).f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(new C()) : C > : ^ >new C() : C @@ -151,7 +151,7 @@ var r4b = (new C()).f(1, ''); >C : typeof C > : ^^^^^^^^ >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -160,7 +160,7 @@ var r4b = (new C()).f(1, ''); interface I { f(x: T, y: U): T; >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -176,11 +176,11 @@ var r5 = i.f(1, ''); >i.f(1, '') : number > : ^^^^^^ >i.f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >i : I > : ^ >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -192,11 +192,11 @@ var r5b = i.f(1, ''); >i.f(1, '') : number > : ^^^^^^ >i.f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >i : I > : ^ >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -223,7 +223,7 @@ var r6 = (new C2()).f(1, ''); >(new C2()).f(1, '') : unknown > : ^^^^^^^ >(new C2()).f : (x: unknown, y: unknown) => unknown -> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >(new C2()) : C2 > : ^^^^^^^^^^^^^^^^^^^^ >new C2() : C2 @@ -231,7 +231,7 @@ var r6 = (new C2()).f(1, ''); >C2 : typeof C2 > : ^^^^^^^^^ >f : (x: unknown, y: unknown) => unknown -> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >1 : 1 > : ^ >'' : "" @@ -243,7 +243,7 @@ var r6b = (new C2()).f(1, ''); >(new C2()).f(1, '') : unknown > : ^^^^^^^ >(new C2()).f : (x: unknown, y: unknown) => unknown -> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >(new C2()) : C2 > : ^^^^^^^^^^^^^^^^^^^^ >new C2() : C2 @@ -251,7 +251,7 @@ var r6b = (new C2()).f(1, ''); >C2 : typeof C2 > : ^^^^^^^^^ >f : (x: unknown, y: unknown) => unknown -> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >1 : 1 > : ^ >'' : "" @@ -276,11 +276,11 @@ var r7 = i2.f(1, ''); >i2.f(1, '') : number > : ^^^^^^ >i2.f : (x: number, y: string) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >i2 : I2 > : ^^^^^^^^^^^^^^^^^^ >f : (x: number, y: string) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >1 : 1 > : ^ >'' : "" @@ -292,11 +292,11 @@ var r7b = i2.f(1, ''); >i2.f(1, '') : number > : ^^^^^^ >i2.f : (x: number, y: string) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >i2 : I2 > : ^^^^^^^^^^^^^^^^^^ >f : (x: number, y: string) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >1 : 1 > : ^ >'' : "" diff --git a/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types b/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types index 0b5ad395d1eee..1bb7106a5496f 100644 --- a/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types +++ b/tests/baselines/reference/callGenericFunctionWithZeroTypeArguments.types @@ -5,7 +5,7 @@ function f(x: T): T { return null; } >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -15,15 +15,15 @@ var r = f(1); >f(1) : 1 > : ^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ var f2 = (x: T): T => { return null; } >f2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T): T => { return null; } : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -33,13 +33,13 @@ var r2 = f2(1); >f2(1) : 1 > : ^ >f2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ var f3: { (x: T): T; } >f3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -49,7 +49,7 @@ var r3 = f3(1); >f3(1) : 1 > : ^ >f3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -59,7 +59,7 @@ class C { f(x: T): T { >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -72,7 +72,7 @@ var r4 = (new C()).f(1); >(new C()).f(1) : 1 > : ^ >(new C()).f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(new C()) : C > : ^ >new C() : C @@ -80,14 +80,14 @@ var r4 = (new C()).f(1); >C : typeof C > : ^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ interface I { f(x: T): T; >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -101,11 +101,11 @@ var r5 = i.f(1); >i.f(1) : 1 > : ^ >i.f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >i : I > : ^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -128,7 +128,7 @@ var r6 = (new C2()).f(1); >(new C2()).f(1) : unknown > : ^^^^^^^ >(new C2()).f : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >(new C2()) : C2 > : ^^^^^^^^^^^ >new C2() : C2 @@ -136,7 +136,7 @@ var r6 = (new C2()).f(1); >C2 : typeof C2 > : ^^^^^^^^^ >f : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >1 : 1 > : ^ @@ -157,11 +157,11 @@ var r7 = i2.f(1); >i2.f(1) : number > : ^^^^^^ >i2.f : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >i2 : I2 > : ^^^^^^^^^^ >f : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/callOfConditionalTypeWithConcreteBranches.types b/tests/baselines/reference/callOfConditionalTypeWithConcreteBranches.types index 18587d635d7c1..7382152fd4136 100644 --- a/tests/baselines/reference/callOfConditionalTypeWithConcreteBranches.types +++ b/tests/baselines/reference/callOfConditionalTypeWithConcreteBranches.types @@ -9,7 +9,7 @@ type Q = number extends T ? (n: number) => void : never; function fn(arg: Q) { >fn : (arg: Q) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : Q > : ^^^^ @@ -28,7 +28,7 @@ fn(m => m.toFixed()); >fn(m => m.toFixed()) : void > : ^^^^ >fn : (arg: Q) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >m => m.toFixed() : (m: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >m : number @@ -46,7 +46,7 @@ fn(m => m.toFixed()); >fn(m => m.toFixed()) : void > : ^^^^ >fn : (arg: Q) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >m => m.toFixed() : (m: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >m : number @@ -83,7 +83,7 @@ type Q2 = number extends T ? (cb: (n: number) => void) => void : never; function fn2(arg: Q2) { >fn2 : (arg: Q2) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : Q2 > : ^^^^^ @@ -115,7 +115,7 @@ fn2(m => m(42)); >fn2(m => m(42)) : void > : ^^^^ >fn2 : (arg: Q2) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >m => m(42) : (m: (n: number) => void) => void > : ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ >m : (n: number) => void @@ -131,7 +131,7 @@ fn2(m => m(42)); >fn2(m => m(42)) : void > : ^^^^ >fn2 : (arg: Q2) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >m => m(42) : (m: (n: number) => void) => void > : ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ >m : (n: number) => void diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance.types index d394718d766e3..6cd1c1a75ad3d 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance.types @@ -76,7 +76,7 @@ module MemberWithCallSignature { a3: (x: T) => void; >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -100,7 +100,7 @@ module MemberWithCallSignature { a3: (x: T) => string; // ok because base returns void >a3 : (x: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -115,7 +115,7 @@ module MemberWithCallSignature { a2: (x: T) => T; >a2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -135,7 +135,7 @@ module MemberWithCallSignature { // N's a2: (x: T) => string; // error because base returns non-void; >a2 : (x: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types index 5cab809505661..38e2d57b1c27d 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types @@ -176,7 +176,7 @@ interface A { // T }; a16: { >a16 : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (x: T): number[]; >x : T @@ -242,25 +242,25 @@ interface I extends A { // N's a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2: (x: T) => string[]; // ok >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; // ok since Base returns void >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -268,7 +268,7 @@ interface I extends A { a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -276,7 +276,7 @@ interface I extends A { a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -284,7 +284,7 @@ interface I extends A { a7: (x: (arg: T) => U) => (r: T) => U; // ok >a7 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -294,7 +294,7 @@ interface I extends A { a8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok >a8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -308,7 +308,7 @@ interface I extends A { a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal >a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -326,13 +326,13 @@ interface I extends A { a10: (...x: T[]) => T; // ok >a10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a11: (x: T, y: T) => T; // ok >a11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -340,7 +340,7 @@ interface I extends A { a12: >(x: Array, y: T) => Array; // ok, less specific parameter type >a12 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -348,7 +348,7 @@ interface I extends A { a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds >a13 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -356,7 +356,7 @@ interface I extends A { a14: (x: { a: T; b: U }) => T; // ok >a14 : (x: { a: T; b: U; }) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { a: T; b: U; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -366,19 +366,19 @@ interface I extends A { a15: (x: T) => T[]; // ok >a15 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a16: (x: T) => number[]; // ok >a16 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ a17: (x: (a: T) => T) => T[]; // ok >a17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -386,7 +386,7 @@ interface I extends A { a18: (x: (a: T) => T) => T[]; // ok, no inferences for T but assignable to any >a18 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types index d9e5f51e0da9d..9f97a82aa7d74 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types @@ -160,7 +160,7 @@ module Errors { (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -173,7 +173,7 @@ module Errors { }): any[]; (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -190,7 +190,7 @@ module Errors { interface I extends A { a2: (x: T) => U[]; // error, contextual signature instantiation doesn't relate return types so U is {}, not a subtype of string[] >a2 : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -207,7 +207,7 @@ module Errors { // valid, no inferences for V so it defaults to Derived2 a7: (x: (arg: T) => U) => (r: T) => V; >a7 : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -219,7 +219,7 @@ module Errors { interface I4 extends A { a8: (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch >a8 : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -237,7 +237,7 @@ module Errors { interface I4B extends A { a10: (...x: T[]) => T; // valid, parameter covariance works even after contextual signature instantiation >a10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ } @@ -245,7 +245,7 @@ module Errors { interface I4C extends A { a11: (x: T, y: T) => T; // valid, even though x is a Base, parameter covariance works even after contextual signature instantiation >a11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -255,7 +255,7 @@ module Errors { interface I4E extends A { a12: >(x: Array, y: Array) => T; // valid, no inferences for T, defaults to Array >a12 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -265,7 +265,7 @@ module Errors { interface I6 extends A { a15: (x: { a: T; b: T }) => T; // error, T is {} which isn't an acceptable return type >a15 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -277,7 +277,7 @@ module Errors { interface I7 extends A { a15: (x: { a: T; b: T }) => number; // error, T defaults to Base, which is not compatible with number or string >a15 : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -290,7 +290,7 @@ module Errors { // ok, we relate each signature of a16 to b16, and within that, we make inferences from two different signatures in the respective A.a16 signature a16: (x: (a: T) => T) => T[]; >a16 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -300,7 +300,7 @@ module Errors { interface I9 extends A { a17: (x: (a: T) => T) => any[]; // valid, target is more constrained than source, so it is safe in the traditional constraint-contravariant fashion >a17 : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -313,7 +313,7 @@ module Errors { interface B { a2: (x: T) => T[]; >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -321,7 +321,7 @@ module Errors { interface I6 extends B { a2: (x: T) => string[]; // error >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -330,7 +330,7 @@ module Errors { interface C { a2: (x: T) => string[]; >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -338,7 +338,7 @@ module Errors { interface I7 extends C { a2: (x: T) => T[]; // error >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types index ee018820fe0a0..e8a21bde98034 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types @@ -37,25 +37,25 @@ interface A { // T // M's a: (x: T) => T[]; >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2: (x: T) => string[]; >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3: (x: T) => void; >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y: U) => string; >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -63,7 +63,7 @@ interface A { // T a5: (x: (arg: T) => U) => T; >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -71,7 +71,7 @@ interface A { // T a6: (x: (arg: T) => Derived) => T; >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -79,7 +79,7 @@ interface A { // T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -93,7 +93,7 @@ interface A { // T a15: (x: { a: T; b: T }) => T[]; >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -103,7 +103,7 @@ interface A { // T a16: (x: { a: T; b: T }) => T[]; >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -113,7 +113,7 @@ interface A { // T a17: { >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (x: (a: T) => T): T[]; >x : (a: T) => T @@ -134,7 +134,7 @@ interface A { // T (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -147,7 +147,7 @@ interface A { // T }): any[]; (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -166,25 +166,25 @@ interface I extends A { // N's a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2: (x: T) => string[]; // ok >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; // ok since Base returns void >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y: U) => string; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -192,7 +192,7 @@ interface I extends A { a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -200,7 +200,7 @@ interface I extends A { a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -208,7 +208,7 @@ interface I extends A { a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok >a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -222,7 +222,7 @@ interface I extends A { a15: (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V >a15 : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { a: U; b: V; } > : ^^^^^ ^^^^^ ^^^ >a : U @@ -232,7 +232,7 @@ interface I extends A { a16: (x: { a: T; b: T }) => T[]; // ok, more general parameter type >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -242,7 +242,7 @@ interface I extends A { a17: (x: (a: T) => T) => T[]; // ok >a17 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -252,7 +252,7 @@ interface I extends A { >a18 : (x: (a: T) => T) => any[] > : ^ ^^ ^^^^^ >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ } diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types index c301643b663c1..0df617ee71c59 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types @@ -166,7 +166,7 @@ interface A { // T interface B extends A { a: (x: T) => T[]; >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -176,25 +176,25 @@ interface I extends B { // N's a: (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2: (x: T) => string[]; // ok >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; // ok since Base returns void >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -202,7 +202,7 @@ interface I extends B { a5: (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -210,7 +210,7 @@ interface I extends B { a6: (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -218,7 +218,7 @@ interface I extends B { a7: (x: (arg: T) => U) => (r: T) => U; // ok >a7 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -228,7 +228,7 @@ interface I extends B { a8: (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok >a8 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -242,7 +242,7 @@ interface I extends B { a9: (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal >a9 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -260,13 +260,13 @@ interface I extends B { a10: (...x: T[]) => T; // ok >a10 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a11: (x: T, y: T) => T; // ok >a11 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -274,7 +274,7 @@ interface I extends B { a12: >(x: Array, y: T) => Array; // ok, less specific parameter type >a12 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -282,7 +282,7 @@ interface I extends B { a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds >a13 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -290,7 +290,7 @@ interface I extends B { a14: (x: { a: T; b: U }) => T; // ok >a14 : (x: { a: T; b: U; }) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { a: T; b: U; } > : ^^^^^ ^^^^^ ^^^ >a : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types index aad5979b75398..2dc9a3c886646 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types @@ -39,25 +39,25 @@ interface A { // T // M's a: (x: T) => T[]; >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a2: (x: T) => string[]; >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a3: (x: T) => void; >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y: U) => string; >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -65,7 +65,7 @@ interface A { // T a5: (x: (arg: T) => U) => T; >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -73,7 +73,7 @@ interface A { // T a6: (x: (arg: T) => Derived) => T; >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -81,7 +81,7 @@ interface A { // T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -95,7 +95,7 @@ interface A { // T a15: (x: { a: T; b: T }) => T[]; >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -105,7 +105,7 @@ interface A { // T a16: (x: { a: T; b: T }) => T[]; >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -142,7 +142,7 @@ interface I3 extends A { interface I4 extends A { a4: (x: T, y: U) => string; >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -152,7 +152,7 @@ interface I4 extends A { interface I5 extends A { a5: (x: (arg: T) => U) => T; >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -162,7 +162,7 @@ interface I5 extends A { interface I7 extends A { a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; >a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T diff --git a/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types b/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types index 724f995738871..01514a2af2c96 100644 --- a/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types +++ b/tests/baselines/reference/callSignatureWithoutReturnTypeAnnotationInference.types @@ -65,7 +65,7 @@ var r3 = foo3(); function foo4(x: T) { >foo4 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -79,7 +79,7 @@ var r4 = foo4(1); >foo4(1) : 1 > : ^ >foo4 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types index 3f9366baf4366..3bdf4f651cf66 100644 --- a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types +++ b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType.types @@ -54,7 +54,7 @@ var a: { var a2: { >a2 : { (x: T): number; (x: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: T): number; >x : T diff --git a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType2.types b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType2.types index 3dc65a28feda9..98abb33d6426d 100644 --- a/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType2.types +++ b/tests/baselines/reference/callSignaturesThatDifferOnlyByReturnType2.types @@ -25,11 +25,11 @@ var r = x.foo(1); // no error >x.foo(1) : number > : ^^^^^^ >x.foo : (x: number) => number -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : A > : ^ >foo : (x: number) => number -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >1 : 1 > : ^ @@ -39,11 +39,11 @@ var r2 = x.foo(''); // error >x.foo('') : number > : ^^^^^^ >x.foo : (x: number) => number -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >x : A > : ^ >foo : (x: number) => number -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >'' : "" > : ^^ diff --git a/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.types b/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.types index a89280e14d914..fd9875024280a 100644 --- a/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.types +++ b/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.types @@ -45,9 +45,9 @@ var f3 = (x, private y) => { } var f4 = (public x: T, y: T) => { } >f4 : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(public x: T, y: T) => { } : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T @@ -95,9 +95,9 @@ var f7 = (private x: string, public y: number) => { } var f8 = (private x: T, public y: T) => { } >f8 : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(private x: T, public y: T) => { } : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T @@ -125,7 +125,7 @@ class C { foo3(public x: T, private y: T) { } >foo3 : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T @@ -163,7 +163,7 @@ interface I { foo3(x: T, private y: T); >foo3 : (x: T, y: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ >y : T @@ -194,9 +194,9 @@ var a: { var b = { >b : { foo(x: any, y: any): void; a: (x: number, y: string) => void; b: (x: T, y: T) => void; } -> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >{ foo(public x, y) { }, a: function foo(x: number, private y: string) { }, b: (public x: T, private y: T) => { }} : { foo(x: any, y: any): void; a: (x: number, y: string) => void; b: (x: T, y: T) => void; } -> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ foo(public x, y) { }, >foo : (x: any, y: any) => void @@ -220,9 +220,9 @@ var b = { b: (public x: T, private y: T) => { } >b : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(public x: T, private y: T) => { } : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/callSignaturesWithDuplicateParameters.types b/tests/baselines/reference/callSignaturesWithDuplicateParameters.types index ca1bfdc494602..f9c0febc3f5e6 100644 --- a/tests/baselines/reference/callSignaturesWithDuplicateParameters.types +++ b/tests/baselines/reference/callSignaturesWithDuplicateParameters.types @@ -45,9 +45,9 @@ var f3 = (x, x) => { } var f4 = (x: T, x: T) => { } >f4 : (x: T, x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: T, x: T) => { } : (x: T, x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >x : T @@ -95,9 +95,9 @@ var f7 = (x: string, x: number) => { } var f8 = (x: T, y: T) => { } >f8 : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: T, y: T) => { } : (x: T, y: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T @@ -125,7 +125,7 @@ class C { foo3(x: T, x: T) { } >foo3 : (x: T, x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >x : T @@ -163,7 +163,7 @@ interface I { foo3(x: T, x: T); >foo3 : (x: T, x: T) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ >x : T @@ -194,9 +194,9 @@ var a: { var b = { >b : { foo(x: any, x: any): void; a: (x: number, x: string) => void; b: (x: T, x: T) => void; } -> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >{ foo(x, x) { }, a: function foo(x: number, x: string) { }, b: (x: T, x: T) => { }} : { foo(x: any, x: any): void; a: (x: number, x: string) => void; b: (x: T, x: T) => void; } -> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ foo(x, x) { }, >foo : (x: any, x: any) => void @@ -220,9 +220,9 @@ var b = { b: (x: T, x: T) => { } >b : (x: T, x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: T, x: T) => { } : (x: T, x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/callWithMissingVoid.types b/tests/baselines/reference/callWithMissingVoid.types index a506760c192a2..641b416217f21 100644 --- a/tests/baselines/reference/callWithMissingVoid.types +++ b/tests/baselines/reference/callWithMissingVoid.types @@ -360,7 +360,7 @@ c(); // ok declare function call( >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ handler: (...args: TS) => unknown, >handler : (...args: TS) => unknown @@ -376,7 +376,7 @@ call((x: number, y: number) => x + y) // error >call((x: number, y: number) => x + y) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -394,7 +394,7 @@ call((x: number, y: number) => x + y, 4, 2) // ok >call((x: number, y: number) => x + y, 4, 2) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -416,7 +416,7 @@ call((x: number, y: void) => x, 4, void 0) // ok >call((x: number, y: void) => x, 4, void 0) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: void) => x : (x: number, y: void) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -436,7 +436,7 @@ call((x: number, y: void) => x, 4) // ok >call((x: number, y: void) => x, 4) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: void) => x : (x: number, y: void) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -452,7 +452,7 @@ call((x: void, y: void) => 42) // ok >call((x: void, y: void) => 42) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: void, y: void) => 42 : (x: void, y: void) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : void @@ -466,7 +466,7 @@ call((x: number | void, y: number | void) => 42) // ok >call((x: number | void, y: number | void) => 42) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number | void, y: number | void) => 42 : (x: number | void, y: number | void) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number | void @@ -480,7 +480,7 @@ call((x: number | void, y: number | void) => 42, 4) // ok >call((x: number | void, y: number | void) => 42, 4) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number | void, y: number | void) => 42 : (x: number | void, y: number | void) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number | void @@ -496,7 +496,7 @@ call((x: number | void, y: number | void) => 42, 4, 2) // ok >call((x: number | void, y: number | void) => 42, 4, 2) : void > : ^^^^ >call : (handler: (...args: TS) => unknown, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number | void, y: number | void) => 42 : (x: number | void, y: number | void) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number | void diff --git a/tests/baselines/reference/callbackTagNamespace.types b/tests/baselines/reference/callbackTagNamespace.types index cde356b407a60..f01a871379916 100644 --- a/tests/baselines/reference/callbackTagNamespace.types +++ b/tests/baselines/reference/callbackTagNamespace.types @@ -16,7 +16,7 @@ var x = 1; /** @type {NS.Nested.Inner} */ function f(space, peace) { >f : (space: any, peace: any) => string | number -> : ^ ^^^^^^^ ^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ >space : any >peace : any diff --git a/tests/baselines/reference/callbacksDontShareTypes.types b/tests/baselines/reference/callbacksDontShareTypes.types index be80668f9e26b..4c3db8e877765 100644 --- a/tests/baselines/reference/callbacksDontShareTypes.types +++ b/tests/baselines/reference/callbacksDontShareTypes.types @@ -21,7 +21,7 @@ interface Collection { interface Combinators { map(c: Collection, f: (x: T) => U): Collection; >map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T_1) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c : Collection > : ^^^^^^^^^^^^^ >f : (x: T) => U @@ -31,7 +31,7 @@ interface Combinators { map(c: Collection, f: (x: T) => any): Collection; >map : { (c: Collection, f: (x: T_1) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c : Collection > : ^^^^^^^^^^^^^ >f : (x: T) => any @@ -70,11 +70,11 @@ var r1a = _.map(c2, (x) => { return x.toFixed() }); >_.map(c2, (x) => { return x.toFixed() }) : Collection > : ^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^ >(x) => { return x.toFixed() } : (x: number) => string @@ -96,11 +96,11 @@ var r1b = _.map(c2, rf1); // this line should not cause the following 2 to have >_.map(c2, rf1) : Collection > : ^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^ >rf1 : (x: number) => string @@ -112,11 +112,11 @@ var r5a = _.map(c2, (x) => { return x.toFixed() }); >_.map(c2, (x) => { return x.toFixed() }) : Collection > : ^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^ >(x) => { return x.toFixed() } : (x: number) => string @@ -138,11 +138,11 @@ var r5b = _.map(c2, rf1); >_.map(c2, rf1) : Collection > : ^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^ >rf1 : (x: number) => string diff --git a/tests/baselines/reference/callsOnComplexSignatures.types b/tests/baselines/reference/callsOnComplexSignatures.types index a9a9805eb5554..13b8d87d4e287 100644 --- a/tests/baselines/reference/callsOnComplexSignatures.types +++ b/tests/baselines/reference/callsOnComplexSignatures.types @@ -28,7 +28,7 @@ function test1() { interface Temp1 { getValue(name: stringType1): number; >getValue : (name: "foo" | "bar") => number -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^ ^^^^^^^^^^ >name : "foo" | "bar" > : ^^^^^^^^^^^^^ } @@ -36,7 +36,7 @@ function test1() { interface Temp2 { getValue(name: stringType2): string; >getValue : (name: "bar" | "baz") => string -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^ ^^^^^^^^^^ >name : "bar" | "baz" > : ^^^^^^^^^^^^^ } @@ -53,11 +53,11 @@ function test1() { >t.getValue("bar") : string | number > : ^^^^^^^^^^^^^^^ >t.getValue : ((name: "foo" | "bar") => number) | ((name: "bar" | "baz") => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^ >t : Temp1 | Temp2 > : ^^^^^^^^^^^^^ >getValue : ((name: "foo" | "bar") => number) | ((name: "bar" | "baz") => string) -> : ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^ >"bar" : "bar" > : ^^^^^ } diff --git a/tests/baselines/reference/cannotIndexGenericWritingError.types b/tests/baselines/reference/cannotIndexGenericWritingError.types index a0d863bc409b3..cf7945a50c90e 100644 --- a/tests/baselines/reference/cannotIndexGenericWritingError.types +++ b/tests/baselines/reference/cannotIndexGenericWritingError.types @@ -5,7 +5,7 @@ function foo>(target: T, p: string | symbol) { >foo : >(target: T, p: string | symbol) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >target : T > : ^ >p : string | symbol @@ -26,7 +26,7 @@ function foo>(target: T, p: string | symb function foo2(target: T, p: string | number) { >foo2 : (target: T, p: string | number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s : string > : ^^^^^^ >target : T diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.types b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.types index 41543c86b2fce..f8f739b910368 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.types +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter.types @@ -11,7 +11,7 @@ class Chain { then(cb: (x: T) => S): Chain { >then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (x: T) => S > : ^ ^^ ^^^^^ >x : T diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types index b85a4c516c910..a09137a240608 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types @@ -11,7 +11,7 @@ class Chain { then(cb: (x: T) => S): Chain { >then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (x: T) => S > : ^ ^^ ^^^^^ >x : T @@ -34,7 +34,7 @@ class Chain { >(new Chain(t)).then(tt => s) : Chain > : ^^^^^^^^ >(new Chain(t)).then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain(t)) : Chain > : ^^^^^^^^ >new Chain(t) : Chain @@ -44,7 +44,7 @@ class Chain { >t : T > : ^ >then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => s : (tt: T) => S > : ^ ^^^^^^^^^ >tt : T @@ -88,15 +88,15 @@ class Chain { >(new Chain(t)).then(tt => t).then(tt => t).then(tt => t) : Chain > : ^^^^^^^^ >(new Chain(t)).then(tt => t).then(tt => t).then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain(t)).then(tt => t).then(tt => t) : Chain > : ^^^^^^^^ >(new Chain(t)).then(tt => t).then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain(t)).then(tt => t) : Chain > : ^^^^^^^^ >(new Chain(t)).then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain(t)) : Chain > : ^^^^^^^^ >new Chain(t) : Chain @@ -106,7 +106,7 @@ class Chain { >t : T > : ^ >then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => t : (tt: T) => T > : ^ ^^^^^^^^^ >tt : T @@ -114,7 +114,7 @@ class Chain { >t : T > : ^ >then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => t : (tt: T) => T > : ^ ^^^^^^^^^ >tt : T @@ -122,7 +122,7 @@ class Chain { >t : T > : ^ >then : (cb: (x: T) => S) => Chain -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => t : (tt: T) => T > : ^ ^^^^^^^^^ >tt : T @@ -196,7 +196,7 @@ class Chain2 { then(cb: (x: T) => S): Chain2 { >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (x: T) => S > : ^ ^^ ^^^^^ >x : T @@ -226,7 +226,7 @@ class Chain2 { >(new Chain2(i)).then(ii => t).then(tt => s) : Chain2 > : ^^^^^^^^^ >(new Chain2(i)).then(ii => t).then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain2(i)).then(ii => t) : Chain2 > : ^^^^^^^^^ >(new Chain2(i)).then : (cb: (x: I) => S) => Chain2 @@ -248,7 +248,7 @@ class Chain2 { >t : T > : ^ >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => s : (tt: T) => S > : ^ ^^^^^^^^^ >tt : T @@ -274,15 +274,15 @@ class Chain2 { >(new Chain2(i)).then(ii => t).then(tt => t).then(tt => t).then(tt => t) : Chain2 > : ^^^^^^^^^ >(new Chain2(i)).then(ii => t).then(tt => t).then(tt => t).then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain2(i)).then(ii => t).then(tt => t).then(tt => t) : Chain2 > : ^^^^^^^^^ >(new Chain2(i)).then(ii => t).then(tt => t).then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain2(i)).then(ii => t).then(tt => t) : Chain2 > : ^^^^^^^^^ >(new Chain2(i)).then(ii => t).then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(new Chain2(i)).then(ii => t) : Chain2 > : ^^^^^^^^^ >(new Chain2(i)).then : (cb: (x: I) => S) => Chain2 @@ -304,7 +304,7 @@ class Chain2 { >t : T > : ^ >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => t : (tt: T) => T > : ^ ^^^^^^^^^ >tt : T @@ -312,7 +312,7 @@ class Chain2 { >t : T > : ^ >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => t : (tt: T) => T > : ^ ^^^^^^^^^ >tt : T @@ -320,7 +320,7 @@ class Chain2 { >t : T > : ^ >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >tt => t : (tt: T) => T > : ^ ^^^^^^^^^ >tt : T diff --git a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types index 44710e9cd9c45..3e9a58be32b88 100644 --- a/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types +++ b/tests/baselines/reference/chainedSpecializationToObjectTypeLiteral.types @@ -12,7 +12,7 @@ interface Sequence { map(iterator: (value: T) => U): Sequence; >map : (iterator: (value: T) => U) => Sequence -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >iterator : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -28,7 +28,7 @@ interface Sequence { groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: T[]; }>; >groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: T[]; }> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >keySelector : (value: T) => K > : ^ ^^ ^^^^^ >value : T @@ -49,11 +49,11 @@ var s2 = s.groupBy(s => s.length); >s.groupBy(s => s.length) : Sequence<{ key: number; items: string[]; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >s.groupBy : (keySelector: (value: string) => K) => Sequence<{ key: K; items: string[]; }> -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^ >s : Sequence > : ^^^^^^^^^^^^^^^^ >groupBy : (keySelector: (value: string) => K) => Sequence<{ key: K; items: string[]; }> -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string diff --git a/tests/baselines/reference/checkExportsObjectAssignProperty.types b/tests/baselines/reference/checkExportsObjectAssignProperty.types index 36a76a895f16d..7c6d670650022 100644 --- a/tests/baselines/reference/checkExportsObjectAssignProperty.types +++ b/tests/baselines/reference/checkExportsObjectAssignProperty.types @@ -292,11 +292,11 @@ Object.defineProperty(exports, "thing", { value: 42, writable: true }); >Object.defineProperty(exports, "thing", { value: 42, writable: true }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"thing" : "thing" @@ -316,11 +316,11 @@ Object.defineProperty(exports, "readonlyProp", { value: "Smith", writable: false >Object.defineProperty(exports, "readonlyProp", { value: "Smith", writable: false }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"readonlyProp" : "readonlyProp" @@ -340,11 +340,11 @@ Object.defineProperty(exports, "rwAccessors", { get() { return 98122 }, set(_) { >Object.defineProperty(exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"rwAccessors" : "rwAccessors" @@ -364,11 +364,11 @@ Object.defineProperty(exports, "readonlyAccessor", { get() { return 21.75 } }); >Object.defineProperty(exports, "readonlyAccessor", { get() { return 21.75 } }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"readonlyAccessor" : "readonlyAccessor" @@ -384,11 +384,11 @@ Object.defineProperty(exports, "setonlyAccessor", { >Object.defineProperty(exports, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"setonlyAccessor" : "setonlyAccessor" @@ -426,11 +426,11 @@ Object.defineProperty(module.exports, "thing", { value: "yes", writable: true }) >Object.defineProperty(module.exports, "thing", { value: "yes", writable: true }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -454,11 +454,11 @@ Object.defineProperty(module.exports, "readonlyProp", { value: "Smith", writable >Object.defineProperty(module.exports, "readonlyProp", { value: "Smith", writable: false }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -482,11 +482,11 @@ Object.defineProperty(module.exports, "rwAccessors", { get() { return 98122 }, s >Object.defineProperty(module.exports, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -510,11 +510,11 @@ Object.defineProperty(module.exports, "readonlyAccessor", { get() { return 21.75 >Object.defineProperty(module.exports, "readonlyAccessor", { get() { return 21.75 } }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -534,11 +534,11 @@ Object.defineProperty(module.exports, "setonlyAccessor", { >Object.defineProperty(module.exports, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } diff --git a/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types b/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types index fa8d497923586..a6223312e52ba 100644 --- a/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types +++ b/tests/baselines/reference/checkExportsObjectAssignPrototypeProperty.types @@ -212,11 +212,11 @@ Object.defineProperty(Person.prototype, "thing", { value: 42, writable: true }); >Object.defineProperty(Person.prototype, "thing", { value: 42, writable: true }) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Person.prototype : any > : ^^^ >Person : typeof Person @@ -240,11 +240,11 @@ Object.defineProperty(Person.prototype, "readonlyProp", { value: "Smith", writab >Object.defineProperty(Person.prototype, "readonlyProp", { value: "Smith", writable: false }) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Person.prototype : any > : ^^^ >Person : typeof Person @@ -268,11 +268,11 @@ Object.defineProperty(Person.prototype, "rwAccessors", { get() { return 98122 }, >Object.defineProperty(Person.prototype, "rwAccessors", { get() { return 98122 }, set(_) { /*ignore*/ } }) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Person.prototype : any > : ^^^ >Person : typeof Person @@ -296,11 +296,11 @@ Object.defineProperty(Person.prototype, "readonlyAccessor", { get() { return 21. >Object.defineProperty(Person.prototype, "readonlyAccessor", { get() { return 21.75 } }) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Person.prototype : any > : ^^^ >Person : typeof Person @@ -320,11 +320,11 @@ Object.defineProperty(Person.prototype, "setonlyAccessor", { >Object.defineProperty(Person.prototype, "setonlyAccessor", { /** @param {string} str */ set(str) { this.rwAccessors = Number(str) }}) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Person.prototype : any > : ^^^ >Person : typeof Person diff --git a/tests/baselines/reference/checkInfiniteExpansionTermination2.types b/tests/baselines/reference/checkInfiniteExpansionTermination2.types index 93bd45bdda870..25d9f3985369b 100644 --- a/tests/baselines/reference/checkInfiniteExpansionTermination2.types +++ b/tests/baselines/reference/checkInfiniteExpansionTermination2.types @@ -13,13 +13,13 @@ interface ISubject extends IObservable { } declare function combineLatest(x: IObservable[]): void; >combineLatest : { (x: IObservable[]): void; (): void; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^^ >x : IObservable[] > : ^^^^^^^^^^^^^^^^^^^^^ declare function combineLatest(): void; >combineLatest : { (x: IObservable[]): void; (): void; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^^ function fn() { >fn : () => void @@ -36,7 +36,7 @@ function fn() { >combineLatest(values) : void > : ^^^^ >combineLatest : { (x: IObservable[]): void; (): void; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^^ >values : ISubject[] > : ^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types b/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types index c3c8da5da80fa..6b214de5065c0 100644 --- a/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types +++ b/tests/baselines/reference/checkJsdocParamOnVariableDeclaredFunctionExpression.types @@ -8,11 +8,11 @@ */ var x = function foo(n, s) {} >x : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ >function foo(n, s) {} : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ >foo : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ >n : number > : ^^^^^^ >s : string diff --git a/tests/baselines/reference/checkJsdocParamTag1.types b/tests/baselines/reference/checkJsdocParamTag1.types index fb07b5441edee..22ca3c84b722f 100644 --- a/tests/baselines/reference/checkJsdocParamTag1.types +++ b/tests/baselines/reference/checkJsdocParamTag1.types @@ -8,7 +8,7 @@ */ function foo(n, s) {} >foo : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ >n : number > : ^^^^^^ >s : string @@ -18,13 +18,13 @@ foo(); >foo() : void > : ^^^^ >foo : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ foo(1); >foo(1) : void > : ^^^^ >foo : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ >1 : 1 > : ^ @@ -32,7 +32,7 @@ foo(1, "hi"); >foo(1, "hi") : void > : ^^^^ >foo : (n?: number | undefined, s?: string) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^ >1 : 1 > : ^ >"hi" : "hi" diff --git a/tests/baselines/reference/checkJsdocReturnTag1.types b/tests/baselines/reference/checkJsdocReturnTag1.types index b62b692393e32..86d982813fbd9 100644 --- a/tests/baselines/reference/checkJsdocReturnTag1.types +++ b/tests/baselines/reference/checkJsdocReturnTag1.types @@ -19,7 +19,7 @@ function f() { */ function f1() { >f1 : () => string | undefined -> : ^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^ return "hello world"; >"hello world" : "hello world" diff --git a/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty1.types b/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty1.types index 216528a3812e0..f1f21010c71e7 100644 --- a/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty1.types +++ b/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty1.types @@ -10,9 +10,9 @@ var lol = "hello Lol" const obj = { >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >{ /** @type {string|undefined} */ foo: undefined, /** @type {string|undefined} */ bar: "42", /** @type {function(number): number} */ method1(n1) { return n1 + 42; }, /** @type {string} */ lol, /** @type {number} */ ['b' + 'ar1']: 42, /** @type {function(number): number} */ arrowFunc: (num) => num + 42} : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ /** @type {string|undefined} */ foo: undefined, @@ -83,7 +83,7 @@ obj.foo = 'string' >obj.foo : string | undefined > : ^^^^^^^^^^^^^^^^^^ >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >foo : string | undefined > : ^^^^^^^^^^^^^^^^^^ >'string' : "string" @@ -93,7 +93,7 @@ obj.lol >obj.lol : string > : ^^^^^^ >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >lol : string > : ^^^^^^ @@ -103,7 +103,7 @@ obj.bar = undefined; >obj.bar : string | undefined > : ^^^^^^^^^^^^^^^^^^ >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >bar : string | undefined > : ^^^^^^^^^^^^^^^^^^ >undefined : undefined @@ -117,7 +117,7 @@ var k = obj.method1(0); >obj.method1 : (arg0: number) => number > : ^^^^^^^ ^^^^^ >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >method1 : (arg0: number) => number > : ^^^^^^^ ^^^^^ >0 : 0 @@ -129,7 +129,7 @@ obj.bar1 = "42"; >obj.bar1 : string | number | ((arg0: number) => number) | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >bar1 : string | number | ((arg0: number) => number) | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ >"42" : "42" @@ -141,7 +141,7 @@ obj.arrowFunc(0); >obj.arrowFunc : (arg0: number) => number > : ^^^^^^^ ^^^^^ >obj : { [x: string]: string | number | ((arg0: number) => number) | undefined; foo: string | undefined; bar: string | undefined; method1(arg0: number): number; lol: string; arrowFunc: (arg0: number) => number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^ >arrowFunc : (arg0: number) => number > : ^^^^^^^ ^^^^^ >0 : 0 diff --git a/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.types b/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.types index 90ebe6d883112..6d1f1a0caefeb 100644 --- a/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.types +++ b/tests/baselines/reference/checkJsdocTypeTagOnObjectProperty2.types @@ -8,9 +8,9 @@ var lol; const obj = { >obj : { bar: string | undefined; method1(arg0: number): number; method2: (arg0: number) => number; arrowFunc: (arg0: number) => number; lol: string; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^ >{ /** @type {string|undefined} */ bar: 42, /** @type {function(number): number} */ method1(n1) { return "42"; }, /** @type {function(number): number} */ method2: (n1) => "lol", /** @type {function(number): number} */ arrowFunc: (num="0") => num + 42, /** @type {string} */ lol} : { bar: string | undefined; method1(arg0: number): number; method2: (arg0: number) => number; arrowFunc: (arg0: number) => number; lol: string; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^ /** @type {string|undefined} */ bar: 42, @@ -81,7 +81,7 @@ var s = obj.method1(0); >obj.method1 : (arg0: number) => number > : ^^^^^^^ ^^^^^ >obj : { bar: string | undefined; method1(arg0: number): number; method2: (arg0: number) => number; arrowFunc: (arg0: number) => number; lol: string; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^ >method1 : (arg0: number) => number > : ^^^^^^^ ^^^^^ >0 : 0 @@ -96,7 +96,7 @@ var s1 = obj.method2("0"); >obj.method2 : (arg0: number) => number > : ^^^^^^^ ^^^^^ >obj : { bar: string | undefined; method1(arg0: number): number; method2: (arg0: number) => number; arrowFunc: (arg0: number) => number; lol: string; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^ >method2 : (arg0: number) => number > : ^^^^^^^ ^^^^^ >"0" : "0" diff --git a/tests/baselines/reference/checkObjectDefineProperty.types b/tests/baselines/reference/checkObjectDefineProperty.types index aa7af57c042a1..b5a16d713bb6e 100644 --- a/tests/baselines/reference/checkObjectDefineProperty.types +++ b/tests/baselines/reference/checkObjectDefineProperty.types @@ -149,11 +149,11 @@ Object.defineProperty(x, "name", { value: "Charles", writable: true }); >Object.defineProperty(x, "name", { value: "Charles", writable: true }) : typeof x > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : typeof x > : ^^^^^^^^ >"name" : "name" @@ -173,11 +173,11 @@ Object.defineProperty(x, "middleInit", { value: "H" }); >Object.defineProperty(x, "middleInit", { value: "H" }) : typeof x > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : typeof x > : ^^^^^^^^ >"middleInit" : "middleInit" @@ -193,11 +193,11 @@ Object.defineProperty(x, "lastName", { value: "Smith", writable: false }); >Object.defineProperty(x, "lastName", { value: "Smith", writable: false }) : typeof x > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : typeof x > : ^^^^^^^^ >"lastName" : "lastName" @@ -217,11 +217,11 @@ Object.defineProperty(x, "zip", { get() { return 98122 }, set(_) { /*ignore*/ } >Object.defineProperty(x, "zip", { get() { return 98122 }, set(_) { /*ignore*/ } }) : typeof x > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : typeof x > : ^^^^^^^^ >"zip" : "zip" @@ -241,11 +241,11 @@ Object.defineProperty(x, "houseNumber", { get() { return 21.75 } }); >Object.defineProperty(x, "houseNumber", { get() { return 21.75 } }) : typeof x > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : typeof x > : ^^^^^^^^ >"houseNumber" : "houseNumber" @@ -261,11 +261,11 @@ Object.defineProperty(x, "zipStr", { >Object.defineProperty(x, "zipStr", { /** @param {string} str */ set(str) { this.zip = Number(str) }}) : typeof x > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : typeof x > : ^^^^^^^^ >"zipStr" : "zipStr" diff --git a/tests/baselines/reference/checkOtherObjectAssignProperty.types b/tests/baselines/reference/checkOtherObjectAssignProperty.types index 4e818ff29d8df..c852fd75beb2a 100644 --- a/tests/baselines/reference/checkOtherObjectAssignProperty.types +++ b/tests/baselines/reference/checkOtherObjectAssignProperty.types @@ -151,11 +151,11 @@ Object.defineProperty(exports, "thing", obj); >Object.defineProperty(exports, "thing", obj) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"thing" : "thing" @@ -178,11 +178,11 @@ Object.defineProperty(exports, str, { value: 42, writable: true }); >Object.defineProperty(exports, str, { value: 42, writable: true }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >str : string @@ -208,11 +208,11 @@ Object.defineProperty(exports, propName, { value: 42, writable: true }); >Object.defineProperty(exports, propName, { value: 42, writable: true }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >propName : "prop" @@ -233,11 +233,11 @@ Object.defineProperty(exports, "bad1", { }); >Object.defineProperty(exports, "bad1", { }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"bad1" : "bad1" @@ -249,11 +249,11 @@ Object.defineProperty(exports, "bad2", { get() { return 12 }, value: "no" }); >Object.defineProperty(exports, "bad2", { get() { return 12 }, value: "no" }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"bad2" : "bad2" @@ -273,11 +273,11 @@ Object.defineProperty(exports, "bad3", { writable: true }); >Object.defineProperty(exports, "bad3", { writable: true }) : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >exports : typeof import("mod1") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"bad3" : "bad3" diff --git a/tests/baselines/reference/checkerInitializationCrash.types b/tests/baselines/reference/checkerInitializationCrash.types index 62a2daf6d9906..9c8811beb2d6e 100644 --- a/tests/baselines/reference/checkerInitializationCrash.types +++ b/tests/baselines/reference/checkerInitializationCrash.types @@ -69,7 +69,7 @@ declare namespace React { function useMemo(factory: () => T, deps: undefined): T; >useMemo : (factory: () => T, deps: undefined) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >factory : () => T > : ^^^^^^ >deps : undefined diff --git a/tests/baselines/reference/circularContextualMappedType.types b/tests/baselines/reference/circularContextualMappedType.types index 6fff8e2366a4b..a2ca3e09fa3e4 100644 --- a/tests/baselines/reference/circularContextualMappedType.types +++ b/tests/baselines/reference/circularContextualMappedType.types @@ -11,13 +11,13 @@ type Mapped = { [K in keyof T]: Func }; declare function reproduce(options: number): void; >reproduce : { (options: number): void; (options: Mapped): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >options : number > : ^^^^^^ declare function reproduce(options: Mapped): T >reproduce : { (options: number): void; (options: Mapped): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >options : Mapped > : ^^^^^^^^^ @@ -25,7 +25,7 @@ reproduce({ >reproduce({ name: () => { return 123 }}) : { name: number; } > : ^^^^^^^^^^^^^^^^^ >reproduce : { (options: number): void; (options: Mapped): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ name: () => { return 123 }} : { name: () => number; } > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -43,7 +43,7 @@ reproduce({ >reproduce({ name() { return 123 }}) : { name: number; } > : ^^^^^^^^^^^^^^^^^ >reproduce : { (options: number): void; (options: Mapped): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ name() { return 123 }} : { name(): number; } > : ^^^^^^^^^^^^^^^^^^^ @@ -59,7 +59,7 @@ reproduce({ >reproduce({ name: function () { return 123 }}) : { name: number; } > : ^^^^^^^^^^^^^^^^^ >reproduce : { (options: number): void; (options: Mapped): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ name: function () { return 123 }} : { name: () => number; } > : ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/circularContextualReturnType.types b/tests/baselines/reference/circularContextualReturnType.types index e7e83538cd5a0..c955835a9b40d 100644 --- a/tests/baselines/reference/circularContextualReturnType.types +++ b/tests/baselines/reference/circularContextualReturnType.types @@ -7,11 +7,11 @@ Object.freeze({ >Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ foo() { return Object.freeze('a'); },} : { foo(): string; } > : ^^^^^^^^^^^^^^^^^^ @@ -23,11 +23,11 @@ Object.freeze({ >Object.freeze('a') : string > : ^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >'a' : "a" > : ^^^ diff --git a/tests/baselines/reference/circularInlineMappedGenericTupleTypeNoCrash.types b/tests/baselines/reference/circularInlineMappedGenericTupleTypeNoCrash.types index db665484b9108..8ac59cc6ff1d5 100644 --- a/tests/baselines/reference/circularInlineMappedGenericTupleTypeNoCrash.types +++ b/tests/baselines/reference/circularInlineMappedGenericTupleTypeNoCrash.types @@ -7,29 +7,29 @@ class Foo { public readonly elements: { [P in keyof Elements]: { bar: Elements[P] } }; >elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >bar : Elements[P] > : ^^^^^^^^^^^ public constructor( ...elements: { [P in keyof Elements]: { bar: Elements[P] } } >elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >bar : Elements[P] > : ^^^^^^^^^^^ ) { this.elements = elements; >this.elements = elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >this.elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >this : this > : ^^^^ >elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ } public add(): Foo<[...Elements, "abc"]> { @@ -44,11 +44,11 @@ class Foo { >...this.elements : { bar: unknown; } > : ^^^^^^^^^^^^^^^^^ >this.elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >this : this > : ^^^^ >elements : { [P in keyof Elements]: { bar: Elements[P]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >{ bar: "abc" } : { bar: string; } > : ^^^^^^^^^^^^^^^^ >bar : string diff --git a/tests/baselines/reference/circularInstantiationExpression.types b/tests/baselines/reference/circularInstantiationExpression.types index 9d171b86ba3cc..882f9bbe6a788 100644 --- a/tests/baselines/reference/circularInstantiationExpression.types +++ b/tests/baselines/reference/circularInstantiationExpression.types @@ -3,17 +3,17 @@ === circularInstantiationExpression.ts === declare function foo(t: T): typeof foo; >foo : (t: T) => typeof foo -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T > : ^ >foo : (t: T) => typeof foo -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ foo(""); >foo("") : (t: string) => typeof foo -> : ^ ^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo : (t: T) => typeof foo -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"" : "" > : ^^ diff --git a/tests/baselines/reference/circularMappedTypeConstraint.types b/tests/baselines/reference/circularMappedTypeConstraint.types index ef477756194d5..1571878d12626 100644 --- a/tests/baselines/reference/circularMappedTypeConstraint.types +++ b/tests/baselines/reference/circularMappedTypeConstraint.types @@ -5,7 +5,7 @@ declare function foo2]: V }, V extends string>(a: T): T; >foo2 : ]: V; }, V extends string>(a: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : T > : ^ @@ -15,7 +15,7 @@ export const r2 = foo2({A: "a"}); >foo2({A: "a"}) : { A: string; } > : ^^^^^^^^^^^^^^ >foo2 : ]: V; }, V extends string>(a: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{A: "a"} : { A: string; } > : ^^^^^^^^^^^^^^ >A : string diff --git a/tests/baselines/reference/circularReferenceInReturnType.types b/tests/baselines/reference/circularReferenceInReturnType.types index bcc174e7be663..ddd118043e28e 100644 --- a/tests/baselines/reference/circularReferenceInReturnType.types +++ b/tests/baselines/reference/circularReferenceInReturnType.types @@ -4,7 +4,7 @@ // inference fails for res1 and res2, but ideally should not declare function fn1(cb: () => T): string; >fn1 : (cb: () => T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : () => T > : ^^^^^^ @@ -14,7 +14,7 @@ const res1 = fn1(() => res1); >fn1(() => res1) : string > : ^^^^^^ >fn1 : (cb: () => T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => res1 : () => any > : ^^^^^^^^^ >res1 : any @@ -22,7 +22,7 @@ const res1 = fn1(() => res1); declare function fn2(): (cb: () => any) => (a: T) => void; >fn2 : () => (cb: () => any) => (a: T) => void -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >cb : () => any > : ^^^^^^ >a : T @@ -34,9 +34,9 @@ const res2 = fn2()(() => res2); >fn2()(() => res2) : (a: unknown) => void > : ^ ^^^^^^^^^^^^^^ >fn2() : (cb: () => any) => (a: unknown) => void -> : ^ ^^ ^^^^^ ^^^^^^^ +> : ^ ^^ ^^^^^ >fn2 : () => (cb: () => any) => (a: T) => void -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => res2 : () => (a: unknown) => void > : ^^^^^^^ ^^^^^^^^^^^^^^ >res2 : (a: unknown) => void @@ -44,7 +44,7 @@ const res2 = fn2()(() => res2); declare function fn3(): (cb: (arg: T2) => any) => (a: T) => void; >fn3 : () => (cb: (arg: T2) => any) => (a: T) => void -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >cb : (arg: T2) => any > : ^ ^^ ^^^^^ >arg : T2 @@ -58,9 +58,9 @@ const res3 = fn3()(() => res3); >fn3()(() => res3) : (a: unknown) => void > : ^ ^^^^^^^^^^^^^^ >fn3() : (cb: (arg: T2) => any) => (a: unknown) => void -> : ^^^^^ ^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^ +> : ^^^^^ ^^^ ^^^^^^^^^ ^^^^^ >fn3 : () => (cb: (arg: T2) => any) => (a: T) => void -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => res3 : () => (a: unknown) => void > : ^^^^^^^ ^^^^^^^^^^^^^^ >res3 : (a: unknown) => void diff --git a/tests/baselines/reference/circularReferenceInReturnType2.types b/tests/baselines/reference/circularReferenceInReturnType2.types index 46d97194271b0..653a9345b578d 100644 --- a/tests/baselines/reference/circularReferenceInReturnType2.types +++ b/tests/baselines/reference/circularReferenceInReturnType2.types @@ -37,7 +37,7 @@ type Field = { declare const object: () => < >object : () => ; }>(config: { name: string; fields: Fields | (() => Fields); }) => ObjectType -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ Fields extends { [Key in keyof Fields]: Field; @@ -88,7 +88,7 @@ type FieldFuncArgs> = { declare const field: , Key extends string>( >field : , Key extends string>(field: FieldFuncArgs) => Field -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ field: FieldFuncArgs >field : FieldFuncArgs @@ -111,7 +111,7 @@ const A = object()({ >object() : ; }>(config: { name: string; fields: Fields | (() => Fields); }) => ObjectType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >object : () => ; }>(config: { name: string; fields: Fields | (() => Fields); }) => ObjectType -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ >{ name: "A", fields: () => ({ a: field({ type: A, resolve() { return { foo: 100, }; }, }), }),} : { name: string; fields: () => any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -137,7 +137,7 @@ const A = object()({ >field({ type: A, resolve() { return { foo: 100, }; }, }) : Field > : ^^^^^^^^^^^^^^^^^^^^^ >field : , Key extends string>(field: FieldFuncArgs) => Field -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ type: A, resolve() { return { foo: 100, }; }, } : { type: ObjectType; resolve(): { foo: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/circularResolvedSignature.types b/tests/baselines/reference/circularResolvedSignature.types index 567ee115b9bc4..fb2223a2b599c 100644 --- a/tests/baselines/reference/circularResolvedSignature.types +++ b/tests/baselines/reference/circularResolvedSignature.types @@ -3,7 +3,7 @@ === circularResolvedSignature.ts === declare function useState(initialState: (() => S)): [S, (s: S) => void]; >useState : (initialState: (() => S)) => [S, (s: S) => void] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >initialState : () => S > : ^^^^^^ >s : S @@ -43,7 +43,7 @@ export function Component() { >useState(() => ({ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), })) : [Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>, (s: Readonly<{ value: number; foo: (arg: any) => void; bar: (arg: any) => void; }>) => void] > : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^ >useState : (initialState: (() => S)) => [S, (s: S) => void] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => ({ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), }) : () => { value: string; foo: (arg: any) => void; bar: (arg: any) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ >({ value: "string", // this should be a number foo: (arg) => setState(arg), bar: (arg) => setState(arg), }) : { value: string; foo: (arg: any) => void; bar: (arg: any) => void; } diff --git a/tests/baselines/reference/classCanExtendConstructorFunction.types b/tests/baselines/reference/classCanExtendConstructorFunction.types index 3d7c49b5b2dae..a95d604aedf16 100644 --- a/tests/baselines/reference/classCanExtendConstructorFunction.types +++ b/tests/baselines/reference/classCanExtendConstructorFunction.types @@ -26,15 +26,15 @@ function Wagon(numberOxen) { /** @param {Wagon[]=} wagons */ Wagon.circle = function (wagons) { >Wagon.circle = function (wagons) { return wagons ? wagons.length : 3.14;} : (wagons?: Wagon[] | undefined) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >Wagon.circle : (wagons?: Wagon[] | undefined) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >Wagon : typeof Wagon > : ^^^^^^^^^^^^ >circle : (wagons?: Wagon[] | undefined) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >function (wagons) { return wagons ? wagons.length : 3.14;} : (wagons?: Wagon[] | undefined) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >wagons : Wagon[] > : ^^^^^^^ @@ -55,7 +55,7 @@ Wagon.circle = function (wagons) { /** @param {*[]=} supplies - *[]= is my favourite type */ Wagon.prototype.load = function (supplies) { >Wagon.prototype.load = function (supplies) {} : (supplies?: any[] | undefined) => void -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ >Wagon.prototype.load : any > : ^^^ >Wagon.prototype : any @@ -67,14 +67,14 @@ Wagon.prototype.load = function (supplies) { >load : any > : ^^^ >function (supplies) {} : (supplies?: any[] | undefined) => void -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ >supplies : any[] > : ^^^^^ } /** @param {*[]=} supplies - Yep, still a great type */ Wagon.prototype.weight = supplies => supplies ? supplies.length : -1 >Wagon.prototype.weight = supplies => supplies ? supplies.length : -1 : (supplies?: any[] | undefined) => number -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >Wagon.prototype.weight : any > : ^^^ >Wagon.prototype : any @@ -86,7 +86,7 @@ Wagon.prototype.weight = supplies => supplies ? supplies.length : -1 >weight : any > : ^^^ >supplies => supplies ? supplies.length : -1 : (supplies?: any[] | undefined) => number -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >supplies : any[] > : ^^^^^ >supplies ? supplies.length : -1 : number @@ -132,11 +132,11 @@ Wagon.prototype.speed = function () { >this.weight() : number > : ^^^^^^ >this.weight : (supplies?: any[] | undefined) => number -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >this : this > : ^^^^ >weight : (supplies?: any[] | undefined) => number -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ } // ok class Sql extends Wagon { @@ -210,11 +210,11 @@ class Sql extends Wagon { >super.weight() : number > : ^^^^^^ >super.weight : (supplies?: any[] | undefined) => number -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >super : Wagon > : ^^^^^ >weight : (supplies?: any[] | undefined) => number -> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/classExtendingAbstractClassWithMemberCalledTheSameAsItsOwnTypeParam.types b/tests/baselines/reference/classExtendingAbstractClassWithMemberCalledTheSameAsItsOwnTypeParam.types index 7a9b0140da004..6abb593d9ae61 100644 --- a/tests/baselines/reference/classExtendingAbstractClassWithMemberCalledTheSameAsItsOwnTypeParam.types +++ b/tests/baselines/reference/classExtendingAbstractClassWithMemberCalledTheSameAsItsOwnTypeParam.types @@ -4,7 +4,7 @@ interface IObserver { handleChange(observable: IObservable, change: TChange): void; >handleChange : (observable: IObservable, change: TChange) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >observable : IObservable > : ^^^^^^^^^^^^^^^^^^^^^^^ >change : TChange @@ -24,7 +24,7 @@ interface IObservable { export interface IReader { readObservable(observable: IObservable): T; >readObservable : (observable: IObservable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >observable : IObservable > : ^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/classExtendingClass.types b/tests/baselines/reference/classExtendingClass.types index 9cc59406f1557..4ab26dd1adb97 100644 --- a/tests/baselines/reference/classExtendingClass.types +++ b/tests/baselines/reference/classExtendingClass.types @@ -93,7 +93,7 @@ class C2 { static other(x: T) { } >other : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ } @@ -153,11 +153,11 @@ var r8 = D2.other(1); >D2.other(1) : void > : ^^^^ >D2.other : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >D2 : typeof D2 > : ^^^^^^^^^ >other : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/classFieldSuperAccessibleJs2.types b/tests/baselines/reference/classFieldSuperAccessibleJs2.types index 7a7bcad93242b..39296e41b3232 100644 --- a/tests/baselines/reference/classFieldSuperAccessibleJs2.types +++ b/tests/baselines/reference/classFieldSuperAccessibleJs2.types @@ -128,7 +128,7 @@ D.prototype.foo.call(obj); >D.prototype.foo.call(obj) : void > : ^^^^ >D.prototype.foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >D.prototype.foo : () => void > : ^^^^^^^^^^ >D.prototype : D @@ -140,7 +140,7 @@ D.prototype.foo.call(obj); >foo : () => void > : ^^^^^^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >obj : D > : ^ diff --git a/tests/baselines/reference/classReferencedInContextualParameterWithinItsOwnBaseExpression.types b/tests/baselines/reference/classReferencedInContextualParameterWithinItsOwnBaseExpression.types index ead21a3f1b901..2202fd1243587 100644 --- a/tests/baselines/reference/classReferencedInContextualParameterWithinItsOwnBaseExpression.types +++ b/tests/baselines/reference/classReferencedInContextualParameterWithinItsOwnBaseExpression.types @@ -19,7 +19,7 @@ interface Class { declare const Class: ( >Class : (identifier: string) => (fields: Fields, annotations?: Schema) => Class> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ identifier: string, >identifier : string @@ -67,7 +67,7 @@ export class A extends Class("A")( >Class("A") : (fields: Fields, annotations?: Schema | undefined) => Class> > : ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >Class : (identifier: string) => (fields: Fields, annotations?: Schema) => Class> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >"A" : "A" > : ^^^ diff --git a/tests/baselines/reference/classStaticBlock23(target=es2022).types b/tests/baselines/reference/classStaticBlock23(target=es2022).types index 4e30f2900497a..379ea37967f55 100644 --- a/tests/baselines/reference/classStaticBlock23(target=es2022).types +++ b/tests/baselines/reference/classStaticBlock23(target=es2022).types @@ -25,11 +25,11 @@ const nums = [1, 2, 3].map(n => Promise.resolve(n)) >Promise.resolve(n) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >n : number > : ^^^^^^ diff --git a/tests/baselines/reference/classStaticBlock23(target=esnext).types b/tests/baselines/reference/classStaticBlock23(target=esnext).types index 4e30f2900497a..379ea37967f55 100644 --- a/tests/baselines/reference/classStaticBlock23(target=esnext).types +++ b/tests/baselines/reference/classStaticBlock23(target=esnext).types @@ -25,11 +25,11 @@ const nums = [1, 2, 3].map(n => Promise.resolve(n)) >Promise.resolve(n) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >n : number > : ^^^^^^ diff --git a/tests/baselines/reference/classTypeParametersInStatics.types b/tests/baselines/reference/classTypeParametersInStatics.types index 13326528e2621..be55a8176641d 100644 --- a/tests/baselines/reference/classTypeParametersInStatics.types +++ b/tests/baselines/reference/classTypeParametersInStatics.types @@ -71,7 +71,7 @@ module Editor { public static MakeHead2(): List { // should not error >MakeHead2 : () => List -> : ^ ^^^^^^^ +> : ^^^^^^^^^ var entry: List = new List(true, null); >entry : List @@ -114,7 +114,7 @@ module Editor { public static MakeHead3(): List { // should not error >MakeHead3 : () => List -> : ^ ^^^^^^^ +> : ^^^^^^^^^ var entry: List = new List(true, null); >entry : List diff --git a/tests/baselines/reference/coAndContraVariantInferences.types b/tests/baselines/reference/coAndContraVariantInferences.types index 895e19624b182..1419224a9c130 100644 --- a/tests/baselines/reference/coAndContraVariantInferences.types +++ b/tests/baselines/reference/coAndContraVariantInferences.types @@ -29,7 +29,7 @@ declare function fab(arg: A | B): void; declare function foo(x: { kind: T }, f: (arg: { kind: T }) => void): void; >foo : (x: { kind: T; }, f: (arg: { kind: T; }) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { kind: T; } > : ^^^^^^^^ ^^^ >kind : T @@ -45,7 +45,7 @@ foo(a, fab); >foo(a, fab) : void > : ^^^^ >foo : (x: { kind: T; }, f: (arg: { kind: T; }) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >fab : (arg: A | B) => void @@ -55,7 +55,7 @@ foo(b, fab); >foo(b, fab) : void > : ^^^^ >foo : (x: { kind: T; }, f: (arg: { kind: T; }) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >fab : (arg: A | B) => void @@ -99,7 +99,7 @@ const actionB = { payload: true } as Action<'ACTION_B', boolean>; function call( >call : (action: Action, fn: (action: Action) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ action: Action, >action : Action @@ -146,7 +146,7 @@ call(actionA, printFn); >call(actionA, printFn) : void > : ^^^^ >call : (action: Action, fn: (action: Action) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >actionA : Action<"ACTION_A", string> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >printFn : (action: typeof actionA | typeof actionB) => void @@ -156,7 +156,7 @@ call(actionB, printFn); >call(actionB, printFn) : void > : ^^^^ >call : (action: Action, fn: (action: Action) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >actionB : Action<"ACTION_B", boolean> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >printFn : (action: typeof actionA | typeof actionB) => void diff --git a/tests/baselines/reference/coAndContraVariantInferences2.types b/tests/baselines/reference/coAndContraVariantInferences2.types index d5d96850dbe65..ada9f364c3395 100644 --- a/tests/baselines/reference/coAndContraVariantInferences2.types +++ b/tests/baselines/reference/coAndContraVariantInferences2.types @@ -15,7 +15,7 @@ interface C extends A { c: string } declare function cast(x: T, test: (x: T) => x is U): U; >cast : (x: T, test: (x: T) => x is U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >test : (x: T) => x is U @@ -43,7 +43,7 @@ function f1(a: A, b: B) { >cast(a, isC) : C > : ^ >cast : (x: T, test: (x: T) => x is U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >isC : (x: A) => x is C @@ -55,7 +55,7 @@ function f1(a: A, b: B) { >cast(b, isC) : C > : ^ >cast : (x: T, test: (x: T) => x is U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >isC : (x: A) => x is C @@ -70,7 +70,7 @@ declare function useA(a: A): void; declare function consume(t: T, u: U, f: (x: T) => void): void; >consume : (t: T, u: U, f: (x: T) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -92,7 +92,7 @@ function f2(b: B, c: C) { >consume(b, c, useA) : void > : ^^^^ >consume : (t: T, u: U, f: (x: T) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >c : C @@ -104,7 +104,7 @@ function f2(b: B, c: C) { >consume(c, b, useA) : void > : ^^^^ >consume : (t: T, u: U, f: (x: T) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : C > : ^ >b : B @@ -116,7 +116,7 @@ function f2(b: B, c: C) { >consume(b, b, useA) : void > : ^^^^ >consume : (t: T, u: U, f: (x: T) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >b : B @@ -128,7 +128,7 @@ function f2(b: B, c: C) { >consume(c, c, useA) : void > : ^^^^ >consume : (t: T, u: U, f: (x: T) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : C > : ^ >c : C @@ -139,7 +139,7 @@ function f2(b: B, c: C) { declare function every(array: readonly T[], f: (x: T) => x is U): array is readonly U[]; >every : (array: readonly T[], f: (x: T) => x is U) => array is readonly U[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >array : readonly T[] > : ^^^^^^^^^^^^ >f : (x: T) => x is U @@ -157,7 +157,7 @@ function f3(arr: readonly B[] | readonly C[]) { >every(arr, isC) : boolean > : ^^^^^^^ >every : (array: readonly T[], f: (x: T) => x is U) => array is readonly U[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >arr : readonly B[] | readonly C[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isC : (x: A) => x is C @@ -247,7 +247,7 @@ declare function canHaveLocals(node: Node): node is HasLocals; declare function assertNode(node: T | undefined, test: (node: T) => node is U): asserts node is U; >assertNode : { (node: T | undefined, test: (node: T) => node is U): asserts node is U; (node: Node | undefined, test: ((node: Node) => boolean) | undefined): void; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >node : T | undefined > : ^^^^^^^^^^^^^ >test : (node: T) => node is U @@ -257,7 +257,7 @@ declare function assertNode(node: T | undefined, te declare function assertNode(node: Node | undefined, test: ((node: Node) => boolean) | undefined): void; >assertNode : { (node: T | undefined, test: (node: T) => node is U): asserts node is U; (node: Node | undefined, test: ((node: Node) => boolean) | undefined): void; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >node : Node | undefined > : ^^^^^^^^^^^^^^^^ >test : ((node: Node) => boolean) | undefined @@ -275,7 +275,7 @@ function foo(node: FunctionDeclaration | CaseClause) { >assertNode(node, canHaveLocals) : void > : ^^^^ >assertNode : { (node: T | undefined, test: (node: T) => node is U): asserts node is U; (node: Node | undefined, test: ((node: Node) => boolean) | undefined): void; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >node : CaseClause | FunctionDeclaration > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >canHaveLocals : (node: Node) => node is HasLocals @@ -294,7 +294,7 @@ declare function isExpression(node: Node): node is Expression; declare function tryCast(value: TIn | undefined, test: (value: TIn) => value is TOut): TOut; >tryCast : (value: TIn | undefined, test: (value: TIn) => value is TOut) => TOut -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >value : TIn | undefined > : ^^^^^^^^^^^^^^^ >test : (value: TIn) => value is TOut @@ -314,7 +314,7 @@ function bar(node: Identifier | FunctionDeclaration) { >tryCast(node, isExpression) : Expression > : ^^^^^^^^^^ >tryCast : (value: TIn | undefined, test: (value: TIn) => value is TOut) => TOut -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >node : Identifier | FunctionDeclaration > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isExpression : (node: Node) => node is Expression @@ -383,7 +383,7 @@ const maybeClassStatement = tryCast(statement, isClassLike); // ClassLike1 >tryCast(statement, isClassLike) : ClassLike1 > : ^^^^^^^^^^ >tryCast : (value: TIn | undefined, test: (value: TIn) => value is TOut) => TOut -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >statement : Statement1 | undefined > : ^^^^^^^^^^^^^^^^^^^^^^ >isClassLike : (node: Node1) => node is ClassLike1 @@ -405,7 +405,7 @@ interface NodeArray extends Array { declare function isNodeArray(array: readonly T[]): array is NodeArray; >isNodeArray : (array: readonly T[]) => array is NodeArray -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >array : readonly T[] > : ^^^^^^^^^^^^ @@ -419,9 +419,9 @@ const x = tryCast(types, isNodeArray); // NodeAray >tryCast(types, isNodeArray) : NodeArray > : ^^^^^^^^^^^^^^^^^^^ >tryCast : (value: TIn | undefined, test: (value: TIn) => value is TOut) => TOut -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >types : readonly TypeNode[] > : ^^^^^^^^^^^^^^^^^^^ >isNodeArray : (array: readonly T[]) => array is NodeArray -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/coAndContraVariantInferences3.types b/tests/baselines/reference/coAndContraVariantInferences3.types index 74da1307b0a9c..aeeff31c17070 100644 --- a/tests/baselines/reference/coAndContraVariantInferences3.types +++ b/tests/baselines/reference/coAndContraVariantInferences3.types @@ -59,7 +59,7 @@ type OverloadDeprecations = { [P in OverloadKeys< declare function createOverload(name: string, overloads: T, binder: OverloadBinders, deprecations?: OverloadDeprecations): UnionToIntersection; >createOverload : (name: string, overloads: T, binder: OverloadBinders, deprecations?: OverloadDeprecations) => UnionToIntersection -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >name : string > : ^^^^^^ >overloads : T @@ -71,7 +71,7 @@ declare function createOverload(name: string, ove declare function createBinder(overloads: T, binder: OverloadBinders): OverloadBinder; >createBinder : (overloads: T, binder: OverloadBinders) => OverloadBinder -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >overloads : T > : ^ >binder : OverloadBinders @@ -80,7 +80,7 @@ declare function createBinder(overloads: T, binde interface OverloadBuilder { overload(overloads: T): BindableOverloadBuilder; >overload : (overloads: T) => BindableOverloadBuilder -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >overloads : T > : ^ } @@ -246,7 +246,7 @@ declare const updateImportDeclaration: { declare function every(array: readonly T[], callback: (element: T, index: number) => element is U): array is readonly U[]; >every : { (array: readonly T[], callback: (element: T, index: number) => element is U): array is readonly U[]; (array: readonly T_1[] | undefined, callback: (element: T_1, index: number) => element is U_1): array is readonly U_1[] | undefined; (array: readonly T_1[] | undefined, callback: (element: T_1, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >array : readonly T[] > : ^^^^^^^^^^^^ >callback : (element: T, index: number) => element is U @@ -258,7 +258,7 @@ declare function every(array: readonly T[], callback: (element: declare function every(array: readonly T[] | undefined, callback: (element: T, index: number) => element is U): array is readonly U[] | undefined; >every : { (array: readonly T_1[], callback: (element: T_1, index: number) => element is U_1): array is readonly U_1[]; (array: readonly T[] | undefined, callback: (element: T, index: number) => element is U): array is readonly U[] | undefined; (array: readonly T_1[] | undefined, callback: (element: T_1, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >array : readonly T[] | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^ >callback : (element: T, index: number) => element is U @@ -270,7 +270,7 @@ declare function every(array: readonly T[] | undefined, callback declare function every(array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; >every : { (array: readonly T_1[], callback: (element: T_1, index: number) => element is U): array is readonly U[]; (array: readonly T_1[] | undefined, callback: (element: T_1, index: number) => element is U): array is readonly U[] | undefined; (array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >array : readonly T[] | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^ >callback : (element: T, index: number) => boolean @@ -293,19 +293,19 @@ buildOverload("updateImportDeclaration") >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) .bind({ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), }) .deprecate({ 1: DISALLOW_DECORATORS }) .finish() : ((node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined) => ImportDeclaration) & ((node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined) => ImportDeclaration) > : ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^ >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) .bind({ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), }) .deprecate({ 1: DISALLOW_DECORATORS }) .finish : () => OverloadFunction<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> -> : ^^^^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) .bind({ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), }) .deprecate({ 1: DISALLOW_DECORATORS }) : FinishableOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) .bind({ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), }) .deprecate : (deprecations: OverloadDeprecations<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }>) => FinishableOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) .bind({ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), }) : BoundOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) .bind : (binder: OverloadBinders<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }>) => BoundOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ >buildOverload("updateImportDeclaration") .overload({ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, }) : BindableOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ >buildOverload("updateImportDeclaration") .overload : (overloads: T) => BindableOverloadBuilder -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >buildOverload("updateImportDeclaration") : OverloadBuilder > : ^^^^^^^^^^^^^^^ >buildOverload : (name: string) => OverloadBuilder @@ -315,7 +315,7 @@ buildOverload("updateImportDeclaration") .overload({ >overload : (overloads: T) => BindableOverloadBuilder -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration { return updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, assertClause); }, } : { 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; } > : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ @@ -387,7 +387,7 @@ buildOverload("updateImportDeclaration") }) .bind({ >bind : (binder: OverloadBinders<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }>) => BoundOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ >{ 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]) => (other === undefined) && (modifiers === undefined || every(modifiers, isModifier)) && (importClause === undefined || !isArray(importClause)) && (moduleSpecifier === undefined || isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]) => (decorators === undefined || every(decorators, isDecorator)) && (modifiers === undefined || isArray(modifiers)) && (importClause === undefined || isImportClause(importClause)) && (moduleSpecifier !== undefined && isExpression(moduleSpecifier)) && (assertClause === undefined || isAssertClause(assertClause)), } : { 0: ([, modifiers, importClause, moduleSpecifier, assertClause, other]: [node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined] | [node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined]) => boolean; 1: ([, decorators, modifiers, importClause, moduleSpecifier, assertClause]: [node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined] | [node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined]) => boolean; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -441,7 +441,7 @@ buildOverload("updateImportDeclaration") >every(modifiers, isModifier) : boolean > : ^^^^^^^ >every : { (array: readonly T[], callback: (element: T, index: number) => element is U): array is readonly U[]; (array: readonly T[] | undefined, callback: (element: T, index: number) => element is U): array is readonly U[] | undefined; (array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >modifiers : readonly Modifier[] | readonly Decorator[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isModifier : (node: Node) => node is Modifier @@ -543,7 +543,7 @@ buildOverload("updateImportDeclaration") >every(decorators, isDecorator) : boolean > : ^^^^^^^ >every : { (array: readonly T[], callback: (element: T, index: number) => element is U): array is readonly U[]; (array: readonly T[] | undefined, callback: (element: T, index: number) => element is U): array is readonly U[] | undefined; (array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >decorators : readonly Modifier[] | readonly Decorator[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isDecorator : (node: Node) => node is Decorator @@ -624,7 +624,7 @@ buildOverload("updateImportDeclaration") }) .deprecate({ >deprecate : (deprecations: OverloadDeprecations<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }>) => FinishableOverloadBuilder<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ >{ 1: DISALLOW_DECORATORS } : { 1: DeprecationOptions; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -637,7 +637,7 @@ buildOverload("updateImportDeclaration") }) .finish(); >finish : () => OverloadFunction<{ 0(node: ImportDeclaration, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; 1(node: ImportDeclaration, _decorators: readonly Decorator[] | undefined, modifiers: readonly Modifier[] | undefined, importClause: ImportClause | undefined, moduleSpecifier: Expression, assertClause: AssertClause | undefined): ImportDeclaration; }> -> : ^^^^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^ declare const modifiers: readonly Modifier[] | readonly Decorator[]; @@ -652,7 +652,7 @@ function foo() { >every(modifiers, isModifier) : boolean > : ^^^^^^^ >every : { (array: readonly T[], callback: (element: T, index: number) => element is U): array is readonly U[]; (array: readonly T[] | undefined, callback: (element: T, index: number) => element is U): array is readonly U[] | undefined; (array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >modifiers : readonly Modifier[] | readonly Decorator[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isModifier : (node: Node) => node is Modifier @@ -662,7 +662,7 @@ function foo() { >every(modifiers, isDecorator) : boolean > : ^^^^^^^ >every : { (array: readonly T[], callback: (element: T, index: number) => element is U): array is readonly U[]; (array: readonly T[] | undefined, callback: (element: T, index: number) => element is U): array is readonly U[] | undefined; (array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >modifiers : readonly Modifier[] | readonly Decorator[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isDecorator : (node: Node) => node is Decorator diff --git a/tests/baselines/reference/coAndContraVariantInferences4.types b/tests/baselines/reference/coAndContraVariantInferences4.types index 923567537b40b..7da575becb902 100644 --- a/tests/baselines/reference/coAndContraVariantInferences4.types +++ b/tests/baselines/reference/coAndContraVariantInferences4.types @@ -46,7 +46,7 @@ declare function isDecorator(node: Node): node is Decorator; declare function every(array: readonly T[], callback: (element: T) => element is U): array is readonly U[]; >every : (array: readonly T[], callback: (element: T) => element is U) => array is readonly U[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >array : readonly T[] > : ^^^^^^^^^^^^ >callback : (element: T) => element is U @@ -66,7 +66,7 @@ function foo() { >every(modifiers, isModifier) : boolean > : ^^^^^^^ >every : (array: readonly T[], callback: (element: T) => element is U) => array is readonly U[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >modifiers : readonly Decorator[] | readonly Modifier[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isModifier : (node: Node) => node is Modifier @@ -76,7 +76,7 @@ function foo() { >every(modifiers, isDecorator) : boolean > : ^^^^^^^ >every : (array: readonly T[], callback: (element: T) => element is U) => array is readonly U[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >modifiers : readonly Decorator[] | readonly Modifier[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isDecorator : (node: Node) => node is Decorator diff --git a/tests/baselines/reference/coAndContraVariantInferences5.types b/tests/baselines/reference/coAndContraVariantInferences5.types index f2d0d05be6366..a487dcff1115c 100644 --- a/tests/baselines/reference/coAndContraVariantInferences5.types +++ b/tests/baselines/reference/coAndContraVariantInferences5.types @@ -24,7 +24,7 @@ function f( >select({ options, onChange, }) : void > : ^^^^ >select : (props: SelectProps) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ options, onChange, } : { options: SelectOptions; onChange: (status: Thing | null) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ @@ -41,7 +41,7 @@ function f( declare function select(props: SelectProps): void; >select : (props: SelectProps) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : SelectProps > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/coAndContraVariantInferences6.types b/tests/baselines/reference/coAndContraVariantInferences6.types index 45f78449069d0..94dd4ef90635b 100644 --- a/tests/baselines/reference/coAndContraVariantInferences6.types +++ b/tests/baselines/reference/coAndContraVariantInferences6.types @@ -51,7 +51,7 @@ type JSXElementConstructor

= declare function createElementIsolated

( >createElementIsolated :

(type: FunctionComponent

| ComponentClass

| string, props?: P | null) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ type: FunctionComponent

| ComponentClass

| string, >type : string | FunctionComponent

| ComponentClass

@@ -71,7 +71,7 @@ createElementIsolated(WrapperIsolated, { value: "C" }); >createElementIsolated(WrapperIsolated, { value: "C" }) : void > : ^^^^ >createElementIsolated :

(type: FunctionComponent

| ComponentClass

| string, props?: P | null) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >WrapperIsolated : JSXElementConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ value: "C" } : { value: "C"; } @@ -93,7 +93,7 @@ declare const stat: any; >[].push.apply(props, stat.properties) : number > : ^^^^^^ >[].push.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >[].push : (...items: never[]) => number > : ^^^^ ^^^^^^^^^^^^^^ >[] : never[] @@ -101,7 +101,7 @@ declare const stat: any; >push : (...items: never[]) => number > : ^^^^ ^^^^^^^^^^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >props : any[] > : ^^^^^ >stat.properties : any diff --git a/tests/baselines/reference/collectionPatternNoError.types b/tests/baselines/reference/collectionPatternNoError.types index d85d37eb1bbe5..f2578e324bf66 100644 --- a/tests/baselines/reference/collectionPatternNoError.types +++ b/tests/baselines/reference/collectionPatternNoError.types @@ -27,7 +27,7 @@ interface MessageList extends Message { function fetchMsg(protoCtor: MsgConstructor): V { >fetchMsg : (protoCtor: MsgConstructor) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >protoCtor : MsgConstructor > : ^^^^^^^^^^^^^^^^^ @@ -61,7 +61,7 @@ class DataProvider> { >fetchMsg(this.messageList) : U > : ^ >fetchMsg : (protoCtor: MsgConstructor) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >this.messageList : MsgConstructor > : ^^^^^^^^^^^^^^^^^ >this : this @@ -85,7 +85,7 @@ class DataProvider> { // (won't surface directly unless unsound indexed access assignments are forbidden) function f< >f : ; }, T extends Message>(message: MsgConstructor, messageList: MsgConstructor) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ U extends {TType: MessageList}, >TType : MessageList @@ -106,7 +106,7 @@ function f< >fetchMsg(messageList) : U["TType"] > : ^^^^^^^^^^ >fetchMsg : (protoCtor: MsgConstructor) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >messageList : MsgConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >methodOnMessageList : () => T[] diff --git a/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement.types b/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement.types index 54ff2d7d5dcb2..504f09f580fe7 100644 --- a/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement.types +++ b/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement.types @@ -19,11 +19,11 @@ export class Foo { >Promise.resolve('') : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >'' : "" > : ^^ } diff --git a/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement2.types b/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement2.types index 5bbdfde96b4e6..a3ca79a986f49 100644 --- a/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement2.types +++ b/tests/baselines/reference/commentEmitOnParenthesizedAssertionInReturnStatement2.types @@ -19,11 +19,11 @@ export class Foo { >Promise.resolve('') : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >'' : "" > : ^^ } diff --git a/tests/baselines/reference/commentsTypeParameters.types b/tests/baselines/reference/commentsTypeParameters.types index 7f77a1e9c29ac..003a7dd59b0b5 100644 --- a/tests/baselines/reference/commentsTypeParameters.types +++ b/tests/baselines/reference/commentsTypeParameters.types @@ -7,26 +7,26 @@ class C { method(a: U) { >method : (a: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : U > : ^ } static staticmethod(a: U) { >staticmethod : (a: U) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : U > : ^ } private privatemethod(a: U) { >privatemethod : (a: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : U > : ^ } private static privatestaticmethod(a: U) { >privatestaticmethod : (a: U) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : U > : ^ } @@ -34,7 +34,7 @@ class C { function compare(a: T, b: T) { >compare : (a: T, b: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >a : T > : ^ >b : T diff --git a/tests/baselines/reference/comparabilityTypeParametersRelatedByUnion.types b/tests/baselines/reference/comparabilityTypeParametersRelatedByUnion.types index 0c2b3a0d37344..cbeb7eb1cdea0 100644 --- a/tests/baselines/reference/comparabilityTypeParametersRelatedByUnion.types +++ b/tests/baselines/reference/comparabilityTypeParametersRelatedByUnion.types @@ -11,7 +11,7 @@ class C { good(y: U) { >good : (y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : U > : ^ @@ -30,7 +30,7 @@ class C { bad(y: U) { >bad : (y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : U > : ^ diff --git a/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.types b/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.types index 44d78f175980e..330cbf7f2d664 100644 --- a/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.types +++ b/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.types @@ -5,7 +5,7 @@ function foo(t: T) { >foo : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types b/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types index 8a13d06be5885..55ab61d5ebf75 100644 --- a/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types +++ b/tests/baselines/reference/comparisonOperatorWithIdenticalTypeParameter.types @@ -3,7 +3,7 @@ === comparisonOperatorWithIdenticalTypeParameter.ts === function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.types b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.types index e67a171f1a013..cb88a7298782c 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.types @@ -124,17 +124,17 @@ var b6: { fn(...a: C[]): void }; var a7: { fn(t: T): T }; >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (t: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T > : ^ var b7: { fn(t: T[]): T }; >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (t: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T[] > : ^^^ @@ -205,9 +205,9 @@ var r1a7 = a7 < b7; >a7 < b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r1b1 = b1 < a1; >r1b1 : boolean @@ -275,9 +275,9 @@ var r1b7 = b7 < a7; >b7 < a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator > var r2a1 = a1 > b1; @@ -346,9 +346,9 @@ var r2a7 = a7 > b7; >a7 > b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r2b1 = b1 > a1; >r2b1 : boolean @@ -416,9 +416,9 @@ var r2b7 = b7 > a7; >b7 > a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator <= var r3a1 = a1 <= b1; @@ -487,9 +487,9 @@ var r3a7 = a7 <= b7; >a7 <= b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r3b1 = b1 <= a1; >r3b1 : boolean @@ -557,9 +557,9 @@ var r3b7 = b7 <= a7; >b7 <= a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator >= var r4a1 = a1 >= b1; @@ -628,9 +628,9 @@ var r4a7 = a7 >= b7; >a7 >= b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r4b1 = b1 >= a1; >r4b1 : boolean @@ -698,9 +698,9 @@ var r4b7 = b7 >= a7; >b7 >= a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator == var r5a1 = a1 == b1; @@ -769,9 +769,9 @@ var r5a7 = a7 == b7; >a7 == b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r5b1 = b1 == a1; >r5b1 : boolean @@ -839,9 +839,9 @@ var r5b7 = b7 == a7; >b7 == a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator != var r6a1 = a1 != b1; @@ -910,9 +910,9 @@ var r6a7 = a7 != b7; >a7 != b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r6b1 = b1 != a1; >r6b1 : boolean @@ -980,9 +980,9 @@ var r6b7 = b7 != a7; >b7 != a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator === var r7a1 = a1 === b1; @@ -1051,9 +1051,9 @@ var r7a7 = a7 === b7; >a7 === b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r7b1 = b1 === a1; >r7b1 : boolean @@ -1121,9 +1121,9 @@ var r7b7 = b7 === a7; >b7 === a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ // operator !== var r8a1 = a1 !== b1; @@ -1192,9 +1192,9 @@ var r8a7 = a7 !== b7; >a7 !== b7 : boolean > : ^^^^^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r8b1 = b1 !== a1; >r8b1 : boolean @@ -1262,7 +1262,7 @@ var r8b7 = b7 !== a7; >b7 !== a7 : boolean > : ^^^^^^^ >b7 : { fn(t: T[]): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >a7 : { fn(t: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.types b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.types index b35a0ae8a9cd2..6ba891d8d56fa 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.types @@ -104,13 +104,13 @@ var b6: { new (...a: C[]): Base }; var a7: { new (t: T): T }; >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >t : T > : ^ var b7: { new (t: T[]): T }; >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >t : T[] > : ^^^ @@ -181,9 +181,9 @@ var r1a7 = a7 < b7; >a7 < b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b1 = b1 < a1; >r1b1 : boolean @@ -251,9 +251,9 @@ var r1b7 = b7 < a7; >b7 < a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator > var r2a1 = a1 > b1; @@ -322,9 +322,9 @@ var r2a7 = a7 > b7; >a7 > b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2b1 = b1 > a1; >r2b1 : boolean @@ -392,9 +392,9 @@ var r2b7 = b7 > a7; >b7 > a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator <= var r3a1 = a1 <= b1; @@ -463,9 +463,9 @@ var r3a7 = a7 <= b7; >a7 <= b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3b1 = b1 <= a1; >r3b1 : boolean @@ -533,9 +533,9 @@ var r3b7 = b7 <= a7; >b7 <= a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator >= var r4a1 = a1 >= b1; @@ -604,9 +604,9 @@ var r4a7 = a7 >= b7; >a7 >= b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4b1 = b1 >= a1; >r4b1 : boolean @@ -674,9 +674,9 @@ var r4b7 = b7 >= a7; >b7 >= a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator == var r5a1 = a1 == b1; @@ -745,9 +745,9 @@ var r5a7 = a7 == b7; >a7 == b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r5b1 = b1 == a1; >r5b1 : boolean @@ -815,9 +815,9 @@ var r5b7 = b7 == a7; >b7 == a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator != var r6a1 = a1 != b1; @@ -886,9 +886,9 @@ var r6a7 = a7 != b7; >a7 != b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r6b1 = b1 != a1; >r6b1 : boolean @@ -956,9 +956,9 @@ var r6b7 = b7 != a7; >b7 != a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator === var r7a1 = a1 === b1; @@ -1027,9 +1027,9 @@ var r7a7 = a7 === b7; >a7 === b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7b1 = b1 === a1; >r7b1 : boolean @@ -1097,9 +1097,9 @@ var r7b7 = b7 === a7; >b7 === a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ // operator !== var r8a1 = a1 !== b1; @@ -1168,9 +1168,9 @@ var r8a7 = a7 !== b7; >a7 !== b7 : boolean > : ^^^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r8b1 = b1 !== a1; >r8b1 : boolean @@ -1238,7 +1238,7 @@ var r8b7 = b7 !== a7; >b7 !== a7 : boolean > : ^^^^^^^ >b7 : new (t: T[]) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a7 : new (t: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types index 491973861c672..dc3d1cfe84fb0 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types @@ -32,9 +32,9 @@ class C { var a1: { fn(x: T): T }; >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -46,9 +46,9 @@ var b1: { fn(): string }; var a2: { fn(x: T): T }; >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -62,9 +62,9 @@ var b2: { fn(x: string): number }; var a3: { fn(x?: T): T }; >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >fn : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ @@ -78,9 +78,9 @@ var b3: { fn(x?: string): number }; var a4: { fn(...x: T[]): T }; >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >fn : (...x: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -94,9 +94,9 @@ var b4: { fn(...x: string[]): number }; var a5: { fn(x: T, y: T): T }; >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -114,9 +114,9 @@ var b5: { fn(x: string, y: number): string }; var a6: { fn(x: T, y: U): T }; >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (x: T, y: U) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -139,7 +139,7 @@ var r1a1 = a1 < b1; >a1 < b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -149,7 +149,7 @@ var r1a2 = a2 < b2; >a2 < b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -159,7 +159,7 @@ var r1a3 = a3 < b3; >a3 < b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -169,7 +169,7 @@ var r1a4 = a4 < b4; >a4 < b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -179,7 +179,7 @@ var r1a5 = a5 < b5; >a5 < b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -189,7 +189,7 @@ var r1a6 = a6 < b6; >a6 < b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -201,7 +201,7 @@ var r1b1 = b1 < a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r1b2 = b2 < a2; >r1b2 : boolean @@ -211,7 +211,7 @@ var r1b2 = b2 < a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r1b3 = b3 < a3; >r1b3 : boolean @@ -221,7 +221,7 @@ var r1b3 = b3 < a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r1b4 = b4 < a4; >r1b4 : boolean @@ -231,7 +231,7 @@ var r1b4 = b4 < a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r1b5 = b5 < a5; >r1b5 : boolean @@ -241,7 +241,7 @@ var r1b5 = b5 < a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r1b6 = b6 < a6; >r1b6 : boolean @@ -251,7 +251,7 @@ var r1b6 = b6 < a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator > var r2a1 = a1 > b1; @@ -260,7 +260,7 @@ var r2a1 = a1 > b1; >a1 > b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -270,7 +270,7 @@ var r2a2 = a2 > b2; >a2 > b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -280,7 +280,7 @@ var r2a3 = a3 > b3; >a3 > b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -290,7 +290,7 @@ var r2a4 = a4 > b4; >a4 > b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -300,7 +300,7 @@ var r2a5 = a5 > b5; >a5 > b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -310,7 +310,7 @@ var r2a6 = a6 > b6; >a6 > b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -322,7 +322,7 @@ var r2b1 = b1 > a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r2b2 = b2 > a2; >r2b2 : boolean @@ -332,7 +332,7 @@ var r2b2 = b2 > a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r2b3 = b3 > a3; >r2b3 : boolean @@ -342,7 +342,7 @@ var r2b3 = b3 > a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r2b4 = b4 > a4; >r2b4 : boolean @@ -352,7 +352,7 @@ var r2b4 = b4 > a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r2b5 = b5 > a5; >r2b5 : boolean @@ -362,7 +362,7 @@ var r2b5 = b5 > a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r2b6 = b6 > a6; >r2b6 : boolean @@ -372,7 +372,7 @@ var r2b6 = b6 > a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator <= var r3a1 = a1 <= b1; @@ -381,7 +381,7 @@ var r3a1 = a1 <= b1; >a1 <= b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -391,7 +391,7 @@ var r3a2 = a2 <= b2; >a2 <= b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -401,7 +401,7 @@ var r3a3 = a3 <= b3; >a3 <= b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -411,7 +411,7 @@ var r3a4 = a4 <= b4; >a4 <= b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -421,7 +421,7 @@ var r3a5 = a5 <= b5; >a5 <= b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -431,7 +431,7 @@ var r3a6 = a6 <= b6; >a6 <= b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -443,7 +443,7 @@ var r3b1 = b1 <= a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r3b2 = b2 <= a2; >r3b2 : boolean @@ -453,7 +453,7 @@ var r3b2 = b2 <= a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r3b3 = b3 <= a3; >r3b3 : boolean @@ -463,7 +463,7 @@ var r3b3 = b3 <= a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r3b4 = b4 <= a4; >r3b4 : boolean @@ -473,7 +473,7 @@ var r3b4 = b4 <= a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r3b5 = b5 <= a5; >r3b5 : boolean @@ -483,7 +483,7 @@ var r3b5 = b5 <= a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r3b6 = b6 <= a6; >r3b6 : boolean @@ -493,7 +493,7 @@ var r3b6 = b6 <= a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator >= var r4a1 = a1 >= b1; @@ -502,7 +502,7 @@ var r4a1 = a1 >= b1; >a1 >= b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -512,7 +512,7 @@ var r4a2 = a2 >= b2; >a2 >= b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -522,7 +522,7 @@ var r4a3 = a3 >= b3; >a3 >= b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -532,7 +532,7 @@ var r4a4 = a4 >= b4; >a4 >= b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -542,7 +542,7 @@ var r4a5 = a5 >= b5; >a5 >= b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -552,7 +552,7 @@ var r4a6 = a6 >= b6; >a6 >= b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -564,7 +564,7 @@ var r4b1 = b1 >= a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r4b2 = b2 >= a2; >r4b2 : boolean @@ -574,7 +574,7 @@ var r4b2 = b2 >= a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r4b3 = b3 >= a3; >r4b3 : boolean @@ -584,7 +584,7 @@ var r4b3 = b3 >= a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r4b4 = b4 >= a4; >r4b4 : boolean @@ -594,7 +594,7 @@ var r4b4 = b4 >= a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r4b5 = b5 >= a5; >r4b5 : boolean @@ -604,7 +604,7 @@ var r4b5 = b5 >= a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r4b6 = b6 >= a6; >r4b6 : boolean @@ -614,7 +614,7 @@ var r4b6 = b6 >= a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator == var r5a1 = a1 == b1; @@ -623,7 +623,7 @@ var r5a1 = a1 == b1; >a1 == b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -633,7 +633,7 @@ var r5a2 = a2 == b2; >a2 == b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -643,7 +643,7 @@ var r5a3 = a3 == b3; >a3 == b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -653,7 +653,7 @@ var r5a4 = a4 == b4; >a4 == b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -663,7 +663,7 @@ var r5a5 = a5 == b5; >a5 == b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -673,7 +673,7 @@ var r5a6 = a6 == b6; >a6 == b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -685,7 +685,7 @@ var r5b1 = b1 == a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r5b2 = b2 == a2; >r5b2 : boolean @@ -695,7 +695,7 @@ var r5b2 = b2 == a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r5b3 = b3 == a3; >r5b3 : boolean @@ -705,7 +705,7 @@ var r5b3 = b3 == a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r5b4 = b4 == a4; >r5b4 : boolean @@ -715,7 +715,7 @@ var r5b4 = b4 == a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r5b5 = b5 == a5; >r5b5 : boolean @@ -725,7 +725,7 @@ var r5b5 = b5 == a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r5b6 = b6 == a6; >r5b6 : boolean @@ -735,7 +735,7 @@ var r5b6 = b6 == a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator != var r6a1 = a1 != b1; @@ -744,7 +744,7 @@ var r6a1 = a1 != b1; >a1 != b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -754,7 +754,7 @@ var r6a2 = a2 != b2; >a2 != b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -764,7 +764,7 @@ var r6a3 = a3 != b3; >a3 != b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -774,7 +774,7 @@ var r6a4 = a4 != b4; >a4 != b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -784,7 +784,7 @@ var r6a5 = a5 != b5; >a5 != b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -794,7 +794,7 @@ var r6a6 = a6 != b6; >a6 != b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -806,7 +806,7 @@ var r6b1 = b1 != a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r6b2 = b2 != a2; >r6b2 : boolean @@ -816,7 +816,7 @@ var r6b2 = b2 != a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r6b3 = b3 != a3; >r6b3 : boolean @@ -826,7 +826,7 @@ var r6b3 = b3 != a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r6b4 = b4 != a4; >r6b4 : boolean @@ -836,7 +836,7 @@ var r6b4 = b4 != a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r6b5 = b5 != a5; >r6b5 : boolean @@ -846,7 +846,7 @@ var r6b5 = b5 != a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r6b6 = b6 != a6; >r6b6 : boolean @@ -856,7 +856,7 @@ var r6b6 = b6 != a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator === var r7a1 = a1 === b1; @@ -865,7 +865,7 @@ var r7a1 = a1 === b1; >a1 === b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -875,7 +875,7 @@ var r7a2 = a2 === b2; >a2 === b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -885,7 +885,7 @@ var r7a3 = a3 === b3; >a3 === b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -895,7 +895,7 @@ var r7a4 = a4 === b4; >a4 === b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -905,7 +905,7 @@ var r7a5 = a5 === b5; >a5 === b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -915,7 +915,7 @@ var r7a6 = a6 === b6; >a6 === b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -927,7 +927,7 @@ var r7b1 = b1 === a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r7b2 = b2 === a2; >r7b2 : boolean @@ -937,7 +937,7 @@ var r7b2 = b2 === a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r7b3 = b3 === a3; >r7b3 : boolean @@ -947,7 +947,7 @@ var r7b3 = b3 === a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r7b4 = b4 === a4; >r7b4 : boolean @@ -957,7 +957,7 @@ var r7b4 = b4 === a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r7b5 = b5 === a5; >r7b5 : boolean @@ -967,7 +967,7 @@ var r7b5 = b5 === a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r7b6 = b6 === a6; >r7b6 : boolean @@ -977,7 +977,7 @@ var r7b6 = b6 === a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // operator !== var r8a1 = a1 !== b1; @@ -986,7 +986,7 @@ var r8a1 = a1 !== b1; >a1 !== b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ @@ -996,7 +996,7 @@ var r8a2 = a2 !== b2; >a2 !== b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ @@ -1006,7 +1006,7 @@ var r8a3 = a3 !== b3; >a3 !== b3 : boolean > : ^^^^^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -1016,7 +1016,7 @@ var r8a4 = a4 !== b4; >a4 !== b4 : boolean > : ^^^^^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -1026,7 +1026,7 @@ var r8a5 = a5 !== b5; >a5 !== b5 : boolean > : ^^^^^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -1036,7 +1036,7 @@ var r8a6 = a6 !== b6; >a6 !== b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -1048,7 +1048,7 @@ var r8b1 = b1 !== a1; >b1 : { fn(): string; } > : ^^^^^^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r8b2 = b2 !== a2; >r8b2 : boolean @@ -1058,7 +1058,7 @@ var r8b2 = b2 !== a2; >b2 : { fn(x: string): number; } > : ^^^^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r8b3 = b3 !== a3; >r8b3 : boolean @@ -1068,7 +1068,7 @@ var r8b3 = b3 !== a3; >b3 : { fn(x?: string): number; } > : ^^^^^ ^^^ ^^^ ^^^ >a3 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r8b4 = b4 !== a4; >r8b4 : boolean @@ -1078,7 +1078,7 @@ var r8b4 = b4 !== a4; >b4 : { fn(...x: string[]): number; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a4 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r8b5 = b5 !== a5; >r8b5 : boolean @@ -1088,7 +1088,7 @@ var r8b5 = b5 !== a5; >b5 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a5 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r8b6 = b6 !== a6; >r8b6 : boolean @@ -1098,5 +1098,5 @@ var r8b6 = b6 !== a6; >b6 : { fn(x: Base, y: C): Base; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.types b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.types index ef580e1103e55..bc66d9f10ce6d 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.types @@ -32,7 +32,7 @@ class C { var a1: { new (x: T): T }; >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -42,7 +42,7 @@ var b1: { new (): string }; var a2: { new (x: T): T }; >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -54,7 +54,7 @@ var b2: { new (x: string): number }; var a3: { new (x?: T): T }; >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ @@ -66,7 +66,7 @@ var b3: { new (x?: string): number }; var a4: { new (...x: T[]): T }; >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -78,7 +78,7 @@ var b4: { new (...x: string[]): number }; var a5: { new (x: T, y: T): T }; >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -94,7 +94,7 @@ var b5: { new (x: string, y: number): string }; var a6: { new (x: T, y: U): T }; >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -115,7 +115,7 @@ var r1a1 = a1 < b1; >a1 < b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -125,7 +125,7 @@ var r1a2 = a2 < b2; >a2 < b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -135,7 +135,7 @@ var r1a3 = a3 < b3; >a3 < b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -145,7 +145,7 @@ var r1a4 = a4 < b4; >a4 < b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -155,7 +155,7 @@ var r1a5 = a5 < b5; >a5 < b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -165,7 +165,7 @@ var r1a6 = a6 < b6; >a6 < b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -177,7 +177,7 @@ var r1b1 = b1 < a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b2 = b2 < a2; >r1b2 : boolean @@ -187,7 +187,7 @@ var r1b2 = b2 < a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b3 = b3 < a3; >r1b3 : boolean @@ -197,7 +197,7 @@ var r1b3 = b3 < a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r1b4 = b4 < a4; >r1b4 : boolean @@ -207,7 +207,7 @@ var r1b4 = b4 < a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r1b5 = b5 < a5; >r1b5 : boolean @@ -217,7 +217,7 @@ var r1b5 = b5 < a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r1b6 = b6 < a6; >r1b6 : boolean @@ -227,7 +227,7 @@ var r1b6 = b6 < a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator > var r2a1 = a1 > b1; @@ -236,7 +236,7 @@ var r2a1 = a1 > b1; >a1 > b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -246,7 +246,7 @@ var r2a2 = a2 > b2; >a2 > b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -256,7 +256,7 @@ var r2a3 = a3 > b3; >a3 > b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -266,7 +266,7 @@ var r2a4 = a4 > b4; >a4 > b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -276,7 +276,7 @@ var r2a5 = a5 > b5; >a5 > b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -286,7 +286,7 @@ var r2a6 = a6 > b6; >a6 > b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -298,7 +298,7 @@ var r2b1 = b1 > a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2b2 = b2 > a2; >r2b2 : boolean @@ -308,7 +308,7 @@ var r2b2 = b2 > a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2b3 = b3 > a3; >r2b3 : boolean @@ -318,7 +318,7 @@ var r2b3 = b3 > a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r2b4 = b4 > a4; >r2b4 : boolean @@ -328,7 +328,7 @@ var r2b4 = b4 > a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r2b5 = b5 > a5; >r2b5 : boolean @@ -338,7 +338,7 @@ var r2b5 = b5 > a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r2b6 = b6 > a6; >r2b6 : boolean @@ -348,7 +348,7 @@ var r2b6 = b6 > a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator <= var r3a1 = a1 <= b1; @@ -357,7 +357,7 @@ var r3a1 = a1 <= b1; >a1 <= b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -367,7 +367,7 @@ var r3a2 = a2 <= b2; >a2 <= b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -377,7 +377,7 @@ var r3a3 = a3 <= b3; >a3 <= b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -387,7 +387,7 @@ var r3a4 = a4 <= b4; >a4 <= b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -397,7 +397,7 @@ var r3a5 = a5 <= b5; >a5 <= b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -407,7 +407,7 @@ var r3a6 = a6 <= b6; >a6 <= b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -419,7 +419,7 @@ var r3b1 = b1 <= a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3b2 = b2 <= a2; >r3b2 : boolean @@ -429,7 +429,7 @@ var r3b2 = b2 <= a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3b3 = b3 <= a3; >r3b3 : boolean @@ -439,7 +439,7 @@ var r3b3 = b3 <= a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r3b4 = b4 <= a4; >r3b4 : boolean @@ -449,7 +449,7 @@ var r3b4 = b4 <= a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r3b5 = b5 <= a5; >r3b5 : boolean @@ -459,7 +459,7 @@ var r3b5 = b5 <= a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r3b6 = b6 <= a6; >r3b6 : boolean @@ -469,7 +469,7 @@ var r3b6 = b6 <= a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator >= var r4a1 = a1 >= b1; @@ -478,7 +478,7 @@ var r4a1 = a1 >= b1; >a1 >= b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -488,7 +488,7 @@ var r4a2 = a2 >= b2; >a2 >= b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -498,7 +498,7 @@ var r4a3 = a3 >= b3; >a3 >= b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -508,7 +508,7 @@ var r4a4 = a4 >= b4; >a4 >= b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -518,7 +518,7 @@ var r4a5 = a5 >= b5; >a5 >= b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -528,7 +528,7 @@ var r4a6 = a6 >= b6; >a6 >= b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -540,7 +540,7 @@ var r4b1 = b1 >= a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4b2 = b2 >= a2; >r4b2 : boolean @@ -550,7 +550,7 @@ var r4b2 = b2 >= a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4b3 = b3 >= a3; >r4b3 : boolean @@ -560,7 +560,7 @@ var r4b3 = b3 >= a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r4b4 = b4 >= a4; >r4b4 : boolean @@ -570,7 +570,7 @@ var r4b4 = b4 >= a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r4b5 = b5 >= a5; >r4b5 : boolean @@ -580,7 +580,7 @@ var r4b5 = b5 >= a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r4b6 = b6 >= a6; >r4b6 : boolean @@ -590,7 +590,7 @@ var r4b6 = b6 >= a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator == var r5a1 = a1 == b1; @@ -599,7 +599,7 @@ var r5a1 = a1 == b1; >a1 == b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -609,7 +609,7 @@ var r5a2 = a2 == b2; >a2 == b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -619,7 +619,7 @@ var r5a3 = a3 == b3; >a3 == b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -629,7 +629,7 @@ var r5a4 = a4 == b4; >a4 == b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -639,7 +639,7 @@ var r5a5 = a5 == b5; >a5 == b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -649,7 +649,7 @@ var r5a6 = a6 == b6; >a6 == b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -661,7 +661,7 @@ var r5b1 = b1 == a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r5b2 = b2 == a2; >r5b2 : boolean @@ -671,7 +671,7 @@ var r5b2 = b2 == a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r5b3 = b3 == a3; >r5b3 : boolean @@ -681,7 +681,7 @@ var r5b3 = b3 == a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r5b4 = b4 == a4; >r5b4 : boolean @@ -691,7 +691,7 @@ var r5b4 = b4 == a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r5b5 = b5 == a5; >r5b5 : boolean @@ -701,7 +701,7 @@ var r5b5 = b5 == a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r5b6 = b6 == a6; >r5b6 : boolean @@ -711,7 +711,7 @@ var r5b6 = b6 == a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator != var r6a1 = a1 != b1; @@ -720,7 +720,7 @@ var r6a1 = a1 != b1; >a1 != b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -730,7 +730,7 @@ var r6a2 = a2 != b2; >a2 != b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -740,7 +740,7 @@ var r6a3 = a3 != b3; >a3 != b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -750,7 +750,7 @@ var r6a4 = a4 != b4; >a4 != b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -760,7 +760,7 @@ var r6a5 = a5 != b5; >a5 != b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -770,7 +770,7 @@ var r6a6 = a6 != b6; >a6 != b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -782,7 +782,7 @@ var r6b1 = b1 != a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r6b2 = b2 != a2; >r6b2 : boolean @@ -792,7 +792,7 @@ var r6b2 = b2 != a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r6b3 = b3 != a3; >r6b3 : boolean @@ -802,7 +802,7 @@ var r6b3 = b3 != a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r6b4 = b4 != a4; >r6b4 : boolean @@ -812,7 +812,7 @@ var r6b4 = b4 != a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r6b5 = b5 != a5; >r6b5 : boolean @@ -822,7 +822,7 @@ var r6b5 = b5 != a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r6b6 = b6 != a6; >r6b6 : boolean @@ -832,7 +832,7 @@ var r6b6 = b6 != a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator === var r7a1 = a1 === b1; @@ -841,7 +841,7 @@ var r7a1 = a1 === b1; >a1 === b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -851,7 +851,7 @@ var r7a2 = a2 === b2; >a2 === b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -861,7 +861,7 @@ var r7a3 = a3 === b3; >a3 === b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -871,7 +871,7 @@ var r7a4 = a4 === b4; >a4 === b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -881,7 +881,7 @@ var r7a5 = a5 === b5; >a5 === b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -891,7 +891,7 @@ var r7a6 = a6 === b6; >a6 === b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -903,7 +903,7 @@ var r7b1 = b1 === a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7b2 = b2 === a2; >r7b2 : boolean @@ -913,7 +913,7 @@ var r7b2 = b2 === a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7b3 = b3 === a3; >r7b3 : boolean @@ -923,7 +923,7 @@ var r7b3 = b3 === a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r7b4 = b4 === a4; >r7b4 : boolean @@ -933,7 +933,7 @@ var r7b4 = b4 === a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r7b5 = b5 === a5; >r7b5 : boolean @@ -943,7 +943,7 @@ var r7b5 = b5 === a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r7b6 = b6 === a6; >r7b6 : boolean @@ -953,7 +953,7 @@ var r7b6 = b6 === a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ // operator !== var r8a1 = a1 !== b1; @@ -962,7 +962,7 @@ var r8a1 = a1 !== b1; >a1 !== b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new () => string > : ^^^^^^^^^^ @@ -972,7 +972,7 @@ var r8a2 = a2 !== b2; >a2 !== b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ @@ -982,7 +982,7 @@ var r8a3 = a3 !== b3; >a3 !== b3 : boolean > : ^^^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ @@ -992,7 +992,7 @@ var r8a4 = a4 !== b4; >a4 !== b4 : boolean > : ^^^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ @@ -1002,7 +1002,7 @@ var r8a5 = a5 !== b5; >a5 !== b5 : boolean > : ^^^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -1012,7 +1012,7 @@ var r8a6 = a6 !== b6; >a6 !== b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -1024,7 +1024,7 @@ var r8b1 = b1 !== a1; >b1 : new () => string > : ^^^^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r8b2 = b2 !== a2; >r8b2 : boolean @@ -1034,7 +1034,7 @@ var r8b2 = b2 !== a2; >b2 : new (x: string) => number > : ^^^^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r8b3 = b3 !== a3; >r8b3 : boolean @@ -1044,7 +1044,7 @@ var r8b3 = b3 !== a3; >b3 : new (x?: string) => number > : ^^^^^ ^^^ ^^^^^ >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r8b4 = b4 !== a4; >r8b4 : boolean @@ -1054,7 +1054,7 @@ var r8b4 = b4 !== a4; >b4 : new (...x: string[]) => number > : ^^^^^^^^ ^^ ^^^^^ >a4 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r8b5 = b5 !== a5; >r8b5 : boolean @@ -1064,7 +1064,7 @@ var r8b5 = b5 !== a5; >b5 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r8b6 = b6 !== a6; >r8b6 : boolean @@ -1074,5 +1074,5 @@ var r8b6 = b6 !== a6; >b6 : new (x: Base, y: C) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.types b/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.types index 548498383daa3..ffeac52b8581e 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipTypeParameter.types @@ -43,7 +43,7 @@ var g: any[]; function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types b/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types index 2410b01852ade..eb8129608637f 100644 --- a/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsAny.types @@ -16,7 +16,7 @@ enum E { a, b, c } function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types b/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types index 64f1f9d69b7cc..1d6b192ad66a1 100644 --- a/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsNull.types @@ -13,7 +13,7 @@ enum E { a, b, c } function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types b/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types index 690bb6711871a..668a1911d1333 100644 --- a/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types +++ b/tests/baselines/reference/comparisonOperatorWithOneOperandIsUndefined.types @@ -18,7 +18,7 @@ enum E { a, b, c } function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types index 553082c6e33b2..cee3202e3c581 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedCallSignature.types @@ -23,9 +23,9 @@ class Derived extends Base { var a1: { fn(x: T): T }; >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -39,9 +39,9 @@ var b1: { fn(x: string): string }; var a2: { fn(x: T): T }; >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -57,9 +57,9 @@ var b2: { fn(x: string, y: number): string }; var a3: { fn(x: T, y: U): T }; >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -77,9 +77,9 @@ var b3: { fn(x: string, y: number): string }; var a4: { fn(x?: T): T }; >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >fn : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ @@ -93,9 +93,9 @@ var b4: { fn(x?: string): string }; var a5: { fn(...x: T[]): T }; >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >fn : (...x: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -109,9 +109,9 @@ var b5: { fn(...x: string[]): string }; var a6: { fn(x: T, y: T): T }; >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -145,7 +145,7 @@ var r1a1 = a1 < b1; >a1 < b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -155,7 +155,7 @@ var r1a2 = a2 < b2; >a2 < b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -165,7 +165,7 @@ var r1a3 = a3 < b3; >a3 < b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -175,7 +175,7 @@ var r1a4 = a4 < b4; >a4 < b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -185,7 +185,7 @@ var r1a5 = a5 < b5; >a5 < b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -195,7 +195,7 @@ var r1a6 = a6 < b6; >a6 < b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -209,7 +209,7 @@ var r1b1 = b1 < a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r1b2 = b2 < a2; >r1b2 : boolean @@ -219,7 +219,7 @@ var r1b2 = b2 < a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r1b3 = b3 < a3; >r1b3 : boolean @@ -229,7 +229,7 @@ var r1b3 = b3 < a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r1b4 = b4 < a4; >r1b4 : boolean @@ -239,7 +239,7 @@ var r1b4 = b4 < a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r1b5 = b5 < a5; >r1b5 : boolean @@ -249,7 +249,7 @@ var r1b5 = b5 < a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r1b6 = b6 < a6; >r1b6 : boolean @@ -259,7 +259,7 @@ var r1b6 = b6 < a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r1b7 = b7 < a7; @@ -270,7 +270,7 @@ var r2a1 = a1 > b1; >a1 > b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -280,7 +280,7 @@ var r2a2 = a2 > b2; >a2 > b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -290,7 +290,7 @@ var r2a3 = a3 > b3; >a3 > b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -300,7 +300,7 @@ var r2a4 = a4 > b4; >a4 > b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -310,7 +310,7 @@ var r2a5 = a5 > b5; >a5 > b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -320,7 +320,7 @@ var r2a6 = a6 > b6; >a6 > b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -334,7 +334,7 @@ var r2b1 = b1 > a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r2b2 = b2 > a2; >r2b2 : boolean @@ -344,7 +344,7 @@ var r2b2 = b2 > a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r2b3 = b3 > a3; >r2b3 : boolean @@ -354,7 +354,7 @@ var r2b3 = b3 > a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r2b4 = b4 > a4; >r2b4 : boolean @@ -364,7 +364,7 @@ var r2b4 = b4 > a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r2b5 = b5 > a5; >r2b5 : boolean @@ -374,7 +374,7 @@ var r2b5 = b5 > a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r2b6 = b6 > a6; >r2b6 : boolean @@ -384,7 +384,7 @@ var r2b6 = b6 > a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r2b7 = b7 > a7; @@ -395,7 +395,7 @@ var r3a1 = a1 <= b1; >a1 <= b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -405,7 +405,7 @@ var r3a2 = a2 <= b2; >a2 <= b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -415,7 +415,7 @@ var r3a3 = a3 <= b3; >a3 <= b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -425,7 +425,7 @@ var r3a4 = a4 <= b4; >a4 <= b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -435,7 +435,7 @@ var r3a5 = a5 <= b5; >a5 <= b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -445,7 +445,7 @@ var r3a6 = a6 <= b6; >a6 <= b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -459,7 +459,7 @@ var r3b1 = b1 <= a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r3b2 = b2 <= a2; >r3b2 : boolean @@ -469,7 +469,7 @@ var r3b2 = b2 <= a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r3b3 = b3 <= a3; >r3b3 : boolean @@ -479,7 +479,7 @@ var r3b3 = b3 <= a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r3b4 = b4 <= a4; >r3b4 : boolean @@ -489,7 +489,7 @@ var r3b4 = b4 <= a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r3b5 = b5 <= a5; >r3b5 : boolean @@ -499,7 +499,7 @@ var r3b5 = b5 <= a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r3b6 = b6 <= a6; >r3b6 : boolean @@ -509,7 +509,7 @@ var r3b6 = b6 <= a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r3b7 = b7 <= a7; @@ -520,7 +520,7 @@ var r4a1 = a1 >= b1; >a1 >= b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -530,7 +530,7 @@ var r4a2 = a2 >= b2; >a2 >= b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -540,7 +540,7 @@ var r4a3 = a3 >= b3; >a3 >= b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -550,7 +550,7 @@ var r4a4 = a4 >= b4; >a4 >= b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -560,7 +560,7 @@ var r4a5 = a5 >= b5; >a5 >= b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -570,7 +570,7 @@ var r4a6 = a6 >= b6; >a6 >= b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -584,7 +584,7 @@ var r4b1 = b1 >= a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r4b2 = b2 >= a2; >r4b2 : boolean @@ -594,7 +594,7 @@ var r4b2 = b2 >= a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r4b3 = b3 >= a3; >r4b3 : boolean @@ -604,7 +604,7 @@ var r4b3 = b3 >= a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r4b4 = b4 >= a4; >r4b4 : boolean @@ -614,7 +614,7 @@ var r4b4 = b4 >= a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r4b5 = b5 >= a5; >r4b5 : boolean @@ -624,7 +624,7 @@ var r4b5 = b5 >= a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r4b6 = b6 >= a6; >r4b6 : boolean @@ -634,7 +634,7 @@ var r4b6 = b6 >= a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r4b7 = b7 >= a7; @@ -645,7 +645,7 @@ var r5a1 = a1 == b1; >a1 == b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -655,7 +655,7 @@ var r5a2 = a2 == b2; >a2 == b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -665,7 +665,7 @@ var r5a3 = a3 == b3; >a3 == b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -675,7 +675,7 @@ var r5a4 = a4 == b4; >a4 == b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -685,7 +685,7 @@ var r5a5 = a5 == b5; >a5 == b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -695,7 +695,7 @@ var r5a6 = a6 == b6; >a6 == b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -709,7 +709,7 @@ var r5b1 = b1 == a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r5b2 = b2 == a2; >r5b2 : boolean @@ -719,7 +719,7 @@ var r5b2 = b2 == a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r5b3 = b3 == a3; >r5b3 : boolean @@ -729,7 +729,7 @@ var r5b3 = b3 == a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r5b4 = b4 == a4; >r5b4 : boolean @@ -739,7 +739,7 @@ var r5b4 = b4 == a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r5b5 = b5 == a5; >r5b5 : boolean @@ -749,7 +749,7 @@ var r5b5 = b5 == a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r5b6 = b6 == a6; >r5b6 : boolean @@ -759,7 +759,7 @@ var r5b6 = b6 == a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r5b7 = b7 == a7; @@ -770,7 +770,7 @@ var r6a1 = a1 != b1; >a1 != b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -780,7 +780,7 @@ var r6a2 = a2 != b2; >a2 != b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -790,7 +790,7 @@ var r6a3 = a3 != b3; >a3 != b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -800,7 +800,7 @@ var r6a4 = a4 != b4; >a4 != b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -810,7 +810,7 @@ var r6a5 = a5 != b5; >a5 != b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -820,7 +820,7 @@ var r6a6 = a6 != b6; >a6 != b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -834,7 +834,7 @@ var r6b1 = b1 != a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r6b2 = b2 != a2; >r6b2 : boolean @@ -844,7 +844,7 @@ var r6b2 = b2 != a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r6b3 = b3 != a3; >r6b3 : boolean @@ -854,7 +854,7 @@ var r6b3 = b3 != a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r6b4 = b4 != a4; >r6b4 : boolean @@ -864,7 +864,7 @@ var r6b4 = b4 != a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r6b5 = b5 != a5; >r6b5 : boolean @@ -874,7 +874,7 @@ var r6b5 = b5 != a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r6b6 = b6 != a6; >r6b6 : boolean @@ -884,7 +884,7 @@ var r6b6 = b6 != a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r6b7 = b7 != a7; @@ -895,7 +895,7 @@ var r7a1 = a1 === b1; >a1 === b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -905,7 +905,7 @@ var r7a2 = a2 === b2; >a2 === b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -915,7 +915,7 @@ var r7a3 = a3 === b3; >a3 === b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -925,7 +925,7 @@ var r7a4 = a4 === b4; >a4 === b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -935,7 +935,7 @@ var r7a5 = a5 === b5; >a5 === b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -945,7 +945,7 @@ var r7a6 = a6 === b6; >a6 === b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -959,7 +959,7 @@ var r7b1 = b1 === a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r7b2 = b2 === a2; >r7b2 : boolean @@ -969,7 +969,7 @@ var r7b2 = b2 === a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r7b3 = b3 === a3; >r7b3 : boolean @@ -979,7 +979,7 @@ var r7b3 = b3 === a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r7b4 = b4 === a4; >r7b4 : boolean @@ -989,7 +989,7 @@ var r7b4 = b4 === a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r7b5 = b5 === a5; >r7b5 : boolean @@ -999,7 +999,7 @@ var r7b5 = b5 === a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r7b6 = b6 === a6; >r7b6 : boolean @@ -1009,7 +1009,7 @@ var r7b6 = b6 === a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r7b7 = b7 === a7; @@ -1020,7 +1020,7 @@ var r8a1 = a1 !== b1; >a1 !== b1 : boolean > : ^^^^^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ @@ -1030,7 +1030,7 @@ var r8a2 = a2 !== b2; >a2 !== b2 : boolean > : ^^^^^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -1040,7 +1040,7 @@ var r8a3 = a3 !== b3; >a3 !== b3 : boolean > : ^^^^^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -1050,7 +1050,7 @@ var r8a4 = a4 !== b4; >a4 !== b4 : boolean > : ^^^^^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ @@ -1060,7 +1060,7 @@ var r8a5 = a5 !== b5; >a5 !== b5 : boolean > : ^^^^^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ @@ -1070,7 +1070,7 @@ var r8a6 = a6 !== b6; >a6 !== b6 : boolean > : ^^^^^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ @@ -1084,7 +1084,7 @@ var r8b1 = b1 !== a1; >b1 : { fn(x: string): string; } > : ^^^^^ ^^ ^^^ ^^^ >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r8b2 = b2 !== a2; >r8b2 : boolean @@ -1094,7 +1094,7 @@ var r8b2 = b2 !== a2; >b2 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a2 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ var r8b3 = b3 !== a3; >r8b3 : boolean @@ -1104,7 +1104,7 @@ var r8b3 = b3 !== a3; >b3 : { fn(x: string, y: number): string; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a3 : { fn(x: T, y: U): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var r8b4 = b4 !== a4; >r8b4 : boolean @@ -1114,7 +1114,7 @@ var r8b4 = b4 !== a4; >b4 : { fn(x?: string): string; } > : ^^^^^ ^^^ ^^^ ^^^ >a4 : { fn(x?: T): T; } -> : ^^^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^^ ^^^ var r8b5 = b5 !== a5; >r8b5 : boolean @@ -1124,7 +1124,7 @@ var r8b5 = b5 !== a5; >b5 : { fn(...x: string[]): string; } > : ^^^^^^^^ ^^ ^^^ ^^^ >a5 : { fn(...x: T[]): T; } -> : ^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ var r8b6 = b6 !== a6; >r8b6 : boolean @@ -1134,6 +1134,6 @@ var r8b6 = b6 !== a6; >b6 : { fn(x: string, y: number): {}; } > : ^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a6 : { fn(x: T, y: T): T; } -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ //var r8b7 = b7 !== a7; diff --git a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types index 454954ac0c783..3ddcdd7fdd2a6 100644 --- a/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithSubtypeObjectOnInstantiatedConstructorSignature.types @@ -23,7 +23,7 @@ class Derived extends Base { var a1: { new (x: T): T }; >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -35,7 +35,7 @@ var b1: { new (x: string): string }; var a2: { new (x: T): T }; >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -49,7 +49,7 @@ var b2: { new (x: string, y: number): string }; var a3: { new (x: T, y: U): T }; >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -65,7 +65,7 @@ var b3: { new (x: string, y: number): string }; var a4: { new (x?: T): T }; >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ @@ -77,7 +77,7 @@ var b4: { new (x?: string): string }; var a5: { new (...x: T[]): T }; >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -89,7 +89,7 @@ var b5: { new (...x: string[]): string }; var a6: { new (x: T, y: T): T }; >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -119,7 +119,7 @@ var r1a1 = a1 < b1; >a1 < b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -129,7 +129,7 @@ var r1a2 = a2 < b2; >a2 < b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -139,7 +139,7 @@ var r1a3 = a3 < b3; >a3 < b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -149,7 +149,7 @@ var r1a4 = a4 < b4; >a4 < b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -159,7 +159,7 @@ var r1a5 = a5 < b5; >a5 < b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -169,7 +169,7 @@ var r1a6 = a6 < b6; >a6 < b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -183,7 +183,7 @@ var r1b1 = b1 < a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b2 = b2 < a2; >r1b2 : boolean @@ -193,7 +193,7 @@ var r1b2 = b2 < a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b3 = b3 < a3; >r1b3 : boolean @@ -203,7 +203,7 @@ var r1b3 = b3 < a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r1b4 = b4 < a4; >r1b4 : boolean @@ -213,7 +213,7 @@ var r1b4 = b4 < a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r1b5 = b5 < a5; >r1b5 : boolean @@ -223,7 +223,7 @@ var r1b5 = b5 < a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r1b6 = b6 < a6; >r1b6 : boolean @@ -233,7 +233,7 @@ var r1b6 = b6 < a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r1b7 = b7 < a7; @@ -244,7 +244,7 @@ var r2a1 = a1 > b1; >a1 > b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -254,7 +254,7 @@ var r2a2 = a2 > b2; >a2 > b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -264,7 +264,7 @@ var r2a3 = a3 > b3; >a3 > b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -274,7 +274,7 @@ var r2a4 = a4 > b4; >a4 > b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -284,7 +284,7 @@ var r2a5 = a5 > b5; >a5 > b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -294,7 +294,7 @@ var r2a6 = a6 > b6; >a6 > b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -308,7 +308,7 @@ var r2b1 = b1 > a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2b2 = b2 > a2; >r2b2 : boolean @@ -318,7 +318,7 @@ var r2b2 = b2 > a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2b3 = b3 > a3; >r2b3 : boolean @@ -328,7 +328,7 @@ var r2b3 = b3 > a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r2b4 = b4 > a4; >r2b4 : boolean @@ -338,7 +338,7 @@ var r2b4 = b4 > a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r2b5 = b5 > a5; >r2b5 : boolean @@ -348,7 +348,7 @@ var r2b5 = b5 > a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r2b6 = b6 > a6; >r2b6 : boolean @@ -358,7 +358,7 @@ var r2b6 = b6 > a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r2b7 = b7 > a7; @@ -369,7 +369,7 @@ var r3a1 = a1 <= b1; >a1 <= b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -379,7 +379,7 @@ var r3a2 = a2 <= b2; >a2 <= b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -389,7 +389,7 @@ var r3a3 = a3 <= b3; >a3 <= b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -399,7 +399,7 @@ var r3a4 = a4 <= b4; >a4 <= b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -409,7 +409,7 @@ var r3a5 = a5 <= b5; >a5 <= b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -419,7 +419,7 @@ var r3a6 = a6 <= b6; >a6 <= b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -433,7 +433,7 @@ var r3b1 = b1 <= a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3b2 = b2 <= a2; >r3b2 : boolean @@ -443,7 +443,7 @@ var r3b2 = b2 <= a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3b3 = b3 <= a3; >r3b3 : boolean @@ -453,7 +453,7 @@ var r3b3 = b3 <= a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r3b4 = b4 <= a4; >r3b4 : boolean @@ -463,7 +463,7 @@ var r3b4 = b4 <= a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r3b5 = b5 <= a5; >r3b5 : boolean @@ -473,7 +473,7 @@ var r3b5 = b5 <= a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r3b6 = b6 <= a6; >r3b6 : boolean @@ -483,7 +483,7 @@ var r3b6 = b6 <= a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r3b7 = b7 <= a7; @@ -494,7 +494,7 @@ var r4a1 = a1 >= b1; >a1 >= b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -504,7 +504,7 @@ var r4a2 = a2 >= b2; >a2 >= b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -514,7 +514,7 @@ var r4a3 = a3 >= b3; >a3 >= b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -524,7 +524,7 @@ var r4a4 = a4 >= b4; >a4 >= b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -534,7 +534,7 @@ var r4a5 = a5 >= b5; >a5 >= b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -544,7 +544,7 @@ var r4a6 = a6 >= b6; >a6 >= b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -558,7 +558,7 @@ var r4b1 = b1 >= a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4b2 = b2 >= a2; >r4b2 : boolean @@ -568,7 +568,7 @@ var r4b2 = b2 >= a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4b3 = b3 >= a3; >r4b3 : boolean @@ -578,7 +578,7 @@ var r4b3 = b3 >= a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r4b4 = b4 >= a4; >r4b4 : boolean @@ -588,7 +588,7 @@ var r4b4 = b4 >= a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r4b5 = b5 >= a5; >r4b5 : boolean @@ -598,7 +598,7 @@ var r4b5 = b5 >= a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r4b6 = b6 >= a6; >r4b6 : boolean @@ -608,7 +608,7 @@ var r4b6 = b6 >= a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r4b7 = b7 >= a7; @@ -619,7 +619,7 @@ var r5a1 = a1 == b1; >a1 == b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -629,7 +629,7 @@ var r5a2 = a2 == b2; >a2 == b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -639,7 +639,7 @@ var r5a3 = a3 == b3; >a3 == b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -649,7 +649,7 @@ var r5a4 = a4 == b4; >a4 == b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -659,7 +659,7 @@ var r5a5 = a5 == b5; >a5 == b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -669,7 +669,7 @@ var r5a6 = a6 == b6; >a6 == b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -683,7 +683,7 @@ var r5b1 = b1 == a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r5b2 = b2 == a2; >r5b2 : boolean @@ -693,7 +693,7 @@ var r5b2 = b2 == a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r5b3 = b3 == a3; >r5b3 : boolean @@ -703,7 +703,7 @@ var r5b3 = b3 == a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r5b4 = b4 == a4; >r5b4 : boolean @@ -713,7 +713,7 @@ var r5b4 = b4 == a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r5b5 = b5 == a5; >r5b5 : boolean @@ -723,7 +723,7 @@ var r5b5 = b5 == a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r5b6 = b6 == a6; >r5b6 : boolean @@ -733,7 +733,7 @@ var r5b6 = b6 == a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r5b7 = b7 == a7; @@ -744,7 +744,7 @@ var r6a1 = a1 != b1; >a1 != b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -754,7 +754,7 @@ var r6a2 = a2 != b2; >a2 != b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -764,7 +764,7 @@ var r6a3 = a3 != b3; >a3 != b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -774,7 +774,7 @@ var r6a4 = a4 != b4; >a4 != b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -784,7 +784,7 @@ var r6a5 = a5 != b5; >a5 != b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -794,7 +794,7 @@ var r6a6 = a6 != b6; >a6 != b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -808,7 +808,7 @@ var r6b1 = b1 != a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r6b2 = b2 != a2; >r6b2 : boolean @@ -818,7 +818,7 @@ var r6b2 = b2 != a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r6b3 = b3 != a3; >r6b3 : boolean @@ -828,7 +828,7 @@ var r6b3 = b3 != a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r6b4 = b4 != a4; >r6b4 : boolean @@ -838,7 +838,7 @@ var r6b4 = b4 != a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r6b5 = b5 != a5; >r6b5 : boolean @@ -848,7 +848,7 @@ var r6b5 = b5 != a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r6b6 = b6 != a6; >r6b6 : boolean @@ -858,7 +858,7 @@ var r6b6 = b6 != a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r6b7 = b7 != a7; @@ -869,7 +869,7 @@ var r7a1 = a1 === b1; >a1 === b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -879,7 +879,7 @@ var r7a2 = a2 === b2; >a2 === b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -889,7 +889,7 @@ var r7a3 = a3 === b3; >a3 === b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -899,7 +899,7 @@ var r7a4 = a4 === b4; >a4 === b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -909,7 +909,7 @@ var r7a5 = a5 === b5; >a5 === b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -919,7 +919,7 @@ var r7a6 = a6 === b6; >a6 === b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -933,7 +933,7 @@ var r7b1 = b1 === a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7b2 = b2 === a2; >r7b2 : boolean @@ -943,7 +943,7 @@ var r7b2 = b2 === a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7b3 = b3 === a3; >r7b3 : boolean @@ -953,7 +953,7 @@ var r7b3 = b3 === a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r7b4 = b4 === a4; >r7b4 : boolean @@ -963,7 +963,7 @@ var r7b4 = b4 === a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r7b5 = b5 === a5; >r7b5 : boolean @@ -973,7 +973,7 @@ var r7b5 = b5 === a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r7b6 = b6 === a6; >r7b6 : boolean @@ -983,7 +983,7 @@ var r7b6 = b6 === a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r7b7 = b7 === a7; @@ -994,7 +994,7 @@ var r8a1 = a1 !== b1; >a1 !== b1 : boolean > : ^^^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ @@ -1004,7 +1004,7 @@ var r8a2 = a2 !== b2; >a2 !== b2 : boolean > : ^^^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -1014,7 +1014,7 @@ var r8a3 = a3 !== b3; >a3 !== b3 : boolean > : ^^^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -1024,7 +1024,7 @@ var r8a4 = a4 !== b4; >a4 !== b4 : boolean > : ^^^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ @@ -1034,7 +1034,7 @@ var r8a5 = a5 !== b5; >a5 !== b5 : boolean > : ^^^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ @@ -1044,7 +1044,7 @@ var r8a6 = a6 !== b6; >a6 !== b6 : boolean > : ^^^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -1058,7 +1058,7 @@ var r8b1 = b1 !== a1; >b1 : new (x: string) => string > : ^^^^^ ^^ ^^^^^ >a1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r8b2 = b2 !== a2; >r8b2 : boolean @@ -1068,7 +1068,7 @@ var r8b2 = b2 !== a2; >b2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r8b3 = b3 !== a3; >r8b3 : boolean @@ -1078,7 +1078,7 @@ var r8b3 = b3 !== a3; >b3 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a3 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r8b4 = b4 !== a4; >r8b4 : boolean @@ -1088,7 +1088,7 @@ var r8b4 = b4 !== a4; >b4 : new (x?: string) => string > : ^^^^^ ^^^ ^^^^^ >a4 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ var r8b5 = b5 !== a5; >r8b5 : boolean @@ -1098,7 +1098,7 @@ var r8b5 = b5 !== a5; >b5 : new (...x: string[]) => string > : ^^^^^^^^ ^^ ^^^^^ >a5 : new (...x: T[]) => T -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r8b6 = b6 !== a6; >r8b6 : boolean @@ -1108,6 +1108,6 @@ var r8b6 = b6 !== a6; >b6 : new (x: string, y: number) => {} > : ^^^^^ ^^ ^^ ^^ ^^^^^ >a6 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ //var r8b7 = b7 !== a7; diff --git a/tests/baselines/reference/comparisonOperatorWithTypeParameter.types b/tests/baselines/reference/comparisonOperatorWithTypeParameter.types index 30fa239607b49..af3773bd9785c 100644 --- a/tests/baselines/reference/comparisonOperatorWithTypeParameter.types +++ b/tests/baselines/reference/comparisonOperatorWithTypeParameter.types @@ -11,7 +11,7 @@ var b: Object; function foo(t: T, u: U, v: V) { >foo : (t: T, u: U, v: V) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/complexRecursiveCollections.types b/tests/baselines/reference/complexRecursiveCollections.types index eba0f913b22ab..56152cb70f455 100644 --- a/tests/baselines/reference/complexRecursiveCollections.types +++ b/tests/baselines/reference/complexRecursiveCollections.types @@ -14,7 +14,7 @@ interface Ara { t: T } interface Collection { map(mapper: (value: V, key: K, iter: this) => M): Collection; >map : (mapper: (value: V, key: K, iter: this) => M) => Collection -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -26,7 +26,7 @@ interface Collection { flatMap(mapper: (value: V, key: K, iter: this) => Ara, context?: any): Collection; >flatMap : (mapper: (value: V, key: K, iter: this) => Ara, context?: any) => Collection -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Ara > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -41,7 +41,7 @@ interface Collection { // these seem necessary to push it over the top for memory usage reduce(reducer: (reduction: R, value: V, key: K, iter: this) => R, initialReduction: R, context?: any): R; >reduce : { (reducer: (reduction: R, value: V, key: K, iter: this) => R, initialReduction: R, context?: any): R; (reducer: (reduction: V | R_1, value: V, key: K, iter: this) => R_1): R_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >reducer : (reduction: R, value: V, key: K, iter: this) => R > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >reduction : R @@ -59,7 +59,7 @@ interface Collection { reduce(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; >reduce : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >reducer : (reduction: V | R, value: V, key: K, iter: this) => R > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >reduction : V | R @@ -80,7 +80,7 @@ interface Seq extends Collection { interface N1 extends Collection { map(mapper: (value: T, key: void, iter: this) => M): N1; >map : (mapper: (value: T, key: void, iter: this) => M) => N1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >mapper : (value: T, key: void, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -92,7 +92,7 @@ interface N1 extends Collection { flatMap(mapper: (value: T, key: void, iter: this) => Ara, context?: any): N1; >flatMap : (mapper: (value: T, key: void, iter: this) => Ara, context?: any) => N1 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: void, iter: this) => Ara > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -107,7 +107,7 @@ interface N1 extends Collection { interface N2 extends N1 { map(mapper: (value: T, key: void, iter: this) => M): N2; >map : (mapper: (value: T, key: void, iter: this) => M) => N2 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >mapper : (value: T, key: void, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -119,7 +119,7 @@ interface N2 extends N1 { flatMap(mapper: (value: T, key: void, iter: this) => Ara, context?: any): N2; >flatMap : (mapper: (value: T, key: void, iter: this) => Ara, context?: any) => N2 -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: void, iter: this) => Ara > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -248,7 +248,7 @@ declare module Immutable { function of(...values: Array): List; >of : (...values: Array) => List -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ } @@ -325,7 +325,7 @@ declare module Immutable { update(index: number, notSetValue: T, updater: (value: T) => T): this; >update : { (index: number, notSetValue: T, updater: (value: T) => T): this; (index: number, updater: (value: T) => T): this; (updater: (value: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >index : number > : ^^^^^^ >notSetValue : T @@ -337,7 +337,7 @@ declare module Immutable { update(index: number, updater: (value: T) => T): this; >update : { (index: number, notSetValue: T, updater: (value: T) => T): this; (index: number, updater: (value: T) => T): this; (updater: (value: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >index : number > : ^^^^^^ >updater : (value: T) => T @@ -347,7 +347,7 @@ declare module Immutable { update(updater: (value: this) => R): R; >update : { (index: number, notSetValue: T, updater: (value: T) => T): this; (index: number, updater: (value: T) => T): this; (updater: (value: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >updater : (value: this) => R > : ^ ^^ ^^^^^ >value : this @@ -486,13 +486,13 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): List; >concat : (...valuesOrCollections: Array | C>) => List -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ map(mapper: (value: T, key: number, iter: this) => M, context?: any): List; >map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => List -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -506,7 +506,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: number, iter: this) => Iterable, context?: any): List; >flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => List -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -520,7 +520,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => value is F, context?: any): List; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): List; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -534,7 +534,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): List; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -633,7 +633,7 @@ declare module Immutable { update(key: K, notSetValue: V, updater: (value: V) => V): this; >update : { (key: K, notSetValue: V, updater: (value: V) => V): this; (key: K, updater: (value: V) => V): this; (updater: (value: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >key : K > : ^ >notSetValue : V @@ -645,7 +645,7 @@ declare module Immutable { update(key: K, updater: (value: V) => V): this; >update : { (key: K, notSetValue: V, updater: (value: V) => V): this; (key: K, updater: (value: V) => V): this; (updater: (value: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >key : K > : ^ >updater : (value: V) => V @@ -655,7 +655,7 @@ declare module Immutable { update(updater: (value: this) => R): R; >update : { (key: K, notSetValue: V, updater: (value: V) => V): this; (key: K, updater: (value: V) => V): this; (updater: (value: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >updater : (value: this) => R > : ^ ^^ ^^^^^ >value : this @@ -788,13 +788,13 @@ declare module Immutable { // Sequence algorithms concat(...collections: Array>): Map; >concat : { (...collections: Array>): Map; (...collections: Array<{ [key: string]: C; }>): Map; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : Iterable<[KC, VC]>[] > : ^^^^^^^^^^^^^^^^^^^^ concat(...collections: Array<{[key: string]: C}>): Map; >concat : { (...collections: Array>): Map; (...collections: Array<{ [key: string]: C; }>): Map; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : { [key: string]: C; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -802,7 +802,7 @@ declare module Immutable { map(mapper: (value: V, key: K, iter: this) => M, context?: any): Map; >map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Map -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -816,7 +816,7 @@ declare module Immutable { mapKeys(mapper: (key: K, value: V, iter: this) => M, context?: any): Map; >mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Map -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (key: K, value: V, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K @@ -830,7 +830,7 @@ declare module Immutable { mapEntries(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any): Map; >mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Map -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (entry: [K, V], index: number, iter: this) => [KM, VM] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >entry : [K, V] @@ -844,7 +844,7 @@ declare module Immutable { flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Map; >flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Map -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -858,7 +858,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Map; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Map; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -872,7 +872,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => any, context?: any): this; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Map; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -926,13 +926,13 @@ declare module Immutable { // Sequence algorithms concat(...collections: Array>): OrderedMap; >concat : { (...collections: Array>): OrderedMap; (...collections: Array<{ [key: string]: C; }>): OrderedMap; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : Iterable<[KC, VC]>[] > : ^^^^^^^^^^^^^^^^^^^^ concat(...collections: Array<{[key: string]: C}>): OrderedMap; >concat : { (...collections: Array>): OrderedMap; (...collections: Array<{ [key: string]: C; }>): OrderedMap; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : { [key: string]: C; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -940,7 +940,7 @@ declare module Immutable { map(mapper: (value: V, key: K, iter: this) => M, context?: any): OrderedMap; >map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => OrderedMap -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -954,7 +954,7 @@ declare module Immutable { mapKeys(mapper: (key: K, value: V, iter: this) => M, context?: any): OrderedMap; >mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => OrderedMap -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (key: K, value: V, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K @@ -968,7 +968,7 @@ declare module Immutable { mapEntries(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any): OrderedMap; >mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => OrderedMap -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (entry: [K, V], index: number, iter: this) => [KM, VM] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >entry : [K, V] @@ -982,7 +982,7 @@ declare module Immutable { flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): OrderedMap; >flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => OrderedMap -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -996,7 +996,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): OrderedMap; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): OrderedMap; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -1010,7 +1010,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => any, context?: any): this; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): OrderedMap; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -1034,19 +1034,19 @@ declare module Immutable { function of(...values: Array): Set; >of : (...values: Array) => Set -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ function fromKeys(iter: Collection): Set; >fromKeys : { (iter: Collection): Set; (obj: { [key: string]: any; }): Set; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >iter : Collection > : ^^^^^^^^^^^^^^^^^^ function fromKeys(obj: {[key: string]: any}): Set; >fromKeys : { (iter: Collection): Set; (obj: { [key: string]: any; }): Set; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >obj : { [key: string]: any; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -1054,13 +1054,13 @@ declare module Immutable { function intersect(sets: Iterable>): Set; >intersect : (sets: Iterable>) => Set -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sets : Iterable> > : ^^^^^^^^^^^^^^^^^^^^^ function union(sets: Iterable>): Set; >union : (sets: Iterable>) => Set -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sets : Iterable> > : ^^^^^^^^^^^^^^^^^^^^^ } @@ -1149,13 +1149,13 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Set; >concat : (...valuesOrCollections: Array | C>) => Set -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ map(mapper: (value: T, key: never, iter: this) => M, context?: any): Set; >map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Set -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1169,7 +1169,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: never, iter: this) => Iterable, context?: any): Set; >flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Set -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1183,7 +1183,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => value is F, context?: any): Set; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1197,7 +1197,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1221,19 +1221,19 @@ declare module Immutable { function of(...values: Array): OrderedSet; >of : (...values: Array) => OrderedSet -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ function fromKeys(iter: Collection): OrderedSet; >fromKeys : { (iter: Collection): OrderedSet; (obj: { [key: string]: any; }): OrderedSet; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >iter : Collection > : ^^^^^^^^^^^^^^^^^^ function fromKeys(obj: {[key: string]: any}): OrderedSet; >fromKeys : { (iter: Collection): OrderedSet; (obj: { [key: string]: any; }): OrderedSet; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >obj : { [key: string]: any; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -1257,13 +1257,13 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): OrderedSet; >concat : (...valuesOrCollections: Array | C>) => OrderedSet -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ map(mapper: (value: T, key: never, iter: this) => M, context?: any): OrderedSet; >map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => OrderedSet -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1277,7 +1277,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: never, iter: this) => Iterable, context?: any): OrderedSet; >flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => OrderedSet -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1291,7 +1291,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => value is F, context?: any): OrderedSet; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): OrderedSet; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1305,7 +1305,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): OrderedSet; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1325,7 +1325,7 @@ declare module Immutable { zipWith(zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): OrderedSet; >zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U_1, thirdValue: V) => Z_1, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: Array) => Z_1, ...collections: Array>): OrderedSet; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >zipper : (value: T, otherValue: U) => Z > : ^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1337,7 +1337,7 @@ declare module Immutable { zipWith(zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; >zipWith : { (zipper: (value: T, otherValue: U_1) => Z_1, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: Array) => Z_1, ...collections: Array>): OrderedSet; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >zipper : (value: T, otherValue: U, thirdValue: V) => Z > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1353,7 +1353,7 @@ declare module Immutable { zipWith(zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; >zipWith : { (zipper: (value: T, otherValue: U) => Z_1, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U, thirdValue: V) => Z_1, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >zipper : (...any: Array) => Z > : ^^^^ ^^ ^^^^^ >any : any[] @@ -1373,7 +1373,7 @@ declare module Immutable { function of(...values: Array): Stack; >of : (...values: Array) => Stack -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ } @@ -1457,13 +1457,13 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Stack; >concat : (...valuesOrCollections: Array | C>) => Stack -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ map(mapper: (value: T, key: number, iter: this) => M, context?: any): Stack; >map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Stack -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1477,7 +1477,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: number, iter: this) => Iterable, context?: any): Stack; >flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Stack -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1491,7 +1491,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => value is F, context?: any): Set; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Set; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1505,7 +1505,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Set; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -1531,7 +1531,7 @@ declare module Immutable { export function Repeat(value: T, times?: number): Seq.Indexed; >Repeat : (value: T, times?: number) => Seq.Indexed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >value : T > : ^ >times : number @@ -1580,7 +1580,7 @@ declare module Immutable { get(key: K): T[K]; >get : (key: K) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ @@ -1611,7 +1611,7 @@ declare module Immutable { // Persistent changes set(key: K, value: T[K]): this; >set : (key: K, value: T[K]) => this -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : T[K] @@ -1619,7 +1619,7 @@ declare module Immutable { update(key: K, updater: (value: T[K]) => T[K]): this; >update : (key: K, updater: (value: T[K]) => T[K]) => this -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >updater : (value: T[K]) => T[K] @@ -1669,13 +1669,13 @@ declare module Immutable { delete(key: K): this; >delete : (key: K) => this -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ remove(key: K): this; >remove : (key: K) => this -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ @@ -1804,7 +1804,7 @@ declare module Immutable { function of(...values: Array): Seq.Indexed; >of : (...values: Array) => Seq.Indexed -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ >Seq : any @@ -1813,7 +1813,7 @@ declare module Immutable { export module Keyed {} export function Keyed(collection: Iterable<[K, V]>): Seq.Keyed; >Keyed : { (collection: Iterable<[K, V]>): Seq.Keyed; (obj: { [key: string]: V_1; }): Seq.Keyed; (): Seq.Keyed; (): Seq.Keyed; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ >collection : Iterable<[K, V]> > : ^^^^^^^^^^^^^^^^ >Seq : any @@ -1821,7 +1821,7 @@ declare module Immutable { export function Keyed(obj: {[key: string]: V}): Seq.Keyed; >Keyed : { (collection: Iterable<[K, V_1]>): Seq.Keyed; (obj: { [key: string]: V; }): Seq.Keyed; (): Seq.Keyed; (): Seq.Keyed; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^ ^^^ >obj : { [key: string]: V; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -1831,13 +1831,13 @@ declare module Immutable { export function Keyed(): Seq.Keyed; >Keyed : { (collection: Iterable<[K_1, V_1]>): Seq.Keyed; (obj: { [key: string]: V_1; }): Seq.Keyed; (): Seq.Keyed; (): Seq.Keyed; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ >Seq : any > : ^^^ export function Keyed(): Seq.Keyed; >Keyed : { (collection: Iterable<[K, V]>): Seq.Keyed; (obj: { [key: string]: V; }): Seq.Keyed; (): Seq.Keyed; (): Seq.Keyed; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ >Seq : any > : ^^^ @@ -1861,7 +1861,7 @@ declare module Immutable { concat(...collections: Array>): Seq.Keyed; >concat : { (...collections: Array>): Seq.Keyed; (...collections: Array<{ [key: string]: C; }>): Seq.Keyed; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : Iterable<[KC, VC]>[] > : ^^^^^^^^^^^^^^^^^^^^ >Seq : any @@ -1869,7 +1869,7 @@ declare module Immutable { concat(...collections: Array<{[key: string]: C}>): Seq.Keyed; >concat : { (...collections: Array>): Seq.Keyed; (...collections: Array<{ [key: string]: C; }>): Seq.Keyed; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : { [key: string]: C; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -1879,7 +1879,7 @@ declare module Immutable { map(mapper: (value: V, key: K, iter: this) => M, context?: any): Seq.Keyed; >map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Seq.Keyed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -1895,7 +1895,7 @@ declare module Immutable { mapKeys(mapper: (key: K, value: V, iter: this) => M, context?: any): Seq.Keyed; >mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Seq.Keyed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (key: K, value: V, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K @@ -1911,7 +1911,7 @@ declare module Immutable { mapEntries(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any): Seq.Keyed; >mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Seq.Keyed -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (entry: [K, V], index: number, iter: this) => [KM, VM] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >entry : [K, V] @@ -1927,7 +1927,7 @@ declare module Immutable { flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Seq.Keyed; >flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Seq.Keyed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -1943,7 +1943,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq.Keyed; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq.Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -1959,7 +1959,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => any, context?: any): this; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq.Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -1977,7 +1977,7 @@ declare module Immutable { function of(...values: Array): Seq.Indexed; >of : (...values: Array) => Seq.Indexed -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ >Seq : any @@ -2021,7 +2021,7 @@ declare module Immutable { concat(...valuesOrCollections: Array | C>): Seq.Indexed; >concat : (...valuesOrCollections: Array | C>) => Seq.Indexed -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ >Seq : any @@ -2029,7 +2029,7 @@ declare module Immutable { map(mapper: (value: T, key: number, iter: this) => M, context?: any): Seq.Indexed; >map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Seq.Indexed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2045,7 +2045,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: number, iter: this) => Iterable, context?: any): Seq.Indexed; >flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Seq.Indexed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2061,7 +2061,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => value is F, context?: any): Seq.Indexed; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Seq.Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2077,7 +2077,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Seq.Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2095,7 +2095,7 @@ declare module Immutable { function of(...values: Array): Seq.Set; >of : (...values: Array) => Seq.Set -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >values : T[] > : ^^^ >Seq : any @@ -2139,7 +2139,7 @@ declare module Immutable { concat(...valuesOrCollections: Array | C>): Seq.Set; >concat : (...valuesOrCollections: Array | C>) => Seq.Set -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ >Seq : any @@ -2147,7 +2147,7 @@ declare module Immutable { map(mapper: (value: T, key: never, iter: this) => M, context?: any): Seq.Set; >map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Seq.Set -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2163,7 +2163,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: never, iter: this) => Iterable, context?: any): Seq.Set; >flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Seq.Set -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2179,7 +2179,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => value is F, context?: any): Seq.Set; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Seq.Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2195,7 +2195,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Seq.Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2279,7 +2279,7 @@ declare module Immutable { // Sequence algorithms map(mapper: (value: V, key: K, iter: this) => M, context?: any): Seq; >map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Seq -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2293,7 +2293,7 @@ declare module Immutable { flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Seq; >flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Seq -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2307,7 +2307,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2321,7 +2321,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => any, context?: any): this; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Seq; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2372,7 +2372,7 @@ declare module Immutable { export module Keyed {} export function Keyed(collection: Iterable<[K, V]>): Collection.Keyed; >Keyed : { (collection: Iterable<[K, V]>): Collection.Keyed; (obj: { [key: string]: V_1; }): Collection.Keyed; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >collection : Iterable<[K, V]> > : ^^^^^^^^^^^^^^^^ >Collection : any @@ -2380,7 +2380,7 @@ declare module Immutable { export function Keyed(obj: {[key: string]: V}): Collection.Keyed; >Keyed : { (collection: Iterable<[K, V_1]>): Collection.Keyed; (obj: { [key: string]: V; }): Collection.Keyed; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj : { [key: string]: V; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -2412,7 +2412,7 @@ declare module Immutable { concat(...collections: Array>): Collection.Keyed; >concat : { (...collections: Array>): Collection.Keyed; (...collections: Array<{ [key: string]: C; }>): Collection.Keyed; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : Iterable<[KC, VC]>[] > : ^^^^^^^^^^^^^^^^^^^^ >Collection : any @@ -2420,7 +2420,7 @@ declare module Immutable { concat(...collections: Array<{[key: string]: C}>): Collection.Keyed; >concat : { (...collections: Array>): Collection.Keyed; (...collections: Array<{ [key: string]: C; }>): Collection.Keyed; } -> : ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >collections : { [key: string]: C; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -2430,7 +2430,7 @@ declare module Immutable { map(mapper: (value: V, key: K, iter: this) => M, context?: any): Collection.Keyed; >map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Collection.Keyed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2446,7 +2446,7 @@ declare module Immutable { mapKeys(mapper: (key: K, value: V, iter: this) => M, context?: any): Collection.Keyed; >mapKeys : (mapper: (key: K, value: V, iter: this) => M, context?: any) => Collection.Keyed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (key: K, value: V, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K @@ -2462,7 +2462,7 @@ declare module Immutable { mapEntries(mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any): Collection.Keyed; >mapEntries : (mapper: (entry: [K, V], index: number, iter: this) => [KM, VM], context?: any) => Collection.Keyed -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (entry: [K, V], index: number, iter: this) => [KM, VM] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >entry : [K, V] @@ -2478,7 +2478,7 @@ declare module Immutable { flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Collection.Keyed; >flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Collection.Keyed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2494,7 +2494,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection.Keyed; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection.Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2510,7 +2510,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => any, context?: any): this; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection.Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -2535,7 +2535,7 @@ declare module Immutable { export module Indexed {} export function Indexed(collection: Iterable): Collection.Indexed; >Indexed : (collection: Iterable) => Collection.Indexed -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >collection : Iterable > : ^^^^^^^^^^^ >Collection : any @@ -2553,7 +2553,7 @@ declare module Immutable { // Reading values get(index: number, notSetValue: NSV): T | NSV; >get : { (index: number, notSetValue: NSV): T | NSV; (index: number): T | undefined; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >index : number > : ^^^^^^ >notSetValue : NSV @@ -2561,7 +2561,7 @@ declare module Immutable { get(index: number): T | undefined; >get : { (index: number, notSetValue: NSV): T | NSV; (index: number): T | undefined; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >index : number > : ^^^^^^ @@ -2611,7 +2611,7 @@ declare module Immutable { zipWith(zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Collection.Indexed; >zipWith : { (zipper: (value: T, otherValue: U) => Z, otherCollection: Collection): Collection.Indexed; (zipper: (value: T, otherValue: U_1, thirdValue: V) => Z_1, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; (zipper: (...any: Array) => Z_1, ...collections: Array>): Collection.Indexed; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >zipper : (value: T, otherValue: U) => Z > : ^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2625,7 +2625,7 @@ declare module Immutable { zipWith(zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; >zipWith : { (zipper: (value: T, otherValue: U_1) => Z_1, otherCollection: Collection): Collection.Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; (zipper: (...any: Array) => Z_1, ...collections: Array>): Collection.Indexed; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >zipper : (value: T, otherValue: U, thirdValue: V) => Z > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2643,7 +2643,7 @@ declare module Immutable { zipWith(zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; >zipWith : { (zipper: (value: T, otherValue: U) => Z_1, otherCollection: Collection): Collection.Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z_1, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; (zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >zipper : (...any: Array) => Z > : ^^^^ ^^ ^^^^^ >any : any[] @@ -2697,7 +2697,7 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Collection.Indexed; >concat : (...valuesOrCollections: Array | C>) => Collection.Indexed -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ >Collection : any @@ -2705,7 +2705,7 @@ declare module Immutable { map(mapper: (value: T, key: number, iter: this) => M, context?: any): Collection.Indexed; >map : (mapper: (value: T, key: number, iter: this) => M, context?: any) => Collection.Indexed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2721,7 +2721,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: number, iter: this) => Iterable, context?: any): Collection.Indexed; >flatMap : (mapper: (value: T, key: number, iter: this) => Iterable, context?: any) => Collection.Indexed -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: number, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2737,7 +2737,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => value is F, context?: any): Collection.Indexed; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Collection.Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2753,7 +2753,7 @@ declare module Immutable { filter(predicate: (value: T, index: number, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, index: number, iter: this) => value is F, context?: any): Collection.Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2778,7 +2778,7 @@ declare module Immutable { export module Set {} export function Set(collection: Iterable): Collection.Set; >Set : (collection: Iterable) => Collection.Set -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >collection : Iterable > : ^^^^^^^^^^^ >Collection : any @@ -2802,7 +2802,7 @@ declare module Immutable { // Sequence algorithms concat(...valuesOrCollections: Array | C>): Collection.Set; >concat : (...valuesOrCollections: Array | C>) => Collection.Set -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >valuesOrCollections : (C | Iterable)[] > : ^^^^^^^^^^^^^^^^^^^ >Collection : any @@ -2810,7 +2810,7 @@ declare module Immutable { map(mapper: (value: T, key: never, iter: this) => M, context?: any): Collection.Set; >map : (mapper: (value: T, key: never, iter: this) => M, context?: any) => Collection.Set -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2826,7 +2826,7 @@ declare module Immutable { flatMap(mapper: (value: T, key: never, iter: this) => Iterable, context?: any): Collection.Set; >flatMap : (mapper: (value: T, key: never, iter: this) => Iterable, context?: any) => Collection.Set -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: T, key: never, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2842,7 +2842,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => value is F, context?: any): Collection.Set; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Collection.Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2858,7 +2858,7 @@ declare module Immutable { filter(predicate: (value: T, key: never, iter: this) => any, context?: any): this; >filter : { (predicate: (value: T, key: never, iter: this) => value is F, context?: any): Collection.Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -2920,7 +2920,7 @@ declare module Immutable { // Reading values get(key: K, notSetValue: NSV): V | NSV; >get : { (key: K, notSetValue: NSV): V | NSV; (key: K): V | undefined; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >key : K > : ^ >notSetValue : NSV @@ -2928,7 +2928,7 @@ declare module Immutable { get(key: K): V | undefined; >get : { (key: K, notSetValue: NSV): V | NSV; (key: K): V | undefined; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >key : K > : ^ @@ -2976,7 +2976,7 @@ declare module Immutable { // Persistent changes update(updater: (value: this) => R): R; >update : (updater: (value: this) => R) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >updater : (value: this) => R > : ^ ^^ ^^^^^ >value : this @@ -3088,7 +3088,7 @@ declare module Immutable { // Sequence algorithms map(mapper: (value: V, key: K, iter: this) => M, context?: any): Collection; >map : (mapper: (value: V, key: K, iter: this) => M, context?: any) => Collection -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => M > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3102,7 +3102,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => value is F > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3116,7 +3116,7 @@ declare module Immutable { filter(predicate: (value: V, key: K, iter: this) => any, context?: any): this; >filter : { (predicate: (value: V, key: K, iter: this) => value is F, context?: any): Collection; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3158,7 +3158,7 @@ declare module Immutable { sortBy(comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number): this; >sortBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => this -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >comparatorValueMapper : (value: V, key: K, iter: this) => C > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3176,7 +3176,7 @@ declare module Immutable { groupBy(grouper: (value: V, key: K, iter: this) => G, context?: any): /*Map*/Seq.Keyed>; >groupBy : (grouper: (value: V, key: K, iter: this) => G, context?: any) => Seq.Keyed> -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >grouper : (value: V, key: K, iter: this) => G > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3323,7 +3323,7 @@ declare module Immutable { flatMap(mapper: (value: V, key: K, iter: this) => Iterable, context?: any): Collection; >flatMap : (mapper: (value: V, key: K, iter: this) => Iterable, context?: any) => Collection -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >mapper : (value: V, key: K, iter: this) => Iterable > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3338,7 +3338,7 @@ declare module Immutable { // Reducing a value reduce(reducer: (reduction: R, value: V, key: K, iter: this) => R, initialReduction: R, context?: any): R; >reduce : { (reducer: (reduction: R, value: V, key: K, iter: this) => R, initialReduction: R, context?: any): R; (reducer: (reduction: V | R_1, value: V, key: K, iter: this) => R_1): R_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >reducer : (reduction: R, value: V, key: K, iter: this) => R > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >reduction : R @@ -3356,7 +3356,7 @@ declare module Immutable { reduce(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; >reduce : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >reducer : (reduction: V | R, value: V, key: K, iter: this) => R > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >reduction : V | R @@ -3370,7 +3370,7 @@ declare module Immutable { reduceRight(reducer: (reduction: R, value: V, key: K, iter: this) => R, initialReduction: R, context?: any): R; >reduceRight : { (reducer: (reduction: R, value: V, key: K, iter: this) => R, initialReduction: R, context?: any): R; (reducer: (reduction: V | R_1, value: V, key: K, iter: this) => R_1): R_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >reducer : (reduction: R, value: V, key: K, iter: this) => R > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >reduction : R @@ -3388,7 +3388,7 @@ declare module Immutable { reduceRight(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; >reduceRight : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >reducer : (reduction: V | R, value: V, key: K, iter: this) => R > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >reduction : V | R @@ -3458,7 +3458,7 @@ declare module Immutable { countBy(grouper: (value: V, key: K, iter: this) => G, context?: any): Map; >countBy : (grouper: (value: V, key: K, iter: this) => G, context?: any) => Map -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >grouper : (value: V, key: K, iter: this) => G > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3587,7 +3587,7 @@ declare module Immutable { maxBy(comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number): V | undefined; >maxBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => V | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >comparatorValueMapper : (value: V, key: K, iter: this) => C > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -3615,7 +3615,7 @@ declare module Immutable { minBy(comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number): V | undefined; >minBy : (comparatorValueMapper: (value: V, key: K, iter: this) => C, comparator?: (valueA: C, valueB: C) => number) => V | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >comparatorValueMapper : (value: V, key: K, iter: this) => C > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V diff --git a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types index bfb1d6d746566..a93bb264809a9 100644 --- a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types +++ b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types @@ -71,7 +71,7 @@ export type NewChannel = Pick & export function makeNewChannel(type: T): NewChannel> { >makeNewChannel : (type: T) => NewChannel> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >type : T > : ^ @@ -96,7 +96,7 @@ const newTextChannel = makeNewChannel('text'); >makeNewChannel('text') : NewChannel > : ^^^^^^^^^^^^^^^^^^^^^^^ >makeNewChannel : (type: T) => NewChannel> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'text' : "text" > : ^^^^^^ @@ -119,7 +119,7 @@ const newTextChannel2 : NewChannel = makeNewChannel('text'); >makeNewChannel('text') : NewChannel > : ^^^^^^^^^^^^^^^^^^^^^^^ >makeNewChannel : (type: T) => NewChannel> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'text' : "text" > : ^^^^^^ diff --git a/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types b/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types index f1114d508acbc..eab9d3c6912d8 100644 --- a/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types +++ b/tests/baselines/reference/complicatedIndexesOfIntersectionsAreInferencable.types @@ -19,7 +19,7 @@ interface FormikConfig { declare function Func( >Func : (x: (string extends "validate" | "initialValues" | keyof ExtraProps ? Readonly & ExtraProps> : Pick & ExtraProps>, "validate" | "initialValues" | Exclude> & Partial & ExtraProps>, "validateOnChange" | Extract>>)) => void -> : ^ ^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ x: (string extends "validate" | "initialValues" | keyof ExtraProps >x : string extends "validate" | "initialValues" | keyof ExtraProps ? Readonly & ExtraProps> : Pick & ExtraProps>, "validate" | "initialValues" | Exclude> & Partial & ExtraProps>, "validateOnChange" | Extract>> @@ -34,7 +34,7 @@ Func({ >Func({ initialValues: { foo: "" }, validate: props => { props.foo; }}) : void > : ^^^^ >Func : (x: (string extends "validate" | "initialValues" | keyof ExtraProps ? Readonly & ExtraProps> : Pick & ExtraProps>, "validate" | "initialValues" | Exclude> & Partial & ExtraProps>, "validateOnChange" | Extract>>)) => void -> : ^ ^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ initialValues: { foo: "" }, validate: props => { props.foo; }} : { initialValues: { foo: string; }; validate: (props: { foo: string; }) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/compositeContextualSignature.types b/tests/baselines/reference/compositeContextualSignature.types index 4fabb5fc1abaa..8c3663f757851 100644 --- a/tests/baselines/reference/compositeContextualSignature.types +++ b/tests/baselines/reference/compositeContextualSignature.types @@ -5,7 +5,7 @@ function f(v: ReadonlyArray) { } >f : (v: ReadonlyArray) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >v : readonly T[] > : ^^^^^^^^^^^^ @@ -13,7 +13,7 @@ f([ >f([ [ undefined, () => { }, ], [ 1, () => { console.log('Hello') }, ],]) : void > : ^^^^ >f : (v: ReadonlyArray) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >[ [ undefined, () => { }, ], [ 1, () => { console.log('Hello') }, ],] : (((() => void) | undefined)[] | (number | (() => void))[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/compositeGenericFunction.types b/tests/baselines/reference/compositeGenericFunction.types index 26d92ea93f944..b3a1b81b1fda0 100644 --- a/tests/baselines/reference/compositeGenericFunction.types +++ b/tests/baselines/reference/compositeGenericFunction.types @@ -3,7 +3,7 @@ === compositeGenericFunction.ts === function f(value: T) { return value; }; >f : (value: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >value : T > : ^ >value : T @@ -11,7 +11,7 @@ function f(value: T) { return value; }; function h(func: (x: number) => R): R { return null; } >h : (func: (x: number) => R) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (x: number) => R > : ^ ^^ ^^^^^ >x : number @@ -23,9 +23,9 @@ var z: number = h(f); >h(f) : number > : ^^^^^^ >h : (func: (x: number) => R) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (value: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var z: number = h(f); >z : number @@ -33,7 +33,7 @@ var z: number = h(f); >h(f) : number > : ^^^^^^ >h : (func: (x: number) => R) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (value: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ diff --git a/tests/baselines/reference/computedPropertyNames48_ES5.types b/tests/baselines/reference/computedPropertyNames48_ES5.types index c3729ec41f0bf..ca12b0efb1c25 100644 --- a/tests/baselines/reference/computedPropertyNames48_ES5.types +++ b/tests/baselines/reference/computedPropertyNames48_ES5.types @@ -3,7 +3,7 @@ === computedPropertyNames48_ES5.ts === declare function extractIndexer(p: { [n: number]: T }): T; >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : { [n: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >n : number @@ -22,7 +22,7 @@ extractIndexer({ >extractIndexer({ [a]: ""}) : string > : ^^^^^^ >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ [a]: ""} : { [x: number]: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -39,7 +39,7 @@ extractIndexer({ >extractIndexer({ [E.x]: ""}) : string > : ^^^^^^ >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ [E.x]: ""} : { 0: string; } > : ^^^^^^^^^^^^^^ @@ -61,7 +61,7 @@ extractIndexer({ >extractIndexer({ ["" || 0]: ""}) : string > : ^^^^^^ >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ ["" || 0]: ""} : { 0: string; } > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/computedPropertyNames48_ES6.types b/tests/baselines/reference/computedPropertyNames48_ES6.types index 4c0d97a7815c0..dc1f38efe1e6d 100644 --- a/tests/baselines/reference/computedPropertyNames48_ES6.types +++ b/tests/baselines/reference/computedPropertyNames48_ES6.types @@ -3,7 +3,7 @@ === computedPropertyNames48_ES6.ts === declare function extractIndexer(p: { [n: number]: T }): T; >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : { [n: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >n : number @@ -22,7 +22,7 @@ extractIndexer({ >extractIndexer({ [a]: ""}) : string > : ^^^^^^ >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ [a]: ""} : { [x: number]: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -39,7 +39,7 @@ extractIndexer({ >extractIndexer({ [E.x]: ""}) : string > : ^^^^^^ >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ [E.x]: ""} : { 0: string; } > : ^^^^^^^^^^^^^^ @@ -61,7 +61,7 @@ extractIndexer({ >extractIndexer({ ["" || 0]: ""}) : string > : ^^^^^^ >extractIndexer : (p: { [n: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ ["" || 0]: ""} : { 0: string; } > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/computedPropertyNames51_ES5.types b/tests/baselines/reference/computedPropertyNames51_ES5.types index 47b5b473a0855..458221d2143c9 100644 --- a/tests/baselines/reference/computedPropertyNames51_ES5.types +++ b/tests/baselines/reference/computedPropertyNames51_ES5.types @@ -3,7 +3,7 @@ === computedPropertyNames51_ES5.ts === function f() { >f : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var t: T; >t : T diff --git a/tests/baselines/reference/computedPropertyNames51_ES6.types b/tests/baselines/reference/computedPropertyNames51_ES6.types index 6f4734ba6294f..aa9311cf2d0b4 100644 --- a/tests/baselines/reference/computedPropertyNames51_ES6.types +++ b/tests/baselines/reference/computedPropertyNames51_ES6.types @@ -3,7 +3,7 @@ === computedPropertyNames51_ES6.ts === function f() { >f : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var t: T; >t : T diff --git a/tests/baselines/reference/computedPropertyNames9_ES5.types b/tests/baselines/reference/computedPropertyNames9_ES5.types index a6307cdf10b54..710fc3d157c3c 100644 --- a/tests/baselines/reference/computedPropertyNames9_ES5.types +++ b/tests/baselines/reference/computedPropertyNames9_ES5.types @@ -3,25 +3,25 @@ === computedPropertyNames9_ES5.ts === function f(s: string): string; >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >s : string > : ^^^^^^ function f(n: number): number; >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >n : number > : ^^^^^^ function f(x: T): T; >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ function f(x): any { } >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : any > : ^^^ @@ -37,7 +37,7 @@ var v = { >f("") : string > : ^^^^^^ >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"" : "" > : ^^ >0 : 0 @@ -49,7 +49,7 @@ var v = { >f(0) : number > : ^^^^^^ >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ >0 : 0 @@ -61,7 +61,7 @@ var v = { >f(true) : true > : ^^^^ >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >true : true > : ^^^^ >0 : 0 diff --git a/tests/baselines/reference/computedPropertyNames9_ES6.types b/tests/baselines/reference/computedPropertyNames9_ES6.types index f4113d070a58e..369ae364253c4 100644 --- a/tests/baselines/reference/computedPropertyNames9_ES6.types +++ b/tests/baselines/reference/computedPropertyNames9_ES6.types @@ -3,25 +3,25 @@ === computedPropertyNames9_ES6.ts === function f(s: string): string; >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >s : string > : ^^^^^^ function f(n: number): number; >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >n : number > : ^^^^^^ function f(x: T): T; >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ function f(x): any { } >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : any > : ^^^ @@ -37,7 +37,7 @@ var v = { >f("") : string > : ^^^^^^ >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"" : "" > : ^^ >0 : 0 @@ -49,7 +49,7 @@ var v = { >f(0) : number > : ^^^^^^ >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ >0 : 0 @@ -61,7 +61,7 @@ var v = { >f(true) : true > : ^^^^ >f : { (s: string): string; (n: number): number; (x: T): T; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >true : true > : ^^^^ >0 : 0 diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types index 46a48f1958f3d..0a3db6db10a06 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType6_ES5.types @@ -9,7 +9,7 @@ interface I { declare function foo(obj: I): T >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : I > : ^^^^ @@ -17,7 +17,7 @@ foo({ >foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | (() => void) | number[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | true | (() => void) | number[]; [x: number]: number | (() => void) | number[]; p: string; 0: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types index 5a92a5e64cb0d..ad5e355c6894e 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType6_ES6.types @@ -9,7 +9,7 @@ interface I { declare function foo(obj: I): T >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : I > : ^^^^ @@ -17,7 +17,7 @@ foo({ >foo({ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : string | number | boolean | (() => void) | number[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ p: "", 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: string | number | true | (() => void) | number[]; [x: number]: number | (() => void) | number[]; p: string; 0: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types index a66a079a392cb..5c52ee5d9bb71 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType7_ES5.types @@ -14,13 +14,13 @@ interface J { declare function foo(obj: I): T; >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : I > : ^^^^ declare function g(obj: J): T; >g : (obj: J) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : J > : ^^^^ @@ -28,7 +28,7 @@ foo({ >foo({ 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | (() => void) | number[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: number | boolean | (() => void) | number[]; [x: number]: number | (() => void) | number[]; 0: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -80,7 +80,7 @@ g({ p: "" }); >g({ p: "" }) : string > : ^^^^^^ >g : (obj: J) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ p: "" } : { p: string; } > : ^^^^^^^^^^^^^^ >p : string diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types index 7598bb927f06a..f4ae9e09bf6de 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types +++ b/tests/baselines/reference/computedPropertyNamesContextualType7_ES6.types @@ -14,13 +14,13 @@ interface J { declare function foo(obj: I): T; >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : I > : ^^^^ declare function g(obj: J): T; >g : (obj: J) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : J > : ^^^^ @@ -28,7 +28,7 @@ foo({ >foo({ 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]}) : number | (() => void) | number[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0]} : { [x: string]: number | boolean | (() => void) | number[]; [x: number]: number | (() => void) | number[]; 0: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -80,7 +80,7 @@ g({ p: "" }); >g({ p: "" }) : string > : ^^^^^^ >g : (obj: J) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ p: "" } : { p: string; } > : ^^^^^^^^^^^^^^ >p : string diff --git a/tests/baselines/reference/concatError.types b/tests/baselines/reference/concatError.types index 116168a81693e..e7120090c95ba 100644 --- a/tests/baselines/reference/concatError.types +++ b/tests/baselines/reference/concatError.types @@ -23,11 +23,11 @@ fa = fa.concat([0]); >fa.concat([0]) : number[] > : ^^^^^^^^ >fa.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >fa : number[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >[0] : number[] > : ^^^^^^^^ >0 : 0 @@ -41,11 +41,11 @@ fa = fa.concat(0); >fa.concat(0) : number[] > : ^^^^^^^^ >fa.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >fa : number[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/concatTuples.types b/tests/baselines/reference/concatTuples.types index 2c2d51bba4bfb..9d19070ebc65f 100644 --- a/tests/baselines/reference/concatTuples.types +++ b/tests/baselines/reference/concatTuples.types @@ -21,11 +21,11 @@ ijs = ijs.concat([[3, 4], [5, 6]]); >ijs.concat([[3, 4], [5, 6]]) : [number, number][] > : ^^^^^^^^^^^^^^^^^^ >ijs.concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^ >ijs : [number, number][] > : ^^^^^^^^^^^^^^^^^^ >concat : { (...items: ConcatArray<[number, number]>[]): [number, number][]; (...items: ([number, number] | ConcatArray<[number, number]>)[]): [number, number][]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^ >[[3, 4], [5, 6]] : [number, number][] > : ^^^^^^^^^^^^^^^^^^ >[3, 4] : [number, number] diff --git a/tests/baselines/reference/conditionalTypeAssignabilityWhenDeferred.types b/tests/baselines/reference/conditionalTypeAssignabilityWhenDeferred.types index 52645c7bfcb5c..30395f5f6a3c7 100644 --- a/tests/baselines/reference/conditionalTypeAssignabilityWhenDeferred.types +++ b/tests/baselines/reference/conditionalTypeAssignabilityWhenDeferred.types @@ -10,7 +10,7 @@ export type FilterPropsByType = { function select< >select : >(property: T, list: TList[], valueProp: TValueProp) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ T extends string | number, TList extends object, @@ -25,7 +25,7 @@ function select< export function func(x: XX, tipos: { value: XX }[]) { >func : (x: XX, tipos: { value: XX; }[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : XX > : ^^ >tipos : { value: XX; }[] @@ -37,7 +37,7 @@ export function func(x: XX, tipos: { value: XX }[]) { >select(x, tipos, "value") : void > : ^^^^ >select : >(property: T, list: TList[], valueProp: TValueProp) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : XX > : ^^ >tipos : { value: XX; }[] @@ -48,7 +48,7 @@ export function func(x: XX, tipos: { value: XX }[]) { declare function onlyNullablePlease( >onlyNullablePlease : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ value: T >value : T @@ -58,7 +58,7 @@ declare function onlyNullablePlease( declare function onlyNullablePlease2< >onlyNullablePlease2 : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ T extends [null] extends [T] ? any : never >(value: T): void; @@ -73,7 +73,7 @@ onlyNullablePlease(z); // works as expected >onlyNullablePlease(z) : void > : ^^^^ >onlyNullablePlease : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >z : string | null > : ^^^^^^^^^^^^^ @@ -81,7 +81,7 @@ onlyNullablePlease2(z); // works as expected >onlyNullablePlease2(z) : void > : ^^^^ >onlyNullablePlease2 : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >z : string | null > : ^^^^^^^^^^^^^ @@ -93,7 +93,7 @@ onlyNullablePlease(y); // error as expected >onlyNullablePlease(y) : void > : ^^^^ >onlyNullablePlease : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : string > : ^^^^^^ @@ -101,13 +101,13 @@ onlyNullablePlease2(y); // error as expected >onlyNullablePlease2(y) : void > : ^^^^ >onlyNullablePlease2 : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : string > : ^^^^^^ function f(t: T) { >f : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -135,7 +135,7 @@ function f(t: T) { >onlyNullablePlease(x) : void > : ^^^^ >onlyNullablePlease : (value: T_1) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T | null > : ^^^^^^^^ @@ -143,14 +143,14 @@ function f(t: T) { >onlyNullablePlease2(x) : void > : ^^^^ >onlyNullablePlease2 : (value: T_1) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T | null > : ^^^^^^^^ } function f2(t1: { x: T; y: T }, t2: T extends T ? { x: T; y: T } : never) { >f2 : (t1: { x: T; y: T; }, t2: T extends T ? { x: T; y: T; } : never) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t1 : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -189,7 +189,7 @@ type Foo = T extends true ? string : "a"; function test(x: Foo, s: string) { >test : (x: Foo, s: string) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Foo > : ^^^^^^ >s : string @@ -350,7 +350,7 @@ type Unwrap = T extends Wrapped ? U : T; declare function set( >set : (obj: T, key: K, value: Unwrap) => Unwrap -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ obj: T, >obj : T @@ -382,7 +382,7 @@ class Foo2 { >set(this, "prop", "hi") : Unwrap > : ^^^^^^^^^^^^^^^^^^^^ >set : (obj: T, key: K, value: Unwrap) => Unwrap -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >this : this > : ^^^^ >"prop" : "prop" @@ -396,7 +396,7 @@ set(new Foo2(), "prop", "hi"); // <-- typechecks >set(new Foo2(), "prop", "hi") : string > : ^^^^^^ >set : (obj: T, key: K, value: Unwrap) => Unwrap -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >new Foo2() : Foo2 > : ^^^^ >Foo2 : typeof Foo2 @@ -417,7 +417,7 @@ type InferBecauseWhyNot = [T] extends [(p: infer P1) => any] function f3 any>(x: Q): InferBecauseWhyNot { >f3 : any>(x: Q) => InferBecauseWhyNot -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : any > : ^^^ >x : Q @@ -439,7 +439,7 @@ type InferBecauseWhyNotDistributive = T extends (p: infer P1) => any function f4 any>( >f4 : any>(x: Q) => InferBecauseWhyNotDistributive -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : any > : ^^^ diff --git a/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types index a56552dfb5913..306bf9bf45c52 100644 --- a/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types +++ b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types @@ -3,13 +3,13 @@ === conditionalTypeBasedContextualTypeReturnTypeWidening.ts === declare function useState1(initialState: (S extends (() => any) ? never : S) | (() => S)): S; // No args >useState1 : (initialState: (S extends (() => any) ? never : S) | (() => S)) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >initialState : (S extends () => any ? never : S) | (() => S) > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ declare function useState2(initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)): S; // Any args >useState2 : (initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >initialState : (S extends (...args: any[]) => any ? never : S) | (() => S) > : ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ >args : any[] @@ -21,7 +21,7 @@ const func1 = useState1(() => () => 0); >useState1(() => () => 0) : () => 0 > : ^^^^^^^ >useState1 : (initialState: (S extends (() => any) ? never : S) | (() => S)) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => () => 0 : () => () => 0 > : ^^^^^^^^^^^^^ >() => 0 : () => 0 @@ -35,7 +35,7 @@ const func2 = useState2(() => () => 0); >useState2(() => () => 0) : () => 0 > : ^^^^^^^ >useState2 : (initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => () => 0 : () => () => 0 > : ^^^^^^^^^^^^^ >() => 0 : () => 0 @@ -45,13 +45,13 @@ const func2 = useState2(() => () => 0); declare function useState3(initialState: (T extends (() => any) ? never : T) | (() => S)): S; // No args >useState3 : (initialState: (T extends (() => any) ? never : T) | (() => S)) => S -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >initialState : (T extends () => any ? never : T) | (() => S) > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ declare function useState4(initialState: (T extends ((...args: any[]) => any) ? never : T) | (() => S)): S; // Any args >useState4 : (initialState: (T extends ((...args: any[]) => any) ? never : T) | (() => S)) => S -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >initialState : (T extends (...args: any[]) => any ? never : T) | (() => S) > : ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ >args : any[] @@ -63,7 +63,7 @@ const func3 = useState1(() => () => 0); >useState1(() => () => 0) : () => 0 > : ^^^^^^^ >useState1 : (initialState: (S extends (() => any) ? never : S) | (() => S)) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => () => 0 : () => () => 0 > : ^^^^^^^^^^^^^ >() => 0 : () => 0 @@ -77,7 +77,7 @@ const func4 = useState2(() => () => 0); >useState2(() => () => 0) : () => 0 > : ^^^^^^^ >useState2 : (initialState: (S extends ((...args: any[]) => any) ? never : S) | (() => S)) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => () => 0 : () => () => 0 > : ^^^^^^^^^^^^^ >() => 0 : () => 0 diff --git a/tests/baselines/reference/conditionalTypeContextualTypeSimplificationsSuceeds.types b/tests/baselines/reference/conditionalTypeContextualTypeSimplificationsSuceeds.types index 03d0a271a3c65..392e674ba2d7b 100644 --- a/tests/baselines/reference/conditionalTypeContextualTypeSimplificationsSuceeds.types +++ b/tests/baselines/reference/conditionalTypeContextualTypeSimplificationsSuceeds.types @@ -12,7 +12,7 @@ interface Props { function bad

( >bad :

(attrs: string extends keyof P ? { [K in keyof P]: P[K]; } : { [K in keyof P]: P[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ attrs: string extends keyof P ? { [K in keyof P]: P[K] } : { [K in keyof P]: P[K] }) { } >attrs : string extends keyof P ? { [K in keyof P]: P[K]; } : { [K_1 in keyof P]: P[K_1]; } @@ -20,7 +20,7 @@ function bad

( function good1

( >good1 :

(attrs: string extends keyof P ? P : { [K in keyof P]: P[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ attrs: string extends keyof P ? P : { [K in keyof P]: P[K] }) { } >attrs : string extends keyof P ? P : { [K in keyof P]: P[K]; } @@ -28,7 +28,7 @@ function good1

( function good2

( >good2 :

(attrs: { [K in keyof P]: P[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ attrs: { [K in keyof P]: P[K] }) { } >attrs : { [K in keyof P]: P[K]; } @@ -38,7 +38,7 @@ bad({ when: value => false }); >bad({ when: value => false }) : void > : ^^^^ >bad :

(attrs: string extends keyof P ? { [K in keyof P]: P[K]; } : { [K in keyof P]: P[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ when: value => false } : { when: (value: string) => false; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ >when : (value: string) => false @@ -54,7 +54,7 @@ good1({ when: value => false }); >good1({ when: value => false }) : void > : ^^^^ >good1 :

(attrs: string extends keyof P ? P : { [K in keyof P]: P[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ when: value => false } : { when: (value: string) => false; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ >when : (value: string) => false @@ -70,7 +70,7 @@ good2({ when: value => false }); >good2({ when: value => false }) : void > : ^^^^ >good2 :

(attrs: { [K in keyof P]: P[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ when: value => false } : { when: (value: string) => false; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ >when : (value: string) => false diff --git a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types index b53132a7c94ba..08671738f547a 100644 --- a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types +++ b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types @@ -20025,7 +20025,7 @@ type ChildrenOf = T['children'][number]; export function makeThing( >makeThing : (name: T, children?: ChildrenOf>[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ name: T, >name : T diff --git a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types index cf591a358dfca..749ca48323019 100644 --- a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types +++ b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types @@ -57,7 +57,7 @@ export enum PubSubRecordIsStoredInRedisAsA { name: (t?: TYPE) => BuildPubSubRecordType >name : (t?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >t : TYPE > : ^^^^ >name : TYPE @@ -66,17 +66,17 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildNameFieldConstructor = (soFar: SO_FAR) => ( >buildNameFieldConstructor : (soFar: SO_FAR) => { name?: undefined; } | { name: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >(soFar: SO_FAR) => ( "name" in soFar ? {} : { name: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE}) as BuildPubSubRecordType } ) : (soFar: SO_FAR) => { name?: undefined; } | { name: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ >( "name" in soFar ? {} : { name: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE}) as BuildPubSubRecordType } ) : {} | { name: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ "name" in soFar ? {} : { >"name" in soFar ? {} : { name: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE}) as BuildPubSubRecordType } : {} | { name: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >"name" in soFar : boolean > : ^^^^^^^ >"name" : "name" @@ -86,13 +86,13 @@ export enum PubSubRecordIsStoredInRedisAsA { >{} : {} > : ^^ >{ name: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE}) as BuildPubSubRecordType } : { name: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ name: (instance: TYPE = undefined) => >name : (instance?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >(instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE}) as BuildPubSubRecordType : (instance?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >instance : TYPE > : ^^^^ >undefined : undefined @@ -104,17 +104,17 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE}) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {name: instance as TYPE}) as SO_FAR & {name: TYPE} : SO_FAR & { name: TYPE; } > : ^^^^^^^^^^^^^^^^^ ^^^ >Object.assign({}, soFar, {name: instance as TYPE}) : SO_FAR & { name: TYPE; } > : ^^^^^^^^^^^^^^^^^ ^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR @@ -161,9 +161,9 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildStoredAsConstructor = (soFar: SO_FAR) => ( >buildStoredAsConstructor : (soFar: SO_FAR) => { storedAsJsonEncodedRedisString?: undefined; storedAsRedisHash?: undefined; } | { storedAsJsonEncodedRedisString: () => BuildPubSubRecordType; storedAsRedisHash: () => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >(soFar: SO_FAR) => ( "storedAs" in soFar ? {} : { storedAsJsonEncodedRedisString: () => buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString})) as BuildPubSubRecordType, storedAsRedisHash: () => buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.redisHash})) as BuildPubSubRecordType, } ) : (soFar: SO_FAR) => { storedAsJsonEncodedRedisString?: undefined; storedAsRedisHash?: undefined; } | { storedAsJsonEncodedRedisString: () => BuildPubSubRecordType; storedAsRedisHash: () => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ >( "storedAs" in soFar ? {} : { storedAsJsonEncodedRedisString: () => buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString})) as BuildPubSubRecordType, storedAsRedisHash: () => buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.redisHash})) as BuildPubSubRecordType, } ) : {} | { storedAsJsonEncodedRedisString: () => BuildPubSubRecordType; storedAsRedisHash: () => BuildPubSubRecordType; } @@ -195,15 +195,15 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString})) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.jsonEncodedRedisString}) : SO_FAR & { storedAs: PubSubRecordIsStoredInRedisAsA; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR @@ -237,15 +237,15 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.redisHash})) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {storedAs: PubSubRecordIsStoredInRedisAsA.redisHash}) : SO_FAR & { storedAs: PubSubRecordIsStoredInRedisAsA; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR @@ -283,7 +283,7 @@ export enum PubSubRecordIsStoredInRedisAsA { identifier: >(t?: TYPE) => BuildPubSubRecordType >identifier : >(t?: TYPE) => BuildPubSubRecordType -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >t : TYPE > : ^^^^ >identifier : TYPE @@ -293,17 +293,17 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildIdentifierFieldConstructor = (soFar: SO_FAR) => ( >buildIdentifierFieldConstructor : (soFar: SO_FAR) => { identifier?: undefined; } | { identifier: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >(soFar: SO_FAR) => ( "identifier" in soFar || (!("record" in soFar)) ? {} : { identifier: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE}) as BuildPubSubRecordType } ) : (soFar: SO_FAR) => { identifier?: undefined; } | { identifier: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ >( "identifier" in soFar || (!("record" in soFar)) ? {} : { identifier: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE}) as BuildPubSubRecordType } ) : {} | { identifier: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ "identifier" in soFar || (!("record" in soFar)) ? {} : { >"identifier" in soFar || (!("record" in soFar)) ? {} : { identifier: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE}) as BuildPubSubRecordType } : {} | { identifier: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >"identifier" in soFar || (!("record" in soFar)) : boolean > : ^^^^^^^ >"identifier" in soFar : boolean @@ -327,13 +327,13 @@ export enum PubSubRecordIsStoredInRedisAsA { >{} : {} > : ^^ >{ identifier: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE}) as BuildPubSubRecordType } : { identifier: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ identifier: (instance: TYPE = undefined) => >identifier : (instance?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >(instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE}) as BuildPubSubRecordType : (instance?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >instance : TYPE > : ^^^^ >undefined : undefined @@ -345,17 +345,17 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE}) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {identifier: instance as TYPE}) as SO_FAR & {identifier: TYPE} : SO_FAR & { identifier: TYPE; } > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >Object.assign({}, soFar, {identifier: instance as TYPE}) : SO_FAR & Record<"record", unknown> & { identifier: TYPE; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR & Record<"record", unknown> @@ -385,7 +385,7 @@ export enum PubSubRecordIsStoredInRedisAsA { record: (t?: TYPE) => BuildPubSubRecordType >record : (t?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >t : TYPE > : ^^^^ >record : TYPE @@ -394,17 +394,17 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildRecordFieldConstructor = (soFar: SO_FAR) => ( >buildRecordFieldConstructor : (soFar: SO_FAR) => { record?: undefined; } | { record: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >(soFar: SO_FAR) => ( "record" in soFar ? {} : { record: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE}) as BuildPubSubRecordType } ) : (soFar: SO_FAR) => { record?: undefined; } | { record: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ >( "record" in soFar ? {} : { record: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE}) as BuildPubSubRecordType } ) : {} | { record: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ "record" in soFar ? {} : { >"record" in soFar ? {} : { record: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE}) as BuildPubSubRecordType } : {} | { record: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >"record" in soFar : boolean > : ^^^^^^^ >"record" : "record" @@ -414,13 +414,13 @@ export enum PubSubRecordIsStoredInRedisAsA { >{} : {} > : ^^ >{ record: (instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE}) as BuildPubSubRecordType } : { record: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ record: (instance: TYPE = undefined) => >record : (instance?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >(instance: TYPE = undefined) => buildPubSubRecordType(Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE}) as BuildPubSubRecordType : (instance?: TYPE) => BuildPubSubRecordType -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >instance : TYPE > : ^^^^ >undefined : undefined @@ -432,17 +432,17 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE}) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {record: instance as TYPE}) as SO_FAR & {record: TYPE} : SO_FAR & { record: TYPE; } > : ^^^^^^^^^^^^^^^^^^^ ^^^ >Object.assign({}, soFar, {record: instance as TYPE}) : SO_FAR & { record: TYPE; } > : ^^^^^^^^^^^^^^^^^^^ ^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR @@ -487,9 +487,9 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildMaxMsToWaitBeforePublishingFieldConstructor = (soFar: SO_FAR): MaxMsToWaitBeforePublishingFieldConstructor => ( >buildMaxMsToWaitBeforePublishingFieldConstructor : (soFar: SO_FAR) => MaxMsToWaitBeforePublishingFieldConstructor -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >(soFar: SO_FAR): MaxMsToWaitBeforePublishingFieldConstructor => ( "maxMsToWaitBeforePublishing" in soFar ? {} : { maxMsToWaitBeforePublishing: (instance: number = 0) => buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: instance})) as BuildPubSubRecordType, neverDelayPublishing: () => buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: 0})) as BuildPubSubRecordType, } ) as MaxMsToWaitBeforePublishingFieldConstructor : (soFar: SO_FAR) => MaxMsToWaitBeforePublishingFieldConstructor -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >soFar : SO_FAR > : ^^^^^^ >( "maxMsToWaitBeforePublishing" in soFar ? {} : { maxMsToWaitBeforePublishing: (instance: number = 0) => buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: instance})) as BuildPubSubRecordType, neverDelayPublishing: () => buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: 0})) as BuildPubSubRecordType, } ) as MaxMsToWaitBeforePublishingFieldConstructor : MaxMsToWaitBeforePublishingFieldConstructor @@ -527,15 +527,15 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: instance})) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {maxMsToWaitBeforePublishing: instance}) : SO_FAR & { maxMsToWaitBeforePublishing: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR @@ -561,15 +561,15 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType(Object.assign({}, soFar, {maxMsToWaitBeforePublishing: 0})) : BuildPubSubRecordType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildPubSubRecordType : (soFar: SO_FAR_1) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >Object.assign({}, soFar, {maxMsToWaitBeforePublishing: 0}) : SO_FAR & { maxMsToWaitBeforePublishing: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >soFar : SO_FAR @@ -617,9 +617,9 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildType = (soFar: SO_FAR) => ( >buildType : (soFar: SO_FAR) => { type?: undefined; fields?: undefined; hasField?: undefined; } | { type: SO_FAR; fields: () => Set; hasField: (fieldName: string | number | symbol) => boolean; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ >(soFar: SO_FAR) => ( "identifier" in soFar && "object" in soFar && "maxMsToWaitBeforePublishing" in soFar && "PubSubRecordIsStoredInRedisAsA" in soFar ? {} : { type: soFar, fields: () => new Set(Object.keys(soFar) as (keyof SO_FAR)[]), hasField: (fieldName: string | number | symbol) => fieldName in soFar } ) : (soFar: SO_FAR) => { type?: undefined; fields?: undefined; hasField?: undefined; } | { type: SO_FAR; fields: () => Set; hasField: (fieldName: string | number | symbol) => boolean; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ >soFar : SO_FAR > : ^^^^^^ >( "identifier" in soFar && "object" in soFar && "maxMsToWaitBeforePublishing" in soFar && "PubSubRecordIsStoredInRedisAsA" in soFar ? {} : { type: soFar, fields: () => new Set(Object.keys(soFar) as (keyof SO_FAR)[]), hasField: (fieldName: string | number | symbol) => fieldName in soFar } ) : {} | { type: SO_FAR; fields: () => Set; hasField: (fieldName: string | number | symbol) => boolean; } @@ -720,9 +720,9 @@ export enum PubSubRecordIsStoredInRedisAsA { const buildPubSubRecordType = (soFar: SO_FAR) => Object.assign( >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >(soFar: SO_FAR) => Object.assign( {}, buildNameFieldConstructor(soFar), buildIdentifierFieldConstructor(soFar), buildRecordFieldConstructor(soFar), buildStoredAsConstructor(soFar), buildMaxMsToWaitBeforePublishingFieldConstructor(soFar), buildType(soFar) ) as BuildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >soFar : SO_FAR > : ^^^^^^ >Object.assign( {}, buildNameFieldConstructor(soFar), buildIdentifierFieldConstructor(soFar), buildRecordFieldConstructor(soFar), buildStoredAsConstructor(soFar), buildMaxMsToWaitBeforePublishingFieldConstructor(soFar), buildType(soFar) ) as BuildPubSubRecordType : BuildPubSubRecordType @@ -730,11 +730,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >Object.assign( {}, buildNameFieldConstructor(soFar), buildIdentifierFieldConstructor(soFar), buildRecordFieldConstructor(soFar), buildStoredAsConstructor(soFar), buildMaxMsToWaitBeforePublishingFieldConstructor(soFar), buildType(soFar) ) : any > : ^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ {}, >{} : {} @@ -744,7 +744,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildNameFieldConstructor(soFar) : { name?: undefined; } | { name: (instance?: TYPE) => BuildPubSubRecordType; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildNameFieldConstructor : (soFar: SO_FAR_1) => { name?: undefined; } | { name: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ @@ -752,7 +752,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildIdentifierFieldConstructor(soFar) : { identifier?: undefined; } | { identifier: (instance?: TYPE) => BuildPubSubRecordType; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildIdentifierFieldConstructor : (soFar: SO_FAR_1) => { identifier?: undefined; } | { identifier: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ @@ -760,7 +760,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildRecordFieldConstructor(soFar) : { record?: undefined; } | { record: (instance?: TYPE) => BuildPubSubRecordType; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildRecordFieldConstructor : (soFar: SO_FAR_1) => { record?: undefined; } | { record: (instance?: TYPE) => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ @@ -768,7 +768,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildStoredAsConstructor(soFar) : { storedAsJsonEncodedRedisString?: undefined; storedAsRedisHash?: undefined; } | { storedAsJsonEncodedRedisString: () => BuildPubSubRecordType; storedAsRedisHash: () => BuildPubSubRecordType; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >buildStoredAsConstructor : (soFar: SO_FAR_1) => { storedAsJsonEncodedRedisString?: undefined; storedAsRedisHash?: undefined; } | { storedAsJsonEncodedRedisString: () => BuildPubSubRecordType; storedAsRedisHash: () => BuildPubSubRecordType; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >soFar : SO_FAR > : ^^^^^^ @@ -776,7 +776,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildMaxMsToWaitBeforePublishingFieldConstructor(soFar) : MaxMsToWaitBeforePublishingFieldConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >buildMaxMsToWaitBeforePublishingFieldConstructor : (soFar: SO_FAR_1) => MaxMsToWaitBeforePublishingFieldConstructor -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >soFar : SO_FAR > : ^^^^^^ @@ -784,7 +784,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildType(soFar) : { type?: undefined; fields?: undefined; hasField?: undefined; } | { type: SO_FAR; fields: () => Set; hasField: (fieldName: string | number | symbol) => boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ >buildType : (soFar: SO_FAR_1) => { type?: undefined; fields?: undefined; hasField?: undefined; } | { type: SO_FAR_1; fields: () => Set; hasField: (fieldName: string | number | symbol) => boolean; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ >soFar : SO_FAR > : ^^^^^^ @@ -795,7 +795,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >buildPubSubRecordType({}) : BuildPubSubRecordType<{}> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >buildPubSubRecordType : (soFar: SO_FAR) => BuildPubSubRecordType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >{} : {} > : ^^ diff --git a/tests/baselines/reference/conditionalTypeRelaxingConstraintAssignability.types b/tests/baselines/reference/conditionalTypeRelaxingConstraintAssignability.types index b9fd8f3398815..fcc611c34f462 100644 --- a/tests/baselines/reference/conditionalTypeRelaxingConstraintAssignability.types +++ b/tests/baselines/reference/conditionalTypeRelaxingConstraintAssignability.types @@ -108,7 +108,7 @@ type DeepPartial = declare function f(t: T, partial: DeepPartial): T; >f : (t: T, partial: DeepPartial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >partial : DeepPartial @@ -126,7 +126,7 @@ function g(p1: I, p2: Partial): I { >f(p1, p2) : I > : ^ >f : (t: T, partial: DeepPartial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >p1 : I > : ^ >p2 : Partial diff --git a/tests/baselines/reference/conditionalTypeSimplification.types b/tests/baselines/reference/conditionalTypeSimplification.types index 6c2ea38b5d448..4cf955c822060 100644 --- a/tests/baselines/reference/conditionalTypeSimplification.types +++ b/tests/baselines/reference/conditionalTypeSimplification.types @@ -6,13 +6,13 @@ interface AbstractSchema { m1 (v: T): SchemaType>; >m1 : (v: T) => SchemaType> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >v : T > : ^ m2 (v: T): SchemaType; >m2 : (v: T) => SchemaType -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >v : T > : ^ } diff --git a/tests/baselines/reference/conditionalTypeSubclassExtendsTypeParam.types b/tests/baselines/reference/conditionalTypeSubclassExtendsTypeParam.types index 3725dc4053ba3..05a9318672f3d 100644 --- a/tests/baselines/reference/conditionalTypeSubclassExtendsTypeParam.types +++ b/tests/baselines/reference/conditionalTypeSubclassExtendsTypeParam.types @@ -7,7 +7,7 @@ declare class Model { public getField2(): Field >getField2 : () => Field -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } declare class Field { diff --git a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types index 056b20f5d7826..e7fa3508896cb 100644 --- a/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types +++ b/tests/baselines/reference/conditionalTypeVarianceBigArrayConstraintsPerformance.types @@ -25,7 +25,7 @@ type Stuff = function F(p1: Stuff, p2: Stuff) { >F : (p1: Stuff, p2: Stuff) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >p1 : Stuff > : ^^^^^^^^ >p2 : Stuff diff --git a/tests/baselines/reference/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index d2b47907af5d2..86897c89bd8b6 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -30,7 +30,7 @@ type T05 = NonNullable<(() => string) | string[] | null | undefined>; // (() => function f1(x: T, y: NonNullable) { >f1 : (x: T, y: NonNullable) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : NonNullable @@ -55,7 +55,7 @@ function f1(x: T, y: NonNullable) { function f2(x: T, y: NonNullable) { >f2 : (x: T, y: NonNullable) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : NonNullable @@ -92,7 +92,7 @@ function f2(x: T, y: NonNullable) { function f3(x: Partial[keyof T], y: NonNullable[keyof T]>) { >f3 : (x: Partial[keyof T], y: NonNullable[keyof T]>) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Partial[keyof T] > : ^^^^^^^^^^^^^^^^^^^ >y : NonNullable[keyof T]> @@ -117,7 +117,7 @@ function f3(x: Partial[keyof T], y: NonNullable[keyof T]>) { function f4(x: T["x"], y: NonNullable) { >f4 : (x: T["x"], y: NonNullable) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : string | undefined > : ^^^^^^^^^^^^^^^^^^ >x : T["x"] @@ -212,7 +212,7 @@ type T15 = Extract; // never declare function f5(p: K): Extract; >f5 : (p: K) => Extract -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >p : K > : ^ >k : K @@ -224,7 +224,7 @@ let x0 = f5("a"); // { k: "a", a: number } >f5("a") : { k: "a"; a: number; } > : ^^^^^ ^^^^^ ^^^ >f5 : (p: K) => Extract -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >"a" : "a" > : ^^^ @@ -360,7 +360,7 @@ type T31 = NonFunctionProperties; function f7(x: T, y: FunctionProperties, z: NonFunctionProperties) { >f7 : (x: T, y: FunctionProperties, z: NonFunctionProperties) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : FunctionProperties @@ -419,7 +419,7 @@ function f7(x: T, y: FunctionProperties, z: NonFunctionProperties) { function f8(x: keyof T, y: FunctionPropertyNames, z: NonFunctionPropertyNames) { >f8 : (x: keyof T, y: FunctionPropertyNames, z: NonFunctionPropertyNames) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : keyof T > : ^^^^^^^ >y : FunctionPropertyNames @@ -620,7 +620,7 @@ type ZeroOf = T extends number ? 0 : T exte function zeroOf(value: T) { >zeroOf : (value: T) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ @@ -659,7 +659,7 @@ function zeroOf(value: T) { function f20(n: number, b: boolean, x: number | boolean, y: T) { >f20 : (n: number, b: boolean, x: number | boolean, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : number > : ^^^^^^ >b : boolean @@ -673,7 +673,7 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf(5) : 0 > : ^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >5 : 5 > : ^ @@ -681,7 +681,7 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf("hello") : "" > : ^^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -689,7 +689,7 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf(true) : false > : ^^^^^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -697,7 +697,7 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf(n) : 0 > : ^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >n : number > : ^^^^^^ @@ -705,7 +705,7 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf(b) : false > : ^^^^^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : boolean > : ^^^^^^^ @@ -713,7 +713,7 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf(x) : false | 0 > : ^^^^^^^^^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number | boolean > : ^^^^^^^^^^^^^^^^ @@ -721,14 +721,14 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) >zeroOf(y) : ZeroOf > : ^^^^^^^^^ >zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : T > : ^ } function f21(x: T, y: ZeroOf) { >f21 : (x: T, y: ZeroOf) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : ZeroOf @@ -1031,7 +1031,7 @@ type T52 = IsNever; // false function f22(x: T extends (infer U)[] ? U[] : never) { >f22 : (x: T extends (infer U)[] ? U[] : never) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T extends (infer U)[] ? U[] : never > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1048,7 +1048,7 @@ function f22(x: T extends (infer U)[] ? U[] : never) { function f23(x: T extends (infer U)[] ? U[] : never) { >f23 : (x: T extends (infer U)[] ? U[] : never) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T extends (infer U)[] ? U[] : never > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1203,9 +1203,9 @@ type Bar = T extends string ? boolean : number; const convert = (value: Foo): Bar => value; >convert : (value: Foo) => Bar -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(value: Foo): Bar => value : (value: Foo) => Bar -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Foo > : ^^^^^^ >value : Foo @@ -1217,9 +1217,9 @@ type Baz = Foo; const convert2 = (value: Foo): Baz => value; >convert2 : (value: Foo) => Baz -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(value: Foo): Baz => value : (value: Foo) => Baz -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Foo > : ^^^^^^ >value : Foo @@ -1300,9 +1300,9 @@ type T91 = T extends 0 ? 0 : () => 0; const f40 = (a: T90): T91 => a; >f40 : (a: T90) => T91 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(a: T90): T91 => a : (a: T90) => T91 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T90 > : ^^^^^^ >a : T90 @@ -1310,9 +1310,9 @@ const f40 = (a: T90): T91 => a; const f41 = (a: T91): T90 => a; >f41 : (a: T91) => T90 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(a: T91): T90 => a : (a: T91) => T90 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T91 > : ^^^^^^ >a : T91 @@ -1328,9 +1328,9 @@ type T93 = T extends () => 0 ? () => 1 : () => 2; const f42 = (a: T92): T93 => a; >f42 : (a: T92) => T93 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(a: T92): T93 => a : (a: T92) => T93 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T92 > : ^^^^^^ >a : T92 @@ -1338,9 +1338,9 @@ const f42 = (a: T92): T93 => a; const f43 = (a: T93): T92 => a; >f43 : (a: T93) => T92 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(a: T93): T92 => a : (a: T93) => T92 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T93 > : ^^^^^^ >a : T93 @@ -1358,9 +1358,9 @@ type T95 = T extends string ? boolean : number; const f44 = (value: T94): T95 => value; >f44 : (value: T94) => T95 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(value: T94): T95 => value : (value: T94) => T95 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T94 > : ^^^^^^ >value : T94 @@ -1368,9 +1368,9 @@ const f44 = (value: T94): T95 => value; const f45 = (value: T95): T94 => value; // Error >f45 : (value: T95) => T94 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(value: T95): T94 => value : (value: T95) => T94 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T95 > : ^^^^^^ >value : T95 @@ -1539,7 +1539,7 @@ type RecursivePartial = { declare function assign(o: T, a: RecursivePartial): void; >assign : (o: T, a: RecursivePartial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >o : T > : ^ >a : RecursivePartial @@ -1577,7 +1577,7 @@ assign(a, {o: 2, c: {0: {a: 2, c: '213123'}}}) >assign(a, {o: 2, c: {0: {a: 2, c: '213123'}}}) : void > : ^^^^ >assign : (o: T, a: RecursivePartial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : { o: number; b: number; c: { a: number; c: string; }[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{o: 2, c: {0: {a: 2, c: '213123'}}} : { o: number; c: { 0: { a: number; c: string; }; }; } diff --git a/tests/baselines/reference/conditionalTypes2.types b/tests/baselines/reference/conditionalTypes2.types index 420f38399194e..a3938c7a09a69 100644 --- a/tests/baselines/reference/conditionalTypes2.types +++ b/tests/baselines/reference/conditionalTypes2.types @@ -21,7 +21,7 @@ interface Invariant { function f1(a: Covariant, b: Covariant) { >f1 : (a: Covariant, b: Covariant) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : Covariant > : ^^^^^^^^^^^^ >b : Covariant @@ -46,7 +46,7 @@ function f1(a: Covariant, b: Covariant) { function f2(a: Contravariant, b: Contravariant) { >f2 : (a: Contravariant, b: Contravariant) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : Contravariant > : ^^^^^^^^^^^^^^^^ >b : Contravariant @@ -71,7 +71,7 @@ function f2(a: Contravariant, b: Contravariant) { function f3(a: Invariant, b: Invariant) { >f3 : (a: Invariant, b: Invariant) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : Invariant > : ^^^^^^^^^^^^ >b : Invariant @@ -97,7 +97,7 @@ function f3(a: Invariant, b: Invariant) { // Extract is a T that is known to be a Function function isFunction(value: T): value is Extract { >isFunction : (value: T) => value is Extract -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -114,7 +114,7 @@ function isFunction(value: T): value is Extract { function getFunction(item: T) { >getFunction : (item: T) => Extract -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >item : T > : ^ @@ -122,7 +122,7 @@ function getFunction(item: T) { >isFunction(item) : boolean > : ^^^^^^^ >isFunction : (value: T_1) => value is Extract -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >item : T > : ^ @@ -139,7 +139,7 @@ function getFunction(item: T) { function f10(x: T) { >f10 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -147,7 +147,7 @@ function f10(x: T) { >isFunction(x) : boolean > : ^^^^^^^ >isFunction : (value: T_1) => value is Extract -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -175,7 +175,7 @@ function f11(x: string | (() => string) | undefined) { >isFunction(x) : boolean > : ^^^^^^^ >isFunction : (value: T) => value is Extract -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | (() => string) | undefined > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ @@ -199,7 +199,7 @@ function f12(x: string | (() => string) | undefined) { >getFunction(x) : () => string > : ^^^^^^ >getFunction : (item: T) => Extract -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string | (() => string) | undefined > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ @@ -248,7 +248,7 @@ type Extract2 = T extends U ? T extends V ? T : never : never; function f20(x: Extract, Bar>, y: Extract, z: Extract2) { >f20 : (x: Extract, Bar>, y: Extract, z: Extract2) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Extract, Bar> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >y : Extract @@ -283,7 +283,7 @@ function f20(x: Extract, Bar>, y: Extract, z: E function f21(x: Extract, Bar>, y: Extract, z: Extract2) { >f21 : (x: Extract, Bar>, y: Extract, z: Extract2) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Extract, Bar> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >y : Extract @@ -356,7 +356,7 @@ class Vector implements Seq { } partition2(predicate:(v:T)=>v is U): [Vector,Vector>]; >partition2 : { (predicate: (v: T) => v is U): [Vector, Vector>]; (predicate: (x: T) => boolean): [Vector, Vector]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >predicate : (v: T) => v is U > : ^ ^^ ^^^^^ >v : T @@ -364,7 +364,7 @@ class Vector implements Seq { partition2(predicate:(x:T)=>boolean): [Vector,Vector]; >partition2 : { (predicate: (v: T) => v is U): [Vector, Vector>]; (predicate: (x: T) => boolean): [Vector, Vector]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >predicate : (x: T) => boolean > : ^ ^^ ^^^^^ >x : T @@ -372,7 +372,7 @@ class Vector implements Seq { partition2(predicate:(v:T)=>boolean): [Vector,Vector] { >partition2 : { (predicate: (v: T) => v is U_1): [Vector, Vector>]; (predicate: (x: T) => boolean): [Vector, Vector]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >predicate : (v: T) => boolean > : ^ ^^ ^^^^^ >v : T @@ -422,7 +422,7 @@ declare function toString2(value: Function): string ; function foo(value: T) { >foo : (value: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >value : T > : ^ @@ -430,7 +430,7 @@ function foo(value: T) { >isFunction(value) : boolean > : ^^^^^^^ >isFunction : (value: T_1) => value is Extract -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >value : T > : ^ @@ -652,13 +652,13 @@ exportCommand(save); >exportCommand(save) : void > : ^^^^ >exportCommand : (functionToCall: IExportCallback) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >save : (_response: IRootResponse) => void > : ^ ^^ ^^^^^ declare function exportCommand(functionToCall: IExportCallback): void; >exportCommand : (functionToCall: IExportCallback) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >functionToCall : IExportCallback > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -727,7 +727,7 @@ declare function ff(x: Foo3): void; declare function gg(f: (x: Foo3) => void): void; >gg : (f: (x: Foo3) => void) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (x: Foo3) => void > : ^ ^^ ^^^^^ >x : Foo3 @@ -745,7 +745,7 @@ gg(ff); >gg(ff) : void > : ^^^^ >gg : (f: (x: Foo3) => void) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ff : (x: Foo3) => void > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/conditionalTypesExcessProperties.types b/tests/baselines/reference/conditionalTypesExcessProperties.types index 2deb2fb464877..909b7fef0e61d 100644 --- a/tests/baselines/reference/conditionalTypesExcessProperties.types +++ b/tests/baselines/reference/conditionalTypesExcessProperties.types @@ -20,7 +20,7 @@ type Something = { test: string } & (T extends object ? { function testFunc2(a: A, sa: Something) { >testFunc2 : (a: A, sa: Something) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : A > : ^ >sa : Something diff --git a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types index 0fbd4d029befd..6b2c85a7b4c6d 100644 --- a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types +++ b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types @@ -3,9 +3,9 @@ === conditionalTypesSimplifyWhenTrivial.ts === const fn1 = ( >fn1 : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >( params: Pick>,): Params => params : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ params: Pick>, >params : Pick> @@ -17,7 +17,7 @@ const fn1 = ( function fn2(x: Exclude) { >fn2 : (x: Exclude) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : Exclude > : ^^^^^^^^^^^^^^^^^ @@ -38,9 +38,9 @@ function fn2(x: Exclude) { const fn3 = ( >fn3 : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >( params: Pick>,): Params => params : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ params: Pick>, >params : Pick> @@ -52,7 +52,7 @@ const fn3 = ( function fn4(x: Extract) { >fn4 : (x: Extract) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : Extract > : ^^^^^^^^^^^^^ @@ -85,9 +85,9 @@ type ExcludeWithDefault = T extends U ? D : T; const fn5 = ( >fn5 : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >( params: Pick>,): Params => params : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ params: Pick>, >params : Pick> @@ -99,7 +99,7 @@ const fn5 = ( function fn6(x: ExcludeWithDefault) { >fn6 : (x: ExcludeWithDefault) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : ExcludeWithDefault > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -120,9 +120,9 @@ function fn6(x: ExcludeWithDefault) { const fn7 = ( >fn7 : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >( params: Pick>,): Params => params : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ params: Pick>, >params : Pick> @@ -134,7 +134,7 @@ const fn7 = ( function fn8(x: ExtractWithDefault) { >fn8 : (x: ExtractWithDefault) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : ExtractWithDefault > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -159,9 +159,9 @@ type TemplatedConditional = TCheck extends TExt const fn9 = ( >fn9 : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >( params: Pick>,): Params => params : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ params: Pick>, >params : Pick> @@ -173,7 +173,7 @@ const fn9 = ( function fn10(x: TemplatedConditional) { >fn10 : (x: TemplatedConditional) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : TemplatedConditional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -194,9 +194,9 @@ function fn10(x: TemplatedConditional) { const fn11 = ( >fn11 : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >( params: Pick>,): Params => params : (params: Pick>) => Params -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ params: Pick>, >params : Pick> @@ -208,7 +208,7 @@ const fn11 = ( function fn12(x: TemplatedConditional) { >fn12 : (x: TemplatedConditional) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : TemplatedConditional > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/conflictingDeclarationsImportFromNamespace1.types b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace1.types index a03e6763b5da7..8671e20bfb5b9 100644 --- a/tests/baselines/reference/conflictingDeclarationsImportFromNamespace1.types +++ b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace1.types @@ -12,7 +12,7 @@ declare module "./index" { interface LoDashStatic { pick( >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ object: T, >object : T @@ -29,11 +29,11 @@ declare module "./index" { === node_modules/@types/lodash/pick.d.ts === import { pick } from "./index"; >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ export = pick; >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ === node_modules/@types/lodash/index.d.ts === /// @@ -58,7 +58,7 @@ declare namespace _ { === index.ts === import * as pick from 'lodash/pick'; >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ export const pick = () => pick(); >pick : () => any diff --git a/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types index d258c492aa683..f93a7a4db63df 100644 --- a/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types +++ b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types @@ -12,7 +12,7 @@ declare module "./index" { interface LoDashStatic { pick: ( >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ object: T, >object : T @@ -29,11 +29,11 @@ declare module "./index" { === node_modules/@types/lodash/pick.d.ts === import { pick } from "./index"; >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ export = pick; >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ === node_modules/@types/lodash/index.d.ts === /// @@ -58,7 +58,7 @@ declare namespace _ { === index.ts === import * as pick from 'lodash/pick'; >pick : (object: T, ...props: Array) => Pick -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ export const pick = () => pick(); >pick : () => any diff --git a/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types b/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types index 341678572ef89..17f7c9449f18c 100644 --- a/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types +++ b/tests/baselines/reference/consistentAliasVsNonAliasRecordBehavior.types @@ -82,7 +82,7 @@ function mixed2(x: Record<'a', string>, y: Record2) { function defaultRecord2(x: Record<'a', T>, y: Record) { >defaultRecord2 : (x: Record<"a", T>, y: Record) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Record<"a", T> > : ^^^^^^^^^^^^^^ >y : Record @@ -99,7 +99,7 @@ function defaultRecord2(x: Record<'a', T>, y: Record) { function customRecord2(x: Record2<'a', T>, y: Record2) { >customRecord2 : (x: Record2<"a", T>, y: Record2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Record2<"a", T> > : ^^^^^^^^^^^^^^^ >y : Record2 @@ -116,7 +116,7 @@ function customRecord2(x: Record2<'a', T>, y: Record2) { function mixed3(x: Record2<'a', T>, y: Record) { >mixed3 : (x: Record2<"a", T>, y: Record) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Record2<"a", T> > : ^^^^^^^^^^^^^^^ >y : Record @@ -133,7 +133,7 @@ function mixed3(x: Record2<'a', T>, y: Record) { function mixed4(x: Record<'a', T>, y: Record2) { >mixed4 : (x: Record<"a", T>, y: Record2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Record<"a", T> > : ^^^^^^^^^^^^^^ >y : Record2 diff --git a/tests/baselines/reference/constAssertions.types b/tests/baselines/reference/constAssertions.types index e64ff4ce6e3fa..f86c092d80db0 100644 --- a/tests/baselines/reference/constAssertions.types +++ b/tests/baselines/reference/constAssertions.types @@ -565,7 +565,7 @@ let q5 = { x: 10, y: 20 }; declare function id(x: T): T; >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -601,7 +601,7 @@ let e3 = id(1) as const; // Error >id(1) : 1 > : ^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -670,7 +670,7 @@ function ff1(x: 'foo' | 'bar', y: 1 | 2) { function ff2(x: T, y: U) { >ff2 : (x: T, y: U) => `${T}-${U}` -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : T > : ^ >y : U @@ -693,7 +693,7 @@ const ts1 = ff2('foo', 'bar'); >ff2('foo', 'bar') : "foo-bar" > : ^^^^^^^^^ >ff2 : (x: T, y: U) => `${T}-${U}` -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >'foo' : "foo" > : ^^^^^ >'bar' : "bar" @@ -705,7 +705,7 @@ const ts2 = ff2('foo', !!true ? '0' : '1'); >ff2('foo', !!true ? '0' : '1') : "foo-1" | "foo-0" > : ^^^^^^^^^^^^^^^^^ >ff2 : (x: T, y: U) => `${T}-${U}` -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >'foo' : "foo" > : ^^^^^ >!!true ? '0' : '1' : "0" | "1" @@ -727,7 +727,7 @@ const ts3 = ff2(!!true ? 'top' : 'bottom', !!true ? 'left' : 'right'); >ff2(!!true ? 'top' : 'bottom', !!true ? 'left' : 'right') : "top-left" | "top-right" | "bottom-left" | "bottom-right" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ff2 : (x: T, y: U) => `${T}-${U}` -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >!!true ? 'top' : 'bottom' : "top" | "bottom" > : ^^^^^^^^^^^^^^^^ >!!true : true @@ -884,7 +884,7 @@ function ff5(verify: boolean, contentMatches: boolean) { function accessorNames(propName: S) { >accessorNames : (propName: S) => readonly [`get-${S}`, `set-${S}`] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >propName : S > : ^ @@ -909,7 +909,7 @@ const ns1 = accessorNames('foo'); >accessorNames('foo') : readonly ["get-foo", "set-foo"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >accessorNames : (propName: S) => readonly [`get-${S}`, `set-${S}`] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'foo' : "foo" > : ^^^^^ diff --git a/tests/baselines/reference/constEnumSyntheticNodesComments.types b/tests/baselines/reference/constEnumSyntheticNodesComments.types index c93619c6bef80..a08be86785e12 100644 --- a/tests/baselines/reference/constEnumSyntheticNodesComments.types +++ b/tests/baselines/reference/constEnumSyntheticNodesComments.types @@ -15,7 +15,7 @@ const enum En { A, B, C, D } function assert(x: T) { >assert : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -46,7 +46,7 @@ function verify(a: En) { >assert<0>(a) : 0 > : ^ >assert : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : En.A > : ^^^^ @@ -62,7 +62,7 @@ function verify(a: En) { >assert<1>(a) : 1 > : ^ >assert : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : En.B > : ^^^^ @@ -78,7 +78,7 @@ function verify(a: En) { >assert<2>(a) : 2 > : ^ >assert : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : En.C > : ^^^^ @@ -94,7 +94,7 @@ function verify(a: En) { >assert<3>(a) : 3 > : ^ >assert : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : En.D > : ^^^^ } diff --git a/tests/baselines/reference/constraintErrors1.types b/tests/baselines/reference/constraintErrors1.types index a025e7eabf826..ab9450991b257 100644 --- a/tests/baselines/reference/constraintErrors1.types +++ b/tests/baselines/reference/constraintErrors1.types @@ -3,7 +3,7 @@ === constraintErrors1.ts === function foo5(test: T) { } >foo5 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ diff --git a/tests/baselines/reference/constraintOfRecursivelyMappedTypeWithConditionalIsResolvable.types b/tests/baselines/reference/constraintOfRecursivelyMappedTypeWithConditionalIsResolvable.types index 04b5f708bd787..82351bfef13a7 100644 --- a/tests/baselines/reference/constraintOfRecursivelyMappedTypeWithConditionalIsResolvable.types +++ b/tests/baselines/reference/constraintOfRecursivelyMappedTypeWithConditionalIsResolvable.types @@ -18,7 +18,7 @@ export type ImmutableModel = { [K in keyof T]: T[K] extends ImmutableTypes ? export interface IImmutableMap> extends Map { set(key: K, value: T[K]): IImmutableMap; >set : (key: K, value: T[K]) => IImmutableMap -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : T[K] @@ -40,7 +40,7 @@ export type ImmutableModel2 = { [K in keyof T]: isImmutableType }; export interface IImmutableMap2> extends Map { set(key: K, value: T[K]): IImmutableMap2; >set : (key: K, value: T[K]) => IImmutableMap2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : T[K] diff --git a/tests/baselines/reference/constraintPropagationThroughReturnTypes.types b/tests/baselines/reference/constraintPropagationThroughReturnTypes.types index d3cfa1aad6fdb..fa286266fbd2f 100644 --- a/tests/baselines/reference/constraintPropagationThroughReturnTypes.types +++ b/tests/baselines/reference/constraintPropagationThroughReturnTypes.types @@ -3,7 +3,7 @@ === constraintPropagationThroughReturnTypes.ts === function g(x: T): T { >g : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -14,7 +14,7 @@ function g(x: T): T { function f(x: S) { >f : (x: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >foo : string > : ^^^^^^ >x : S @@ -26,7 +26,7 @@ function f(x: S) { >g(x) : S > : ^ >g : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : S > : ^ diff --git a/tests/baselines/reference/constraintReferencingTypeParameterFromSameTypeParameterList.types b/tests/baselines/reference/constraintReferencingTypeParameterFromSameTypeParameterList.types index 38d914e23b3ee..21fdcb532da6b 100644 --- a/tests/baselines/reference/constraintReferencingTypeParameterFromSameTypeParameterList.types +++ b/tests/baselines/reference/constraintReferencingTypeParameterFromSameTypeParameterList.types @@ -7,7 +7,7 @@ interface IComparable { } function f>() { >f : >() => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ } interface I1> { // Error, any does not satisfy the constraint I1 @@ -27,7 +27,7 @@ interface I3 { function foo(v: V) => void>() { >foo : (v: V) => void>() => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ >v : V > : ^ } diff --git a/tests/baselines/reference/constraintSatisfactionWithAny.types b/tests/baselines/reference/constraintSatisfactionWithAny.types index 20c51d8b19499..2ebf6fb97b44f 100644 --- a/tests/baselines/reference/constraintSatisfactionWithAny.types +++ b/tests/baselines/reference/constraintSatisfactionWithAny.types @@ -5,13 +5,13 @@ function foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ function foo2(x: T): T { return null; } >foo2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >x : T @@ -20,7 +20,7 @@ function foo2(x: T): T { return null; } //function foo3(x: T): T { return null; } function foo4(x: T) => void>(x: T): T { return null; } >foo4 : (x: T_1) => void>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -32,20 +32,20 @@ var a; foo(a); >foo(a) : any >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : any foo2(a); >foo2(a) : any >foo2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : any //foo3(a); foo4(a); >foo4(a) : any >foo4 : (x: T_1) => void>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : any var b: number; @@ -55,14 +55,14 @@ var b: number; foo(b); >foo(b) : any >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : number > : ^^^^^^ foo2(b); >foo2(b) : any >foo2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : number > : ^^^^^^ @@ -70,7 +70,7 @@ foo2(b); foo4(b); >foo4(b) : any >foo4 : (x: T_1) => void>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : number > : ^^^^^^ diff --git a/tests/baselines/reference/constraintSatisfactionWithAny2.types b/tests/baselines/reference/constraintSatisfactionWithAny2.types index d221c8063bfb9..2116d487c01d2 100644 --- a/tests/baselines/reference/constraintSatisfactionWithAny2.types +++ b/tests/baselines/reference/constraintSatisfactionWithAny2.types @@ -6,7 +6,7 @@ declare function foo(x: U) => Z>(y: T): Z; >foo : (x: U) => Z>(y: T) => Z -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : U > : ^ >y : T @@ -19,12 +19,12 @@ foo(a); >foo(a) : unknown > : ^^^^^^^ >foo : (x: U) => Z>(y: T) => Z -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : any foo(a); >foo(a) : any >foo : (x: U) => Z>(y: T) => Z -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : any diff --git a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types index c5684717931df..c03a3441c1b87 100644 --- a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types +++ b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.types @@ -6,7 +6,7 @@ // Object constraint function foo(x: T) { } >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -16,7 +16,7 @@ var r = foo({}); >foo({}) : void > : ^^^^ >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ @@ -32,7 +32,7 @@ var r = foo({}); >foo({}) : void > : ^^^^ >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ @@ -67,7 +67,7 @@ var i: I<{}>; // {} constraint function foo2(x: T) { } >foo2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -77,7 +77,7 @@ var r = foo2({}); >foo2({}) : void > : ^^^^ >foo2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ @@ -93,7 +93,7 @@ var r = foo2({}); >foo2({}) : void > : ^^^^ >foo2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance.types index 41d74877dba8d..3db0e9144421c 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance.types @@ -77,7 +77,7 @@ module MemberWithConstructSignature { a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -119,7 +119,7 @@ module MemberWithConstructSignature { a3: new (x: T) => string; // ok because base returns void >a3 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -134,7 +134,7 @@ module MemberWithConstructSignature { a2: new (x: T) => T; >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -154,7 +154,7 @@ module MemberWithConstructSignature { // N's a2: new (x: T) => string; // error because base returns non-void; >a2 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types index 2666cf26979dd..cc25498475854 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types @@ -176,7 +176,7 @@ interface A { // T }; a16: { >a16 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: T): number[]; >x : T @@ -242,25 +242,25 @@ interface I extends A { // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; // ok >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => T; // ok since Base returns void >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -268,7 +268,7 @@ interface I extends A { a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -276,7 +276,7 @@ interface I extends A { a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -284,7 +284,7 @@ interface I extends A { a7: new (x: (arg: T) => U) => (r: T) => U; // ok >a7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -294,7 +294,7 @@ interface I extends A { a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok >a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -308,7 +308,7 @@ interface I extends A { a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal >a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -326,13 +326,13 @@ interface I extends A { a10: new (...x: T[]) => T; // ok >a10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a11: new (x: T, y: T) => T; // ok >a11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -340,7 +340,7 @@ interface I extends A { a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type >a12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -348,7 +348,7 @@ interface I extends A { a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds >a13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -356,7 +356,7 @@ interface I extends A { a14: new (x: { a: T; b: U }) => T; // ok >a14 : new (x: { a: T; b: U; }) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: U; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -366,19 +366,19 @@ interface I extends A { a15: new (x: T) => T[]; // ok >a15 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a16: new (x: T) => number[]; // ok >a16 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ a17: new (x: new (a: T) => T) => T[]; // ok >a17 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -386,7 +386,7 @@ interface I extends A { a18: new (x: new (a: T) => T) => T[]; // ok, no inferences for T but assignable to any >a18 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types index 40be5b0764efc..591342ebb6ad9 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types @@ -159,7 +159,7 @@ module Errors { interface I extends A { a2: new (x: T) => U[]; // error, contextual signature instantiation doesn't relate return types so U is {}, not a subtype of string[] >a2 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -176,7 +176,7 @@ module Errors { // valid, no inferences for V so it defaults to Derived2 a7: new (x: (arg: T) => U) => (r: T) => V; >a7 : new (x: (arg: T) => U) => (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -188,7 +188,7 @@ module Errors { interface I4 extends A { a8: new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U; // error, type mismatch >a8 : new (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -206,7 +206,7 @@ module Errors { interface I4B extends A { a10: new (...x: T[]) => T; // valid, parameter covariance works even after contextual signature instantiation >a10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ } @@ -214,7 +214,7 @@ module Errors { interface I4C extends A { a11: new (x: T, y: T) => T; // valid, even though x is a Base, parameter covariance works even after contextual signature instantiation >a11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -224,7 +224,7 @@ module Errors { interface I4E extends A { a12: new >(x: Array, y: Array) => T; // valid, no inferences for T, defaults to Array >a12 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -234,7 +234,7 @@ module Errors { interface I6 extends A { a15: new (x: { a: T; b: T }) => T; // error, T is {} which isn't an acceptable return type >a15 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -246,7 +246,7 @@ module Errors { interface I7 extends A { a15: new (x: { a: T; b: T }) => number; // error, T defaults to Base, which is not compatible with number or string >a15 : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -259,7 +259,7 @@ module Errors { // ok, we relate each signature of a16 to b16, and within that, we make inferences from two different signatures in the respective A.a16 signature a16: new (x: new (a: T) => T) => T[]; >a16 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -272,7 +272,7 @@ module Errors { interface B { a2: new (x: T) => T[]; >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -280,7 +280,7 @@ module Errors { interface I6 extends B { a2: new (x: T) => string[]; // error >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -289,7 +289,7 @@ module Errors { interface C { a2: new (x: T) => string[]; >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -297,7 +297,7 @@ module Errors { interface I7 extends C { a2: new (x: T) => T[]; // error >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -306,7 +306,7 @@ module Errors { interface D { a14: { >a14 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: T): number[]; >x : T @@ -322,7 +322,7 @@ module Errors { interface I8 extends D { a14: new (x: T) => number[]; >a14 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types index a83572119b9a5..71af3c3e94fb5 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types @@ -37,25 +37,25 @@ interface A { // T // M's a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -63,7 +63,7 @@ interface A { // T a5: new (x: (arg: T) => U) => T; >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -71,7 +71,7 @@ interface A { // T a6: new (x: (arg: T) => Derived) => T; >a6 : new (x: (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -79,7 +79,7 @@ interface A { // T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -93,7 +93,7 @@ interface A { // T a15: new (x: { a: T; b: T }) => T[]; >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -103,7 +103,7 @@ interface A { // T a16: new (x: { a: T; b: T }) => T[]; >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -113,7 +113,7 @@ interface A { // T a17: { >a17 : { new (x: T): T[]; new (x: U): U[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: T): T[]; >x : T @@ -126,7 +126,7 @@ interface A { // T }; a18: { >a18 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: T): number[]; >x : T @@ -139,7 +139,7 @@ interface A { // T }; a19: { >a19 : { new (x: new (a: T) => T): T[]; new (x: new (a: U) => U): U[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: new (a: T) => T): T[]; >x : new (a: T) => T @@ -160,7 +160,7 @@ interface A { // T new (x: { >x : { new (a: T): T; new (a: U): U; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -173,7 +173,7 @@ interface A { // T }): any[]; new (x: { >x : { new (a: T): T; new (a: U): U; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -192,25 +192,25 @@ interface I extends A { // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; // ok >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => T; // ok since Base returns void >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => string; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -218,7 +218,7 @@ interface I extends A { a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -226,7 +226,7 @@ interface I extends A { a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -234,7 +234,7 @@ interface I extends A { a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok >a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -248,7 +248,7 @@ interface I extends A { a15: new (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V >a15 : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : { a: U; b: V; } > : ^^^^^ ^^^^^ ^^^ >a : U @@ -258,7 +258,7 @@ interface I extends A { a16: new (x: { a: T; b: T }) => T[]; // ok, more general parameter type >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -268,19 +268,19 @@ interface I extends A { a17: new (x: T) => T[]; // ok, more general parameter type >a17 : new (x: T) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ a18: new (x: T) => number[]; // ok, more general parameter type >a18 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ a19: new (x: new (a: T) => T) => T[]; // ok >a19 : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -290,7 +290,7 @@ interface I extends A { >a20 : new (x: new (a: T) => T) => any[] > : ^^^^^ ^^ ^^^^^ >x : new (a: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : T > : ^ } diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types index cd1cf9fd2eeaa..92c26bb571a90 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types @@ -166,7 +166,7 @@ interface A { // T interface B extends A { a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -176,25 +176,25 @@ interface I extends B { // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; // ok >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => T; // ok since Base returns void >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -202,7 +202,7 @@ interface I extends B { a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -210,7 +210,7 @@ interface I extends B { a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -218,7 +218,7 @@ interface I extends B { a7: new (x: (arg: T) => U) => (r: T) => U; // ok >a7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -228,7 +228,7 @@ interface I extends B { a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok >a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -242,7 +242,7 @@ interface I extends B { a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal >a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -260,13 +260,13 @@ interface I extends B { a10: new (...x: T[]) => T; // ok >a10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a11: new (x: T, y: T) => T; // ok >a11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -274,7 +274,7 @@ interface I extends B { a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type >a12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -282,7 +282,7 @@ interface I extends B { a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds >a13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -290,7 +290,7 @@ interface I extends B { a14: new (x: { a: T; b: U }) => T; // ok >a14 : new (x: { a: T; b: U; }) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: U; } > : ^^^^^ ^^^^^ ^^^ >a : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types index 41a17bb438e2e..611c00ebd4cca 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types @@ -39,25 +39,25 @@ interface A { // T // M's a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -65,7 +65,7 @@ interface A { // T a5: new (x: (arg: T) => U) => T; >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -73,7 +73,7 @@ interface A { // T a6: new (x: (arg: T) => Derived) => T; >a6 : new (x: (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -81,7 +81,7 @@ interface A { // T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -95,7 +95,7 @@ interface A { // T a15: new (x: { a: T; b: T }) => T[]; >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -105,7 +105,7 @@ interface A { // T a16: new (x: { a: T; b: T }) => T[]; >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -142,7 +142,7 @@ interface I3 extends A { interface I4 extends A { a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -152,7 +152,7 @@ interface I4 extends A { interface I5 extends A { a5: new (x: (arg: T) => U) => T; >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -162,7 +162,7 @@ interface I5 extends A { interface I7 extends A { a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; >a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T diff --git a/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types b/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types index ea87c3c3f0d58..c9c008ee0dae2 100644 --- a/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types +++ b/tests/baselines/reference/constructSignaturesWithIdenticalOverloads.types @@ -172,7 +172,7 @@ var r5 = new a(1, ''); var b: { >b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } -> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ new (x: T, y: string): C2; >x : T @@ -193,7 +193,7 @@ var r6 = new b(1, ''); >new b(1, '') : C2 > : ^^^^^^^^^^ >b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } -> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >1 : 1 > : ^ >'' : "" diff --git a/tests/baselines/reference/constructSignaturesWithOverloads.types b/tests/baselines/reference/constructSignaturesWithOverloads.types index 6e52b77cec9d2..c34c2d1ae03e1 100644 --- a/tests/baselines/reference/constructSignaturesWithOverloads.types +++ b/tests/baselines/reference/constructSignaturesWithOverloads.types @@ -173,7 +173,7 @@ var r5 = new a(1, ''); var b: { >b : { new (x: T, y?: string): C2; new (x: T, y: string): C2; } -> : ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ new(x: T, y?: string): C2; >x : T @@ -194,7 +194,7 @@ var r6 = new b(1, ''); >new b(1, '') : C2 > : ^^^^^^^^^^ >b : { new (x: T, y?: string): C2; new (x: T, y: string): C2; } -> : ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >1 : 1 > : ^ >'' : "" diff --git a/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types b/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types index 0cc5607118a16..bac369d07f135 100644 --- a/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types +++ b/tests/baselines/reference/constructSignaturesWithOverloadsThatDifferOnlyByReturnType.types @@ -83,7 +83,7 @@ var a: { var b: { >b : { new (x: T, y: string): C2; new (x: T, y: string): C; } -> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ new (x: T, y: string): C2; >x : T diff --git a/tests/baselines/reference/constructorFunctionMethodTypeParameters.types b/tests/baselines/reference/constructorFunctionMethodTypeParameters.types index 422134c46ce4d..da5a71575eba6 100644 --- a/tests/baselines/reference/constructorFunctionMethodTypeParameters.types +++ b/tests/baselines/reference/constructorFunctionMethodTypeParameters.types @@ -31,7 +31,7 @@ function Cls(t) { */ Cls.prototype.topLevelComment = function (t, v) { >Cls.prototype.topLevelComment = function (t, v) { return v} : (t: T, v: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >Cls.prototype.topLevelComment : any >Cls.prototype : any > : ^^^ @@ -42,7 +42,7 @@ Cls.prototype.topLevelComment = function (t, v) { >topLevelComment : any > : ^^^ >function (t, v) { return v} : (t: T, v: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >v : V @@ -56,7 +56,7 @@ Cls.prototype.topLevelComment = function (t, v) { Cls.prototype.nestedComment = >Cls.prototype.nestedComment = /** * @template {string} U * @param {T} t * @param {U} u * @return {T} */ function (t, u) { return t } : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >Cls.prototype.nestedComment : any >Cls.prototype : any > : ^^^ @@ -75,7 +75,7 @@ Cls.prototype.nestedComment = */ function (t, u) { >function (t, u) { return t } : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/contextSensitiveReturnTypeInference.types b/tests/baselines/reference/contextSensitiveReturnTypeInference.types index f8e0f5c915746..67051e8f001a1 100644 --- a/tests/baselines/reference/contextSensitiveReturnTypeInference.types +++ b/tests/baselines/reference/contextSensitiveReturnTypeInference.types @@ -11,7 +11,7 @@ interface IData { declare function test( >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ getter: (deps: TDependencies, data: IData) => any, >getter : (deps: TDependencies, data: IData) => any @@ -43,7 +43,7 @@ const DEPS = { test( >test( (deps, data) => ({ fn1: function() { return deps.foo }, fn2: data.bar }), DEPS) : any >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ (deps, data) => ({ >(deps, data) => ({ fn1: function() { return deps.foo }, fn2: data.bar }) : (deps: { foo: number; }, data: IData) => { fn1: () => number; fn2: boolean; } @@ -89,7 +89,7 @@ test( test( >test( (deps: typeof DEPS, data) => ({ fn1: function() { return deps.foo }, fn2: data.bar }), DEPS) : any >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ (deps: typeof DEPS, data) => ({ >(deps: typeof DEPS, data) => ({ fn1: function() { return deps.foo }, fn2: data.bar }) : (deps: typeof DEPS, data: IData) => { fn1: () => number; fn2: boolean; } @@ -137,7 +137,7 @@ test( test( >test( (deps, data) => ({ fn1: () => deps.foo, fn2: data.bar }), DEPS) : any >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ (deps, data) => ({ >(deps, data) => ({ fn1: () => deps.foo, fn2: data.bar }) : (deps: { foo: number; }, data: IData) => { fn1: () => number; fn2: boolean; } @@ -183,7 +183,7 @@ test( test( >test( (deps, data) => { return { fn1() { return deps.foo }, fn2: data.bar } }, DEPS) : any >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ (deps, data) => { >(deps, data) => { return { fn1() { return deps.foo }, fn2: data.bar } } : (deps: { foo: number; }, data: IData) => { fn1(): number; fn2: boolean; } @@ -227,7 +227,7 @@ test( test( >test( (deps) => ({ fn1() { return deps.foo }, fn2: 1 }), DEPS) : any >test : (getter: (deps: TDependencies, data: IData) => any, deps: TDependencies) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ (deps) => ({ >(deps) => ({ fn1() { return deps.foo }, fn2: 1 }) : (deps: { foo: number; }) => { fn1(): number; fn2: number; } diff --git a/tests/baselines/reference/contextualComputedNonBindablePropertyType.types b/tests/baselines/reference/contextualComputedNonBindablePropertyType.types index f0005bc284b56..ea751c1aacbb7 100644 --- a/tests/baselines/reference/contextualComputedNonBindablePropertyType.types +++ b/tests/baselines/reference/contextualComputedNonBindablePropertyType.types @@ -9,7 +9,7 @@ declare function testD(): "d"; declare function forceMatch(matched: { >forceMatch : (matched: { [key in keyof T]: key; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >matched : { [key in keyof T]: key; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -20,7 +20,7 @@ forceMatch({ >forceMatch({ [testD()]: "d",}) : void > : ^^^^ >forceMatch : (matched: { [key in keyof T]: key; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ [testD()]: "d",} : { d: "d"; } > : ^^^^^^^^^^^ @@ -38,9 +38,9 @@ forceMatch({ declare function forceMatch2(matched: { >forceMatch2 : (matched: { [key in keyof T]: ({ key }: { key: key; }) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >matched : { [key in keyof T]: ({ key }: { key: key; }) => void; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ [key in keyof T]: ({ key }: { key: key }) => void; >key : key @@ -54,7 +54,7 @@ forceMatch2({ >forceMatch2({ [testD()]: ({ key }) => {},}) : void > : ^^^^ >forceMatch2 : (matched: { [key in keyof T]: ({ key }: { key: key; }) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ [testD()]: ({ key }) => {},} : { d: ({ key }: { key: "d"; }) => void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -95,9 +95,9 @@ type Mapped = { const propSelector = (propName: propName): propName => propName; >propSelector : (propName: propName) => propName -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(propName: propName): propName => propName : (propName: propName) => propName -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >propName : propName > : ^^^^^^^^ >propName : propName @@ -135,7 +135,7 @@ const unexpectedlyFailingExample: Mapped = { >propSelector('bar') : "bar" > : ^^^^^ >propSelector : (propName: propName) => propName -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >'bar' : "bar" > : ^^^^^ >(arg) => 51345 : (arg: number) => number diff --git a/tests/baselines/reference/contextualOverloadListFromArrayUnion.types b/tests/baselines/reference/contextualOverloadListFromArrayUnion.types index 605b0678ec89e..5914aa3e62c67 100644 --- a/tests/baselines/reference/contextualOverloadListFromArrayUnion.types +++ b/tests/baselines/reference/contextualOverloadListFromArrayUnion.types @@ -111,7 +111,7 @@ interface Task { export function series(tasks: Task[], callback: Callback): void { >series : (tasks: Task[], callback: Callback) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >tasks : Task[] > : ^^^^^^^^^ >callback : Callback @@ -219,7 +219,7 @@ series([ >series([ cb => setTimeout(() => cb(null, 1), 300), cb => setTimeout(() => cb(null, 2), 200), cb => setTimeout(() => cb(null, 3), 100),], (error, results) => { if (error) { console.error(error) } else { console.log(results) }}) : void > : ^^^^ >series : (tasks: Task[], callback: Callback) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >[ cb => setTimeout(() => cb(null, 1), 300), cb => setTimeout(() => cb(null, 2), 200), cb => setTimeout(() => cb(null, 3), 100),] : ((cb: Callback) => number)[] > : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextualPropertyOfGenericMappedType.types b/tests/baselines/reference/contextualPropertyOfGenericMappedType.types index 193315b5625d0..26e9323d89974 100644 --- a/tests/baselines/reference/contextualPropertyOfGenericMappedType.types +++ b/tests/baselines/reference/contextualPropertyOfGenericMappedType.types @@ -5,11 +5,11 @@ declare function f(data: T, handlers: { [P in keyof T]: (value: T[P], prop: P) => void; }): void; >f : (data: T, handlers: { [P in keyof T]: (value: T[P], prop: P) => void; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >data : T > : ^ >handlers : { [P in keyof T]: (value: T[P], prop: P) => void; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >value : T[P] > : ^^^^ >prop : P @@ -19,7 +19,7 @@ f({ data: 0 }, { data(value, key) {} }); >f({ data: 0 }, { data(value, key) {} }) : void > : ^^^^ >f : (data: T, handlers: { [P in keyof T]: (value: T[P], prop: P) => void; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ data: 0 } : { data: number; } > : ^^^^^^^^^^^^^^^^^ >data : number diff --git a/tests/baselines/reference/contextualSigInstantiationRestParams.types b/tests/baselines/reference/contextualSigInstantiationRestParams.types index ba478ebb4f885..68d7cf319c2b4 100644 --- a/tests/baselines/reference/contextualSigInstantiationRestParams.types +++ b/tests/baselines/reference/contextualSigInstantiationRestParams.types @@ -3,7 +3,7 @@ === contextualSigInstantiationRestParams.ts === declare function toInstantiate(a?: A, b?: B): B; >toInstantiate : (a?: A, b?: B) => B -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -21,5 +21,5 @@ var sig: typeof contextual = toInstantiate; >contextual : (...s: string[]) => string > : ^^^^ ^^ ^^^^^ >toInstantiate : (a?: A, b?: B) => B -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types b/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types index 14f47ec04722f..327565fc0a3ac 100644 --- a/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types +++ b/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types @@ -28,7 +28,7 @@ type ActionFunction = (event: TEvent) => void; declare function createMachine< >createMachine : (config: { types?: TTypesMeta; }, implementations: TTypesMeta extends TypegenEnabled ? ActionFunction<{ type: "test"; }> : ActionFunction<{ type: string; }>) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ TTypesMeta extends TypegenEnabled | TypegenDisabled = TypegenDisabled >( @@ -59,7 +59,7 @@ createMachine({}, (ev) => { >createMachine({}, (ev) => { ev.type; // should be `string`}) : void > : ^^^^ >createMachine : (config: { types?: TTypesMeta; }, implementations: TTypesMeta extends TypegenEnabled ? ActionFunction<{ type: "test"; }> : ActionFunction<{ type: string; }>) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >{} : {} > : ^^ >(ev) => { ev.type; // should be `string`} : (ev: { type: string; }) => void diff --git a/tests/baselines/reference/contextualSignatureInObjectFreeze.types b/tests/baselines/reference/contextualSignatureInObjectFreeze.types index d5c9c252c5ac8..685f607aef1ce 100644 --- a/tests/baselines/reference/contextualSignatureInObjectFreeze.types +++ b/tests/baselines/reference/contextualSignatureInObjectFreeze.types @@ -7,11 +7,11 @@ Object.freeze({ >Object.freeze({ f: function () { }}) : Readonly<{ f: () => void; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ f: function () { }} : { f: () => void; } > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiation.types b/tests/baselines/reference/contextualSignatureInstantiation.types index 8b2fb9e27a584..fcae94ab60c9f 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation.types +++ b/tests/baselines/reference/contextualSignatureInstantiation.types @@ -9,7 +9,7 @@ declare function foo(cb: (x: number, y: string) => T): T; >foo : (cb: (x: number, y: string) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (x: number, y: string) => T > : ^ ^^ ^^ ^^ ^^^^^ >x : number @@ -19,7 +19,7 @@ declare function foo(cb: (x: number, y: string) => T): T; declare function bar(x: T, y: U, cb: (x: T, y: U) => V): V; >bar : (x: T, y: U, cb: (x: T, y: U) => V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -33,7 +33,7 @@ declare function bar(x: T, y: U, cb: (x: T, y: U) => V): V; declare function baz(x: T, y: T, cb: (x: T, y: T) => U): U; >baz : (x: T, y: T, cb: (x: T, y: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -47,7 +47,7 @@ declare function baz(x: T, y: T, cb: (x: T, y: T) => U): U; declare function g(x: T, y: T): T; >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -55,7 +55,7 @@ declare function g(x: T, y: T): T; declare function h(x: T, y: U): T[] | U[]; >h : (x: T, y: U) => T[] | U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -71,13 +71,13 @@ var a = bar(1, 1, g); // Should be number >bar(1, 1, g) : number > : ^^^^^^ >bar : (x: T, y: U, cb: (x: T, y: U) => V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >1 : 1 > : ^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var a = baz(1, 1, g); // Should be number >a : number @@ -85,13 +85,13 @@ var a = baz(1, 1, g); // Should be number >baz(1, 1, g) : number > : ^^^^^^ >baz : (x: T, y: T, cb: (x: T, y: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >1 : 1 > : ^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var b: number | string; >b : string | number @@ -103,9 +103,9 @@ var b = foo(g); // Error, number and string are disjoint types >foo(g) : unknown > : ^^^^^^^ >foo : (cb: (x: number, y: string) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var b = bar(1, "one", g); // Error, number and string are disjoint types >b : string | number @@ -113,13 +113,13 @@ var b = bar(1, "one", g); // Error, number and string are disjoint types >bar(1, "one", g) : unknown > : ^^^^^^^ >bar : (x: T, y: U, cb: (x: T, y: U) => V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"one" : "one" > : ^^^^^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var b = bar("one", 1, g); // Error, number and string are disjoint types >b : string | number @@ -127,13 +127,13 @@ var b = bar("one", 1, g); // Error, number and string are disjoint types >bar("one", 1, g) : unknown > : ^^^^^^^ >bar : (x: T, y: U, cb: (x: T, y: U) => V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"one" : "one" > : ^^^^^ >1 : 1 > : ^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var b = baz(b, b, g); // Should be number | string >b : string | number @@ -141,13 +141,13 @@ var b = baz(b, b, g); // Should be number | string >baz(b, b, g) : string | number > : ^^^^^^^^^^^^^^^ >baz : (x: T, y: T, cb: (x: T, y: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : string | number > : ^^^^^^^^^^^^^^^ >b : string | number > : ^^^^^^^^^^^^^^^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var d: number[] | string[]; >d : number[] | string[] @@ -159,9 +159,9 @@ var d = foo(h); // Should be number[] | string[] >foo(h) : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >foo : (cb: (x: number, y: string) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >h : (x: T, y: U) => T[] | U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var d = bar(1, "one", h); // Should be number[] | string[] >d : number[] | string[] @@ -169,13 +169,13 @@ var d = bar(1, "one", h); // Should be number[] | string[] >bar(1, "one", h) : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >bar : (x: T, y: U, cb: (x: T, y: U) => V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"one" : "one" > : ^^^^^ >h : (x: T, y: U) => T[] | U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var d = bar("one", 1, h); // Should be number[] | string[] >d : number[] | string[] @@ -183,13 +183,13 @@ var d = bar("one", 1, h); // Should be number[] | string[] >bar("one", 1, h) : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >bar : (x: T, y: U, cb: (x: T, y: U) => V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"one" : "one" > : ^^^^^ >1 : 1 > : ^ >h : (x: T, y: U) => T[] | U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var d = baz(d, d, g); // Should be number[] | string[] >d : number[] | string[] @@ -197,11 +197,11 @@ var d = baz(d, d, g); // Should be number[] | string[] >baz(d, d, g) : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >baz : (x: T, y: T, cb: (x: T, y: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >d : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >d : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >g : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiation1.types b/tests/baselines/reference/contextualSignatureInstantiation1.types index 2d2177488d58b..43743153cdc47 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation1.types +++ b/tests/baselines/reference/contextualSignatureInstantiation1.types @@ -3,7 +3,7 @@ === contextualSignatureInstantiation1.ts === declare function map(f: (x: S) => T): (a: S[]) => T[]; >map : (f: (x: S) => T) => (a: S[]) => T[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (x: S) => T > : ^ ^^ ^^^^^ >x : S @@ -13,9 +13,9 @@ declare function map(f: (x: S) => T): (a: S[]) => T[]; var e = (x: string, y?: K) => x.length; >e : (x: string, y?: K) => number -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ >(x: string, y?: K) => x.length : (x: string, y?: K) => number -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ >x : string > : ^^^^^^ >y : K @@ -29,17 +29,17 @@ var e = (x: string, y?: K) => x.length; var r99 = map(e); // should be {}[] for S since a generic lambda is not inferentially typed >r99 : (a: string[]) => number[] -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^ >map(e) : (a: string[]) => number[] -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^ >map : (f: (x: S) => T) => (a: S[]) => T[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >e : (x: string, y?: K) => number -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ declare function map2(f: (x: S) => T): (a: S[]) => T[]; >map2 : (f: (x: S) => T) => (a: S[]) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >length : number > : ^^^^^^ >f : (x: S) => T @@ -51,9 +51,9 @@ declare function map2(f: (x: S) => T): (a: S[]) var e2 = (x: string, y?: K) => x.length; >e2 : (x: string, y?: K) => number -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ >(x: string, y?: K) => x.length : (x: string, y?: K) => number -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ >x : string > : ^^^^^^ >y : K @@ -67,11 +67,11 @@ var e2 = (x: string, y?: K) => x.length; var r100 = map2(e2); // type arg inference should fail for S since a generic lambda is not inferentially typed. Falls back to { length: number } >r100 : (a: string[]) => number[] -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^ >map2(e2) : (a: string[]) => number[] -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^ >map2 : (f: (x: S) => T) => (a: S[]) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >e2 : (x: string, y?: K) => number -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiation2.types b/tests/baselines/reference/contextualSignatureInstantiation2.types index 0f793310a8e60..1b9072aa46db5 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation2.types +++ b/tests/baselines/reference/contextualSignatureInstantiation2.types @@ -4,7 +4,7 @@ // dot f g x = f(g(x)) var dot: (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S; >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (_: T) => S > : ^ ^^ ^^^^^ >_ : T @@ -18,17 +18,17 @@ var dot: (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S; dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)); >dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^ >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (r: U) => S -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^ >f : (_: T) => S > : ^ ^^ ^^^^^ >_ : T > : ^ >(g: (_: U) => T): (r:U) => S => (x) => f(g(x)) : (g: (_: U) => T) => (r: U) => S -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : (_: U) => T > : ^ ^^ ^^^^^ >_ : U @@ -52,21 +52,21 @@ dot = (f: (_: T) => S) => (g: (_: U) => T): (r:U) => S => (x) => f(g(x) var id: (x:T) => T; >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var r23 = dot(id)(id); >r23 : (_: T) => unknown -> : ^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ >dot(id)(id) : (_: T) => unknown -> : ^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ >dot(id) : (g: (_: U) => unknown) => (_: U) => unknown -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^ ^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^ ^^^^^ ^ >dot : (f: (_: T) => S) => (g: (_: U) => T) => (_: U) => S -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiation3.types b/tests/baselines/reference/contextualSignatureInstantiation3.types index a2333e0bc0395..46ce236225d32 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation3.types +++ b/tests/baselines/reference/contextualSignatureInstantiation3.types @@ -3,7 +3,7 @@ === contextualSignatureInstantiation3.ts === function map(items: T[], f: (x: T) => U): U[]{ >map : (items: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >items : T[] > : ^^^ >f : (x: T) => U @@ -26,7 +26,7 @@ function map(items: T[], f: (x: T) => U): U[]{ function identity(x: T) { >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -37,7 +37,7 @@ function identity(x: T) { function singleton(x: T) { >singleton : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -77,7 +77,7 @@ var v1 = xs.map(identity); // Error if not number[] >map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] > : ^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var v1 = map(xs, identity); // Error if not number[] >v1 : number[] @@ -85,11 +85,11 @@ var v1 = map(xs, identity); // Error if not number[] >map(xs, identity) : number[] > : ^^^^^^^^ >map : (items: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >xs : number[] > : ^^^^^^^^ >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var v2: number[][]; >v2 : number[][] @@ -107,7 +107,7 @@ var v2 = xs.map(singleton); // Error if not number[][] >map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] > : ^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ >singleton : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ var v2 = map(xs, singleton); // Error if not number[][] >v2 : number[][] @@ -115,9 +115,9 @@ var v2 = map(xs, singleton); // Error if not number[][] >map(xs, singleton) : number[][] > : ^^^^^^^^^^ >map : (items: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >xs : number[] > : ^^^^^^^^ >singleton : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiation4.types b/tests/baselines/reference/contextualSignatureInstantiation4.types index ef73a4c0e6413..7fc9c5a20ab06 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation4.types +++ b/tests/baselines/reference/contextualSignatureInstantiation4.types @@ -13,7 +13,7 @@ declare class Banana { constructor(a: string, property: T) } declare function fruitFactory1(Fruit: new (...args: any[]) => TFruit): TFruit >fruitFactory1 : (Fruit: new (...args: any[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Fruit : new (...args: any[]) => TFruit > : ^^^^^^^^ ^^ ^^^^^ >args : any[] @@ -25,13 +25,13 @@ const banana1 = fruitFactory1(Banana) // Banana >fruitFactory1(Banana) : Banana > : ^^^^^^^^^^^ >fruitFactory1 : (Fruit: new (...args: any[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Banana : typeof Banana > : ^^^^^^^^^^^^^ declare function fruitFactory2(Fruit: new (a: string, ...args: any[]) => TFruit): TFruit >fruitFactory2 : (Fruit: new (a: string, ...args: any[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Fruit : new (a: string, ...args: any[]) => TFruit > : ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >a : string @@ -45,13 +45,13 @@ const banana2 = fruitFactory2(Banana) // Banana >fruitFactory2(Banana) : Banana > : ^^^^^^^^^^^ >fruitFactory2 : (Fruit: new (a: string, ...args: any[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Banana : typeof Banana > : ^^^^^^^^^^^^^ declare function fruitFactory3(Fruit: new (a: string, s: "foo", ...args: any[]) => TFruit): TFruit >fruitFactory3 : (Fruit: new (a: string, s: "foo", ...args: any[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Fruit : new (a: string, s: "foo", ...args: any[]) => TFruit > : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >a : string @@ -67,13 +67,13 @@ const banana3 = fruitFactory3(Banana) // Banana<"foo"> >fruitFactory3(Banana) : Banana<"foo"> > : ^^^^^^^^^^^^^ >fruitFactory3 : (Fruit: new (a: string, s: "foo", ...args: any[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Banana : typeof Banana > : ^^^^^^^^^^^^^ declare function fruitFactory4(Fruit: new (a: string, ...args: "foo"[]) => TFruit): TFruit >fruitFactory4 : (Fruit: new (a: string, ...args: "foo"[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Fruit : new (a: string, ...args: "foo"[]) => TFruit > : ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >a : string @@ -87,13 +87,13 @@ const banana4 = fruitFactory4(Banana) // Banana<"foo"> >fruitFactory4(Banana) : Banana<"foo"> > : ^^^^^^^^^^^^^ >fruitFactory4 : (Fruit: new (a: string, ...args: "foo"[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Banana : typeof Banana > : ^^^^^^^^^^^^^ declare function fruitFactory5(Fruit: new (...args: "foo"[]) => TFruit): TFruit >fruitFactory5 : (Fruit: new (...args: "foo"[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Fruit : new (...args: "foo"[]) => TFruit > : ^^^^^^^^ ^^ ^^^^^ >args : "foo"[] @@ -105,7 +105,7 @@ const banana5 = fruitFactory5(Banana) // Banana<"foo"> >fruitFactory5(Banana) : Banana<"foo"> > : ^^^^^^^^^^^^^ >fruitFactory5 : (Fruit: new (...args: "foo"[]) => TFruit) => TFruit -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >Banana : typeof Banana > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types index eb9f014482106..1735bc8fb6c7d 100644 --- a/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types +++ b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types @@ -3,21 +3,21 @@ === contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.ts === function f() { >f : () => (u: U) => U -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function g(u: U): U { return null } >g : (u: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >u : U > : ^ return g; >g : (u: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ } var h: (v: V, func: (v: V) => W) => W; >h : (v: V, func: (v: V) => W) => W -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >v : V > : ^ >func : (v: V) => W @@ -31,11 +31,11 @@ var x = h("", f()); // Call should succeed and x should be string. All t >h("", f()) : string > : ^^^^^^ >h : (v: V, func: (v: V) => W) => W -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >f() : (u: U) => U > : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >f : () => (u: U) => U -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstatiationContravariance.types b/tests/baselines/reference/contextualSignatureInstatiationContravariance.types index b8639428a0a55..bdfd7b154df1d 100644 --- a/tests/baselines/reference/contextualSignatureInstatiationContravariance.types +++ b/tests/baselines/reference/contextualSignatureInstatiationContravariance.types @@ -15,7 +15,7 @@ interface Elephant extends Animal { y2 } var f2: (x: T, y: T) => void; >f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -31,11 +31,11 @@ var g2: (g: Giraffe, e: Elephant) => void; g2 = f2; // error because Giraffe and Elephant are disjoint types >g2 = f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g2 : (g: Giraffe, e: Elephant) => void > : ^ ^^ ^^ ^^ ^^^^^ >f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var h2: (g1: Giraffe, g2: Giraffe) => void; >h2 : (g1: Giraffe, g2: Giraffe) => void @@ -47,9 +47,9 @@ var h2: (g1: Giraffe, g2: Giraffe) => void; h2 = f2; // valid because Giraffe satisfies the constraint. It is safe in the traditional contravariant fashion. >h2 = f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >h2 : (g1: Giraffe, g2: Giraffe) => void > : ^ ^^ ^^ ^^ ^^^^^ >f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstatiationCovariance.types b/tests/baselines/reference/contextualSignatureInstatiationCovariance.types index c9ed4c430e07c..aada1996307f5 100644 --- a/tests/baselines/reference/contextualSignatureInstatiationCovariance.types +++ b/tests/baselines/reference/contextualSignatureInstatiationCovariance.types @@ -12,7 +12,7 @@ interface Giraffe extends Animal, TallThing { y } var f2: (x: T, y: T) => void; >f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -28,11 +28,11 @@ var g2: (a: Animal, t: TallThing) => void; g2 = f2; // While neither Animal nor TallThing satisfy the constraint, T is at worst a Giraffe and compatible with both via covariance. >g2 = f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g2 : (a: Animal, t: TallThing) => void > : ^ ^^ ^^ ^^ ^^^^^ >f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var h2: (a1: Animal, a2: Animal) => void; >h2 : (a1: Animal, a2: Animal) => void @@ -44,9 +44,9 @@ var h2: (a1: Animal, a2: Animal) => void; h2 = f2; // Animal does not satisfy the constraint, but T is at worst a Giraffe and compatible with Animal via covariance. >h2 = f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >h2 : (a1: Animal, a2: Animal) => void > : ^ ^^ ^^ ^^ ^^^^^ >f2 : (x: T, y: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/contextualTupleTypeParameterReadonly.types b/tests/baselines/reference/contextualTupleTypeParameterReadonly.types index 792662e0013b5..f3eb82e3801ae 100644 --- a/tests/baselines/reference/contextualTupleTypeParameterReadonly.types +++ b/tests/baselines/reference/contextualTupleTypeParameterReadonly.types @@ -3,7 +3,7 @@ === contextualTupleTypeParameterReadonly.ts === declare function each>(cases: ReadonlyArray): (fn: (...args: T) => any) => void; >each : >(cases: ReadonlyArray) => (fn: (...args: T) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cases : readonly T[] > : ^^^^^^^^^^^^ >fn : (...args: T) => any @@ -43,7 +43,7 @@ const eacher = each(cases); >each(cases) : (fn: (...args: readonly [1, "1"] | readonly [2, "2"]) => any) => void > : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >each : >(cases: ReadonlyArray) => (fn: (...args: T) => any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cases : readonly [readonly [1, "1"], readonly [2, "2"]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextualTypeCaching.types b/tests/baselines/reference/contextualTypeCaching.types index 468ad19af18c8..6a67a8cee583e 100644 --- a/tests/baselines/reference/contextualTypeCaching.types +++ b/tests/baselines/reference/contextualTypeCaching.types @@ -38,7 +38,7 @@ export type CustomEvents = { declare function emit(type: T, data: CustomEvents[T]): void >emit : (type: T, data: CustomEvents[T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >type : T > : ^ >data : CustomEvents[T] @@ -48,7 +48,7 @@ emit('a', { >emit('a', { callback: (r) => {}, nested: { nestedCallback: (r) => {}, },}) : void > : ^^^^ >emit : (type: T, data: CustomEvents[T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ >{ callback: (r) => {}, nested: { nestedCallback: (r) => {}, },} : { callback: (r: string) => void; nested: { nestedCallback: (r: string) => void; }; } @@ -110,7 +110,7 @@ interface Optimization { } declare const A: ( >A : (obj: T, prop: P, factory: () => T[P]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ obj: T, >obj : T @@ -137,7 +137,7 @@ export const applyOptimizationDefaults = (optimization: Optimization) => { >A(optimization, "minimizer", () => [ { apply: (compiler) => {}, }, ]) : void > : ^^^^ >A : (obj: T, prop: P, factory: () => T[P]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >optimization : Optimization > : ^^^^^^^^^^^^ >"minimizer" : "minimizer" diff --git a/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types b/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types index 6287ef7f3a5a2..688a3a83d4b2a 100644 --- a/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types +++ b/tests/baselines/reference/contextualTypeOfIndexedAccessParameter.types @@ -19,7 +19,7 @@ type OptionsForKey = { a: { cb: (p: number) => number } } & { b: {} }; declare function f(key: K, options: OptionsForKey[K]): void; >f : (key: K, options: OptionsForKey[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >options : OptionsForKey[K] @@ -29,7 +29,7 @@ f("a", { >f("a", { cb: p => p,}) : void > : ^^^^ >f : (key: K, options: OptionsForKey[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"a" : "a" > : ^^^ >{ cb: p => p,} : { cb: (p: number) => number; } @@ -49,7 +49,7 @@ f("a", { function g< >g : (x: ({ a: string; } & { b: string; })[K], y: string) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ K extends "a" | "b">(x: ({ a: string } & { b: string })[K], y: string) { >x : ({ a: string; } & { b: string; })[K] diff --git a/tests/baselines/reference/contextualTypeSelfReferencing.types b/tests/baselines/reference/contextualTypeSelfReferencing.types index 0f6e839781322..ef182c64589b2 100644 --- a/tests/baselines/reference/contextualTypeSelfReferencing.types +++ b/tests/baselines/reference/contextualTypeSelfReferencing.types @@ -16,7 +16,7 @@ type narrow = def extends string declare const parse: (def: narrow) => def; >parse : (def: narrow) => def -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >def : narrow > : ^^^^^^^^^^^ @@ -26,7 +26,7 @@ const result = parse([{ a: "foo" }]); >parse([{ a: "foo" }]) : [{ a: "foo"; }] > : ^^^^^^^^^^^^^^^ >parse : (def: narrow) => def -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >[{ a: "foo" }] : [{ a: "foo"; }] > : ^^^^^^^^^^^^^^^ >{ a: "foo" } : { a: "foo"; } diff --git a/tests/baselines/reference/contextualTypeTupleEnd.types b/tests/baselines/reference/contextualTypeTupleEnd.types index 062d95bdbf9ae..2bb72a8a2a492 100644 --- a/tests/baselines/reference/contextualTypeTupleEnd.types +++ b/tests/baselines/reference/contextualTypeTupleEnd.types @@ -223,7 +223,7 @@ export type ExampleState = { export function createSelector>(...selectors: [...selectors: S, f: (x: any) => any]) { >createSelector : >(...selectors: [...selectors: S, f: (x: any) => any]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >selectors : [...selectors: S, f: (x: any) => any] > : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^ >x : any @@ -246,7 +246,7 @@ createSelector( >createSelector( x => x.foo, x => x.bar, () => 42) : void > : ^^^^ >createSelector : >(...selectors: [...selectors: S, f: (x: any) => any]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ x => x.foo, >x => x.foo : (x: ExampleState) => "foo" diff --git a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.types b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.types index 075082acb4cd7..7d833e1c5eb53 100644 --- a/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.types +++ b/tests/baselines/reference/contextualTypingOfGenericFunctionTypedArguments1.types @@ -22,7 +22,7 @@ interface Collection { interface Combinators { forEach(c: Collection, f: (x: T) => Date): void; >forEach : (c: Collection, f: (x: T) => Date) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >c : Collection > : ^^^^^^^^^^^^^ >f : (x: T) => Date @@ -62,11 +62,11 @@ var r5 = _.forEach(c2, f); >_.forEach(c2, f) : void > : ^^^^ >_.forEach : (c: Collection, f: (x: T) => Date) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >_ : Combinators > : ^^^^^^^^^^^ >forEach : (c: Collection, f: (x: T) => Date) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^ >f : (x: number) => string @@ -78,11 +78,11 @@ var r6 = _.forEach(c2, (x) => { return x.toFixed() }); >_.forEach(c2, (x) => { return x.toFixed() }) : void > : ^^^^ >_.forEach : (c: Collection, f: (x: T) => Date) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >_ : Combinators > : ^^^^^^^^^^^ >forEach : (c: Collection, f: (x: T) => Date) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^ >(x) => { return x.toFixed() } : (x: number) => string diff --git a/tests/baselines/reference/contextualTypingOfOptionalMembers.types b/tests/baselines/reference/contextualTypingOfOptionalMembers.types index db3692a5b60b1..1fe926261aaa0 100644 --- a/tests/baselines/reference/contextualTypingOfOptionalMembers.types +++ b/tests/baselines/reference/contextualTypingOfOptionalMembers.types @@ -29,7 +29,7 @@ interface Options { declare function app>(obj: Options): void; >app : >(obj: Options) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Options > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -37,7 +37,7 @@ app({ >app({ state: 100, actions: { foo: s => s // Should be typed number => number }, view: (s, a) => undefined as any,}) : void > : ^^^^ >app : >(obj: Options) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ state: 100, actions: { foo: s => s // Should be typed number => number }, view: (s, a) => undefined as any,} : { state: number; actions: { foo: (s: number) => number; }; view: (s: number, a: { foo: (s: number) => number; }) => any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ @@ -90,7 +90,7 @@ interface Bar { declare function foo(x: string | T): T; >foo : (x: string | T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : string | T > : ^^^^^^^^^^ @@ -100,7 +100,7 @@ const y = foo({ >foo({ bar(x) { // Should be typed number => void }}) : { bar(x: number): void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^ >foo : (x: string | T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ bar(x) { // Should be typed number => void }} : { bar(x: number): void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^ @@ -132,7 +132,7 @@ interface Options2 { declare function app2>(obj: Options2): void; >app2 : >(obj: Options2) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Options2 > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -140,7 +140,7 @@ app2({ >app2({ state: 100, actions: { foo: s => s // Should be typed number => number }, view: (s, a) => undefined as any,}) : void > : ^^^^ >app2 : >(obj: Options2) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ state: 100, actions: { foo: s => s // Should be typed number => number }, view: (s, a) => undefined as any,} : { state: number; actions: { foo: (s: number) => number; }; view: (s: number, a: { foo: (s: number) => number; }) => any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ @@ -191,7 +191,7 @@ type ActionsArray = ((state: State) => State)[]; declare function app3>(obj: Options): void; >app3 : >(obj: Options) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Options > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -199,7 +199,7 @@ app3({ >app3({ state: 100, actions: [ s => s // Should be typed number => number ], view: (s, a) => undefined as any,}) : void > : ^^^^ >app3 : >(obj: Options) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ state: 100, actions: [ s => s // Should be typed number => number ], view: (s, a) => undefined as any,} : { state: number; actions: ((s: number) => number)[]; view: (s: number, a: ((s: number) => number)[]) => any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ @@ -254,7 +254,7 @@ interface ActionsObjectOr { declare function App4>(props: Options["actions"] & { state: State }): JSX.Element; >App4 : >(props: Options["actions"] & { state: State; }) => JSX.Element -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : (string | Actions) & { state: State; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >state : State @@ -268,7 +268,7 @@ const a = s} />; // TODO: should be number => number > s} /> : JSX.Element > : ^^^^^^^^^^^ >App4 : >(props: Options["actions"] & { state: State; }) => JSX.Element -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >state : number > : ^^^^^^ >100 : 100 diff --git a/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types b/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types index 67ccb64b9f7a5..5416b430b2adf 100644 --- a/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types +++ b/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types @@ -13,7 +13,7 @@ declare function isString(text: unknown): text is string; declare function getPropFromRaw( >getPropFromRaw : (prop: "files" | "include" | "exclude" | "references", validateElement: (value: unknown) => boolean, elementTypeName: string) => PropOfRaw -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ prop: "files" | "include" | "exclude" | "references", >prop : "files" | "include" | "exclude" | "references" @@ -44,7 +44,7 @@ function getSpecsFromRaw( >getPropFromRaw(prop, isString, "string") : PropOfRaw > : ^^^^^^^^^^^^^^^^^ >getPropFromRaw : (prop: "files" | "include" | "exclude" | "references", validateElement: (value: unknown) => boolean, elementTypeName: string) => PropOfRaw -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >prop : "files" | "include" | "exclude" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isString : (text: unknown) => text is string diff --git a/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types b/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types index 62a1ecf06acd9..921b30a173575 100644 --- a/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types +++ b/tests/baselines/reference/contextualTypingTwoInstancesOfSameTypeParameter.types @@ -3,7 +3,7 @@ === contextualTypingTwoInstancesOfSameTypeParameter.ts === function f6(x: (a: T) => T) { >f6 : (x: (a: T) => T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -14,14 +14,14 @@ function f6(x: (a: T) => T) { f6(x => f6(y => x = y)); >f6(x => f6(y => x = y)) : any >f6 : (x: (a: T) => T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x => f6(y => x = y) : (x: unknown) => any > : ^ ^^^^^^^^^^^^^^^^^ >x : unknown > : ^^^^^^^ >f6(y => x = y) : any >f6 : (x: (a: T) => T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >y => x = y : (y: unknown) => unknown > : ^ ^^^^^^^^^^^^^^^^^^^^^ >y : unknown diff --git a/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.types b/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.types index 14075af84d112..5478a69312cad 100644 --- a/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.types +++ b/tests/baselines/reference/contextualTypingWithFixedTypeParameters1.types @@ -3,7 +3,7 @@ === contextualTypingWithFixedTypeParameters1.ts === var f10: (x: T, b: () => (a: T) => void, y: T) => T; >f10 : (x: T, b: () => (a: T) => void, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >b : () => (a: T) => void @@ -17,7 +17,7 @@ f10('', () => a => a.foo, ''); // a is "" >f10('', () => a => a.foo, '') : string > : ^^^^^^ >f10 : (x: T, b: () => (a: T) => void, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >'' : "" > : ^^ >() => a => a.foo : () => (a: string) => any @@ -41,7 +41,7 @@ var r9 = f10('', () => (a => a.foo), 1); // error >f10('', () => (a => a.foo), 1) : "" > : ^^ >f10 : (x: T, b: () => (a: T) => void, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >'' : "" > : ^^ >() => (a => a.foo) : () => (a: "") => any diff --git a/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types b/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types index a70b54e69ccb4..5940967bb33eb 100644 --- a/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types +++ b/tests/baselines/reference/contextualTypingWithGenericAndNonGenericSignature.types @@ -5,7 +5,7 @@ var f2: { >f2 : { (x: string, y: number): string; (x: T, y: U): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ (x: string, y: number): string; >x : string @@ -25,7 +25,7 @@ f2 = (x, y) => { return x } >f2 = (x, y) => { return x } : (x: any, y: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >f2 : { (x: string, y: number): string; (x: T, y: U): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >(x, y) => { return x } : (x: any, y: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >x : any @@ -34,7 +34,7 @@ f2 = (x, y) => { return x } var f3: { >f3 : { (x: T, y: U): T; (x: string, y: number): string; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ (x: T, y: U): T >x : T @@ -54,7 +54,7 @@ f3 = (x, y) => { return x } >f3 = (x, y) => { return x } : (x: any, y: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >f3 : { (x: T, y: U): T; (x: string, y: number): string; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >(x, y) => { return x } : (x: any, y: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >x : any diff --git a/tests/baselines/reference/contextualTypingWithGenericSignature.types b/tests/baselines/reference/contextualTypingWithGenericSignature.types index cd801ea185b3e..e6da78b2cbb99 100644 --- a/tests/baselines/reference/contextualTypingWithGenericSignature.types +++ b/tests/baselines/reference/contextualTypingWithGenericSignature.types @@ -5,7 +5,7 @@ var f2: { >f2 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ (x: T, y: U): T >x : T @@ -19,7 +19,7 @@ f2 = (x, y) => { return x } >f2 = (x, y) => { return x } : (x: T, y: U) => T > : ^^^^^^^ ^^^^^ ^^^^^^^^^ >f2 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(x, y) => { return x } : (x: T, y: U) => T > : ^^^^^^^ ^^^^^ ^^^^^^^^^ >x : T diff --git a/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types index 341086c4685a9..e5e78e62a754c 100644 --- a/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types +++ b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types @@ -291,11 +291,11 @@ async function copyExtensions( >Promise.all( fromExtensions .filter((e) => !e.isApplicationScoped) .map(async (e) => [e, await scanMetadata(e)]) ) : Promise<[ILocalExtension, Metadata][]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ fromExtensions >fromExtensions .filter((e) => !e.isApplicationScoped) .map(async (e) => [e, await scanMetadata(e)]) : Promise<[ILocalExtension, Metadata]>[] diff --git a/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnTypeFromUnion.types b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnTypeFromUnion.types index 434665fea85fb..0c9855ccbad47 100644 --- a/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnTypeFromUnion.types +++ b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnTypeFromUnion.types @@ -16,7 +16,7 @@ declare class StateMachine { declare function createMachine(implementations: { >createMachine : (implementations: { services: Record Promise | StateMachine>; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >implementations : { services: Record Promise | StateMachine>; } > : ^^^^^^^^^^^^ ^^^ @@ -30,7 +30,7 @@ createMachine<{ count: number }>({ >createMachine<{ count: number }>({ services: { test: async () => Promise.reject("some err"), async test2() { return Promise.reject("some err"); }, },}) : void > : ^^^^ >createMachine : (implementations: { services: Record Promise | StateMachine>; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >count : number > : ^^^^^^ >{ services: { test: async () => Promise.reject("some err"), async test2() { return Promise.reject("some err"); }, },} : { services: { test: () => Promise<{ count: number; }>; test2(): Promise<{ count: number; }>; }; } @@ -50,11 +50,11 @@ createMachine<{ count: number }>({ >Promise.reject("some err") : Promise<{ count: number; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"some err" : "some err" > : ^^^^^^^^^^ @@ -66,11 +66,11 @@ createMachine<{ count: number }>({ >Promise.reject("some err") : Promise<{ count: number; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"some err" : "some err" > : ^^^^^^^^^^ @@ -92,11 +92,11 @@ function fn1(): () => Promise<{ count: number }> | StateMachine<{ count: number >Promise.reject('some err') : Promise<{ count: number; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >'some err' : "some err" > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/contextuallyTypeGeneratorReturnTypeFromUnion.types b/tests/baselines/reference/contextuallyTypeGeneratorReturnTypeFromUnion.types index f9093e1a8ddb1..e5e1c9d9adcaa 100644 --- a/tests/baselines/reference/contextuallyTypeGeneratorReturnTypeFromUnion.types +++ b/tests/baselines/reference/contextuallyTypeGeneratorReturnTypeFromUnion.types @@ -50,11 +50,11 @@ const test2: Action2 = async function* () { >Promise.resolve('') : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >'' : "" > : ^^ diff --git a/tests/baselines/reference/contextuallyTypedBooleanLiterals.types b/tests/baselines/reference/contextuallyTypedBooleanLiterals.types index bf9818ad6bd80..9c1e027e3b700 100644 --- a/tests/baselines/reference/contextuallyTypedBooleanLiterals.types +++ b/tests/baselines/reference/contextuallyTypedBooleanLiterals.types @@ -20,7 +20,7 @@ type Box = { declare function box(value: T): Box; >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -30,7 +30,7 @@ const bn1 = box(0); // Box >box(0) : Box > : ^^^^^^^^^^^ >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >0 : 0 > : ^ @@ -40,7 +40,7 @@ const bn2: Box = box(0); // Ok >box(0) : Box > : ^^^^^^^^^^^ >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >0 : 0 > : ^ @@ -50,7 +50,7 @@ const bb1 = box(false); // Box >box(false) : Box > : ^^^^^^^^^^^^ >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >false : false > : ^^^^^ @@ -60,7 +60,7 @@ const bb2: Box = box(false); // Error, box not assignable to Bo >box(false) : Box > : ^^^^^^^^^^^^ >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >false : false > : ^^^^^ @@ -76,7 +76,7 @@ interface Observable declare function observable(value: T): Observable; >observable : (value: T) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -86,7 +86,7 @@ const x: Observable = observable(false); >observable(false) : Observable > : ^^^^^^^^^^^^^^^^^^^ >observable : (value: T) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >false : false > : ^^^^^ diff --git a/tests/baselines/reference/contextuallyTypedGenericAssignment.types b/tests/baselines/reference/contextuallyTypedGenericAssignment.types index f04ad4a88165d..8eaa7bce45400 100644 --- a/tests/baselines/reference/contextuallyTypedGenericAssignment.types +++ b/tests/baselines/reference/contextuallyTypedGenericAssignment.types @@ -3,11 +3,11 @@ === contextuallyTypedGenericAssignment.ts === function foo( >foo : (arg: (t: T, ...rest: A) => number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ arg: (t: T, ...rest: A) => number >arg : (t: T, ...rest: A) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >a : number > : ^^^^^^ >t : T @@ -21,7 +21,7 @@ foo((t, u: number) => t.a) >foo((t, u: number) => t.a) : void > : ^^^^ >foo : (arg: (t: T, ...rest: A) => number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(t, u: number) => t.a : (t: T, u: number) => number > : ^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^ >t : T diff --git a/tests/baselines/reference/contextuallyTypedJsxAttribute.types b/tests/baselines/reference/contextuallyTypedJsxAttribute.types index 1abe776c0796d..d14c404d0cbd0 100644 --- a/tests/baselines/reference/contextuallyTypedJsxAttribute.types +++ b/tests/baselines/reference/contextuallyTypedJsxAttribute.types @@ -27,14 +27,14 @@ type Props = { as?: C } & Elements[C]; declare function Test(props: Props): null; >Test : (props: Props) => null -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : Props > : ^^^^^^^^ {}}/> : error >Test : (props: Props) => null -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ as="bar" >as : "bar" @@ -54,7 +54,7 @@ Test({ >Test({ as: "bar", callback: (value) => {},}) : null > : ^^^^ >Test : (props: Props) => null -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ as: "bar", callback: (value) => {},} : { as: "bar"; callback: (value: string) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -77,7 +77,7 @@ Test({ > as="bar" callback={(value) => {}}/> : error >Test : (props: Props) => null -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ as="bar" >as : "bar" diff --git a/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types b/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types index 778e058377b75..22c2f5ef5f577 100644 --- a/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types +++ b/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=false).types @@ -5,7 +5,7 @@ declare function match(cb: (value: T) => boolean): T; >match : (cb: (value: T) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (value: T) => boolean > : ^ ^^ ^^^^^ >value : T @@ -33,7 +33,7 @@ foo({ y: match(y => y > 0) }) >match(y => y > 0) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >match : (cb: (value: T) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y => y > 0 : (y: number | undefined) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >y : number | undefined @@ -61,7 +61,7 @@ foo2([match(y => y > 0)]) >match(y => y > 0) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >match : (cb: (value: T) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y => y > 0 : (y: number | undefined) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >y : number | undefined diff --git a/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=true).types b/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=true).types index ff84c56b31675..b26b39382d6cb 100644 --- a/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=true).types +++ b/tests/baselines/reference/contextuallyTypedOptionalProperty(exactoptionalpropertytypes=true).types @@ -5,7 +5,7 @@ declare function match(cb: (value: T) => boolean): T; >match : (cb: (value: T) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (value: T) => boolean > : ^ ^^ ^^^^^ >value : T @@ -33,7 +33,7 @@ foo({ y: match(y => y > 0) }) >match(y => y > 0) : number > : ^^^^^^ >match : (cb: (value: T) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y => y > 0 : (y: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >y : number @@ -61,7 +61,7 @@ foo2([match(y => y > 0)]) >match(y => y > 0) : number > : ^^^^^^ >match : (cb: (value: T) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y => y > 0 : (y: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >y : number diff --git a/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types index 2aac7cab5e6a8..594f51f48d0d6 100644 --- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types +++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types @@ -3,13 +3,13 @@ === contextuallyTypedParametersWithInitializers1.ts === declare function id1(input: T): T; >id1 : (input: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >input : T > : ^ declare function id2 any>(input: T): T; >id2 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >input : T @@ -17,7 +17,7 @@ declare function id2 any>(input: T): T; declare function id3 any>(input: T): T; >id3 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { foo: any; } > : ^^^^^^^ ^^^ >foo : any @@ -27,7 +27,7 @@ declare function id3 any>(input: T): T; declare function id4 any>(input: T): T; >id4 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { foo?: number; } > : ^^^^^^^^ ^^^ >foo : number | undefined @@ -37,7 +37,7 @@ declare function id4 any>(input: T): T; declare function id5 any>(input: T): T; >id5 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number | undefined > : ^^^^^^^^^^^^^^^^^^ >input : T @@ -61,7 +61,7 @@ const f11 = id1(function ({ foo = 42 }) { return foo }); >id1(function ({ foo = 42 }) { return foo }) : ({ foo }: { foo?: number | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >id1 : (input: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function ({ foo = 42 }) { return foo } : ({ foo }: { foo?: number | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -77,7 +77,7 @@ const f12 = id2(function ({ foo = 42 }) { return foo }); >id2(function ({ foo = 42 }) { return foo }) : ({ foo }: any) => any > : ^ ^^^^^^^^^^^^^ >id2 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function ({ foo = 42 }) { return foo } : ({ foo }: any) => any > : ^ ^^^^^^^^^^^^^ >foo : any @@ -93,7 +93,7 @@ const f13 = id3(function ({ foo = 42 }) { return foo }); >id3(function ({ foo = 42 }) { return foo }) : ({ foo }: { foo: any; }) => any > : ^ ^^^^^^^^^ ^^^^^^^^^^^ >id3 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function ({ foo = 42 }) { return foo } : ({ foo }: { foo: any; }) => any > : ^ ^^^^^^^^^ ^^^^^^^^^^^ >foo : any @@ -109,7 +109,7 @@ const f14 = id4(function ({ foo = 42 }) { return foo }); >id4(function ({ foo = 42 }) { return foo }) : ({ foo }: { foo?: number; }) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ >id4 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function ({ foo = 42 }) { return foo } : ({ foo }: { foo?: number; }) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ >foo : number @@ -137,7 +137,7 @@ const f21 = id1(function (foo = 42) { return foo }); >id1(function (foo = 42) { return foo }) : (foo?: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >id1 : (input: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function (foo = 42) { return foo } : (foo?: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -153,7 +153,7 @@ const f22 = id2(function (foo = 42) { return foo }); >id2(function (foo = 42) { return foo }) : (foo?: any) => any > : ^ ^^^^^^^^^^^^^^ >id2 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (foo = 42) { return foo } : (foo?: any) => any > : ^ ^^^^^^^^^^^^^^ >foo : any @@ -169,7 +169,7 @@ const f25 = id5(function (foo = 42) { return foo }); >id5(function (foo = 42) { return foo }) : (foo?: number | undefined) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >id5 : any>(input: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (foo = 42) { return foo } : (foo?: number | undefined) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number | undefined @@ -275,31 +275,31 @@ const f8: () => any = (...x) => 0; // [] declare function g1(x: T): T; >g1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function g2(x: T): T; >g2 : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ declare function g3(x: T): T; >g3 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ declare function g4(x: T): T; >g4 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ declare function g5 any>(x: T): T; >g5 : any>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : any[] > : ^^^^^ >x : T @@ -307,7 +307,7 @@ declare function g5 any>(x: T): T; declare function g6 any>(x: T): T; >g6 : any>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -315,7 +315,7 @@ g1((x = 1) => 0); // number >g1((x = 1) => 0) : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >g1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x = 1) => 0 : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >x : number @@ -329,7 +329,7 @@ g2((x = 1) => 0); // number >g2((x = 1) => 0) : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >g2 : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >(x = 1) => 0 : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >x : number @@ -343,7 +343,7 @@ g3((x = 1) => 0); // number >g3((x = 1) => 0) : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >g3 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x = 1) => 0 : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >x : number @@ -357,7 +357,7 @@ g4((x = 1) => 0); // number >g4((x = 1) => 0) : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >g4 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x = 1) => 0 : (x?: number) => 0 > : ^ ^^^^^^^^^^^^^^^ >x : number @@ -371,7 +371,7 @@ g5((x = 1) => 0); // any >g5((x = 1) => 0) : (x?: any) => number > : ^ ^^^^^^^^^^^^^^^^^ >g5 : any>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x = 1) => 0 : (x?: any) => number > : ^ ^^^^^^^^^^^^^^^^^ >x : any @@ -385,7 +385,7 @@ g6((x = 1) => 0); // number >g6((x = 1) => 0) : (x?: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >g6 : any>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x = 1) => 0 : (x?: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : number @@ -399,7 +399,7 @@ g6((x?) => 0); // Implicit any error >g6((x?) => 0) : (x?: any) => number > : ^ ^^^^^^^^^^^^^^^^^ >g6 : any>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x?) => 0 : (x?: any) => number > : ^ ^^^^^^^^^^^^^^^^^ >x : any @@ -411,7 +411,7 @@ g6((...x) => 0); // [] >g6((...x) => 0) : () => number > : ^^^^^^^^^^^^ >g6 : any>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(...x) => 0 : () => number > : ^^^^^^^^^^^^ >x : [] @@ -423,7 +423,7 @@ g6((...x) => 0); // [] function id(input: T): T { return input } >id : (input: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >input : T > : ^ >input : T @@ -448,7 +448,7 @@ const newGetFoo = id(getFoo); >id(getFoo) : ({ foo }: { foo?: number | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >id : (input: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >getFoo : ({ foo }: { foo?: number | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -458,7 +458,7 @@ const newGetFoo2 = id(function getFoo ({ foo = 42 }) { >id(function getFoo ({ foo = 42 }) { return foo;}) : ({ foo }: { foo?: number | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >id : (input: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function getFoo ({ foo = 42 }) { return foo;} : ({ foo }: { foo?: number | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getFoo : ({ foo }: { foo?: number | undefined; }) => number @@ -478,7 +478,7 @@ const newGetFoo2 = id(function getFoo ({ foo = 42 }) { declare function memoize(func: F): F; >memoize : (func: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >func : F > : ^ @@ -506,7 +506,7 @@ const memoizedAdd = memoize(add); >memoize(add) : (x: number, y?: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^ >memoize : (func: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >add : (x: number, y?: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -534,7 +534,7 @@ const memoizedAdd2 = memoize(add2); >memoize(add2) : (x: number, y?: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^ >memoize : (func: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >add2 : (x: number, y?: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -544,7 +544,7 @@ const memoizedAdd3 = memoize((x: number, y = 0): number => x + y); >memoize((x: number, y = 0): number => x + y) : (x: number, y?: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^ >memoize : (func: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: number, y = 0): number => x + y : (x: number, y?: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/contextuallyTypedParametersWithInitializers2.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers2.types index 5e445caa8ad11..5da79c21deccf 100644 --- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers2.types +++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers2.types @@ -3,7 +3,7 @@ === contextuallyTypedParametersWithInitializers2.ts === declare function test1< >test1 : unknown>>(context: TContext, methods: TMethods) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ TContext, TMethods extends Record unknown>, @@ -22,7 +22,7 @@ test1( >test1( { count: 0, }, { checkLimit: (ctx, max = 500) => {}, hasAccess: (ctx, user: { name: string }) => {}, },) : void > : ^^^^ >test1 : unknown>>(context: TContext, methods: TMethods) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ { >{ count: 0, } : { count: number; } > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextuallyTypedParametersWithInitializers3.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers3.types index 22cce6a1e3cf0..d1c26c7a3edcb 100644 --- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers3.types +++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers3.types @@ -15,7 +15,7 @@ interface GraphActions { export declare function create(config: T): void; >create : (config: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >config : T > : ^ @@ -29,7 +29,7 @@ create({ >create({ setDirection: (direction = "RIGHT") => { takesDirection(direction); },}) : void > : ^^^^ >create : (config: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ setDirection: (direction = "RIGHT") => { takesDirection(direction); },} : { setDirection: (direction?: CanvasDirection) => void; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextuallyTypedParametersWithInitializers4.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers4.types index 4dfd369a9c09a..80c3b8ec038b5 100644 --- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers4.types +++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers4.types @@ -3,7 +3,7 @@ === contextuallyTypedParametersWithInitializers4.ts === declare function test< >test : unknown>>(context: TContext, methods: TMethods) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ TContext, TMethods extends Record unknown>, @@ -22,7 +22,7 @@ test( >test( { count: 0, }, { checkLimit: (ctx, max = 3) => {}, },) : void > : ^^^^ >test : unknown>>(context: TContext, methods: TMethods) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ { >{ count: 0, } : { count: number; } > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types index 95e4eb7641d68..a0aa7b7125f73 100644 --- a/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types +++ b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types @@ -49,20 +49,20 @@ declare const ab: Action; declare function f(action: T, blah: { [K in T['type']]: (p: K) => void }): any; >f : (action: T, blah: { [K in T["type"]]: (p: K) => void; }) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >type : string | symbol > : ^^^^^^^^^^^^^^^ >action : T > : ^ >blah : { [K in T["type"]]: (p: K) => void; } -> : ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >p : K > : ^ f(ab, { >f(ab, { [A]: ap => { ap.description }, [B]: bp => { bp.description },}) : any >f : (action: T, blah: { [K in T["type"]]: (p: K) => void; }) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >ab : Action > : ^^^^^^ >{ [A]: ap => { ap.description }, [B]: bp => { bp.description },} : { [A]: (ap: unique symbol) => void; [B]: (bp: unique symbol) => void; } diff --git a/tests/baselines/reference/contextuallyTypingOrOperator3.types b/tests/baselines/reference/contextuallyTypingOrOperator3.types index 4ac1b54a13b31..86fed5d0b05c2 100644 --- a/tests/baselines/reference/contextuallyTypingOrOperator3.types +++ b/tests/baselines/reference/contextuallyTypingOrOperator3.types @@ -3,7 +3,7 @@ === contextuallyTypingOrOperator3.ts === function foo(u: U) { >foo : (u: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >u : U > : ^ diff --git a/tests/baselines/reference/contravariantInferenceAndTypeGuard.types b/tests/baselines/reference/contravariantInferenceAndTypeGuard.types index b0fdb7fbbbe58..3659b739c1144 100644 --- a/tests/baselines/reference/contravariantInferenceAndTypeGuard.types +++ b/tests/baselines/reference/contravariantInferenceAndTypeGuard.types @@ -44,7 +44,7 @@ declare class List { filter(fn: FilterFn, context: TContext): List; >filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext_1): List; (fn: IteratorFn): List; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : FilterFn > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >context : TContext @@ -52,13 +52,13 @@ declare class List { filter(fn: FilterFn): List; >filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn): List; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : FilterFn> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ filter(fn: IteratorFn, context: TContext): List; >filter : { (fn: FilterFn, context: TContext_1): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn): List; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : IteratorFn > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >context : TContext @@ -66,7 +66,7 @@ declare class List { filter(fn: IteratorFn): List; >filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn): List; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : IteratorFn> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -89,11 +89,11 @@ const filter1 = list2.filter(function(item, node, list): item is Test { >list2.filter(function(item, node, list): item is Test { this.b; // $ExpectType string item; // $ExpectType Test | null node; // $ExpectType ListItem list; // $ExpectType List return !!item;}, {b: 'c'}) : List > : ^^^^^^^^^^ >list2.filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn>): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn>): List; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^ >list2 : List > : ^^^^^^^^^^^^^^^^^ >filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn>): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn>): List; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^ >function(item, node, list): item is Test { this.b; // $ExpectType string item; // $ExpectType Test | null node; // $ExpectType ListItem list; // $ExpectType List return !!item;} : (this: { b: string; }, item: Test | null, node: ListItem, list: List) => item is Test > : ^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >item : Test | null diff --git a/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunction.types b/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunction.types index fd7dc6f5bfc4b..e9be6a552e820 100644 --- a/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunction.types +++ b/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunction.types @@ -25,7 +25,7 @@ type Funcs> = { declare function foo>(fns: Funcs): [A, B] >foo : >(fns: Funcs) => [A, B] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >fns : Funcs > : ^^^^^^^^^^^ @@ -35,7 +35,7 @@ const result = foo({ >foo({ bar: { fn: (a: string) => {}, thing: 'asd', },}) : [string, { bar: string; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : >(fns: Funcs) => [A, B] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ bar: { fn: (a: string) => {}, thing: 'asd', },} : { bar: { fn: (a: string) => void; thing: string; }; } > : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunctionJs.types b/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunctionJs.types index e12eb8bad98cb..17ce062ddcb77 100644 --- a/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunctionJs.types +++ b/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunctionJs.types @@ -15,7 +15,7 @@ */ function foo(fns) { >foo : >(fns: Funcs) => [A, B] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >fns : Funcs > : ^^^^^^^^^^^ @@ -29,7 +29,7 @@ const result = foo({ >foo({ bar: { fn: /** @param {string} a */ (a) => {}, thing: "asd", },}) : [string, { bar: string; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : >(fns: Funcs) => [A, B] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ bar: { fn: /** @param {string} a */ (a) => {}, thing: "asd", },} : { bar: { fn: (a: string) => void; thing: string; }; } > : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameter.types b/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameter.types index 244f7268b84b4..2b6ab15a44aa1 100644 --- a/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameter.types +++ b/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameter.types @@ -5,7 +5,7 @@ declare function filter(predicate: (value: T, index: number) => boolean): T; >filter : (predicate: (value: T, index: number) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >predicate : (value: T, index: number) => boolean > : ^ ^^ ^^ ^^ ^^^^^ >value : T @@ -19,7 +19,7 @@ const a = filter((pose?: number) => true); >filter((pose?: number) => true) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >filter : (predicate: (value: T, index: number) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(pose?: number) => true : (pose?: number) => true > : ^ ^^^ ^^^^^^^^^ >pose : number | undefined @@ -33,7 +33,7 @@ const b = filter((pose?: number, _?: number) => true); >filter((pose?: number, _?: number) => true) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >filter : (predicate: (value: T, index: number) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(pose?: number, _?: number) => true : (pose?: number, _?: number) => true > : ^ ^^^ ^^ ^^^ ^^^^^^^^^ >pose : number | undefined diff --git a/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameterJs.types b/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameterJs.types index a6a181075b918..0cde1def4314e 100644 --- a/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameterJs.types +++ b/tests/baselines/reference/contravariantOnlyInferenceWithAnnotatedOptionalParameterJs.types @@ -8,7 +8,7 @@ */ function filter(predicate) { >filter : (predicate: (value: T, index: number) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >predicate : (value: T, index: number) => boolean > : ^ ^^ ^^ ^^ ^^^^^ @@ -22,7 +22,7 @@ const a = filter( >filter( /** * @param {number} [pose] */ (pose) => true) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >filter : (predicate: (value: T, index: number) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ /** * @param {number} [pose] @@ -43,7 +43,7 @@ const b = filter( >filter( /** * @param {number} [pose] * @param {number} [_] */ (pose, _) => true) : number | undefined > : ^^^^^^^^^^^^^^^^^^ >filter : (predicate: (value: T, index: number) => boolean) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ /** * @param {number} [pose] diff --git a/tests/baselines/reference/contravariantTypeAliasInference.types b/tests/baselines/reference/contravariantTypeAliasInference.types index 7f2ca64c1e3a9..a255107517dce 100644 --- a/tests/baselines/reference/contravariantTypeAliasInference.types +++ b/tests/baselines/reference/contravariantTypeAliasInference.types @@ -23,7 +23,7 @@ declare let f2: Func1<"a">; declare function foo(f1: Func1, f2: Func1): void; >foo : (f1: Func1, f2: Func1) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f1 : Func1 > : ^^^^^^^^ >f2 : Func1 @@ -33,7 +33,7 @@ foo(f1, f2); >foo(f1, f2) : void > : ^^^^ >foo : (f1: Func1, f2: Func1) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f1 : Func1 > : ^^^^^^^^^^^^^ >f2 : Func1<"a"> @@ -49,7 +49,7 @@ declare let g2: Func2<"a">; declare function bar(g1: Func2, g2: Func2): void; >bar : (g1: Func2, g2: Func2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >g1 : Func2 > : ^^^^^^^^ >g2 : Func2 @@ -59,7 +59,7 @@ bar(f1, f2); >bar(f1, f2) : void > : ^^^^ >bar : (g1: Func2, g2: Func2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f1 : Func1 > : ^^^^^^^^^^^^^ >f2 : Func1<"a"> @@ -69,7 +69,7 @@ bar(g1, g2); >bar(g1, g2) : void > : ^^^^ >bar : (g1: Func2, g2: Func2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >g1 : Func2 > : ^^^^^^^^^^^^^ >g2 : Func2<"a"> diff --git a/tests/baselines/reference/controlFlowAliasing.types b/tests/baselines/reference/controlFlowAliasing.types index d24919344d519..26e7735aa561f 100644 --- a/tests/baselines/reference/controlFlowAliasing.types +++ b/tests/baselines/reference/controlFlowAliasing.types @@ -1462,7 +1462,7 @@ class Utils { static isDefined(value: T): value is NonNullable { >isDefined : (value: T) => value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -1492,11 +1492,11 @@ class A53267 { >Utils.isDefined(this.testNumber) : boolean > : ^^^^^^^ >Utils.isDefined : (value: T) => value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >Utils : typeof Utils > : ^^^^^^^^^^^^ >isDefined : (value: T) => value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this.testNumber : number | undefined > : ^^^^^^^^^^^^^^^^^^ >this : this diff --git a/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types index 2a7944f623742..6a00c41b7c6c8 100644 --- a/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types +++ b/tests/baselines/reference/controlFlowCommaExpressionAssertionMultiple.types @@ -3,7 +3,7 @@ === controlFlowCommaExpressionAssertionMultiple.ts === function Narrow(value: any): asserts value is T {} >Narrow : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : any function func(foo: any, bar: any) { @@ -18,12 +18,12 @@ function func(foo: any, bar: any) { >Narrow(foo) : void > : ^^^^ >Narrow : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : any >Narrow(bar) : void > : ^^^^ >Narrow : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bar : any foo; @@ -50,17 +50,17 @@ function func2(foo: any, bar: any, baz: any) { >Narrow(foo) : void > : ^^^^ >Narrow : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : any >Narrow(bar) : void > : ^^^^ >Narrow : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bar : any >Narrow(baz) : void > : ^^^^ >Narrow : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >baz : any foo; diff --git a/tests/baselines/reference/controlFlowComputedPropertyNames.types b/tests/baselines/reference/controlFlowComputedPropertyNames.types index c58d908440607..8884b4781394e 100644 --- a/tests/baselines/reference/controlFlowComputedPropertyNames.types +++ b/tests/baselines/reference/controlFlowComputedPropertyNames.types @@ -238,7 +238,7 @@ function f3(obj: Thing, key: keyof Thing) { function f4(obj: Record, key: K) { >f4 : (obj: Record, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Record > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : K diff --git a/tests/baselines/reference/controlFlowGenericTypes.types b/tests/baselines/reference/controlFlowGenericTypes.types index 2aedc363b070a..f24fd47c73f65 100644 --- a/tests/baselines/reference/controlFlowGenericTypes.types +++ b/tests/baselines/reference/controlFlowGenericTypes.types @@ -3,7 +3,7 @@ === controlFlowGenericTypes.ts === function f1(x: T, y: { a: T }, z: [T]): string { >f1 : (x: T, y: { a: T; }, z: [T]) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : { a: T; } @@ -96,7 +96,7 @@ function f1(x: T, y: { a: T }, z: [T]): string { function f2(x: Extract | null): string { >f2 : (x: Extract | null) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Extract | null > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -145,13 +145,13 @@ declare function isUndefined(x: unknown): x is undefined; declare function unbox(x: Box): T; >unbox : (x: Box) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^ function g1 | undefined>(x: T) { >g1 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -167,7 +167,7 @@ function g1 | undefined>(x: T) { >unbox(x) : T > : ^ >unbox : (x: Box) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^ } @@ -175,7 +175,7 @@ function g1 | undefined>(x: T) { function g2 | undefined>(x: T) { >g2 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -193,7 +193,7 @@ function g2 | undefined>(x: T) { >unbox(x) : T > : ^ >unbox : (x: Box) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^ } @@ -201,7 +201,7 @@ function g2 | undefined>(x: T) { function g3 | undefined>(x: T) { >g3 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -219,7 +219,7 @@ function g3 | undefined>(x: T) { >unbox(x) : T > : ^ >unbox : (x: Box) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : undefined > : ^^^^^^^^^ } @@ -227,7 +227,7 @@ function g3 | undefined>(x: T) { function g4 | undefined>(x: T) { >g4 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -243,7 +243,7 @@ function g4 | undefined>(x: T) { >unbox(x) : unknown > : ^^^^^^^ >unbox : (x: Box) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : undefined > : ^^^^^^^^^ } @@ -259,7 +259,7 @@ declare function takeA(val: 'A'): void; export function bounceAndTakeIfA(value: AB): AB { >bounceAndTakeIfA : (value: AB) => AB -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : AB > : ^^ @@ -376,9 +376,9 @@ const fn = (value: MyUnion) => { const fn2 = (value: T): MyUnion => { >fn2 : (value: T) => MyUnion -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(value: T): MyUnion => { value.foo; // Error if ('foo' in value) { value.foo; } if (value.tag === 'B') { value.foo; }} : (value: T) => MyUnion -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ @@ -462,7 +462,7 @@ type Union = A1 | B1 function notWorking(object: T) { >notWorking : (object: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >object : T > : ^ @@ -498,7 +498,7 @@ interface A { function get(key: K, obj: A): number { >get : (key: K, obj: A) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >obj : A @@ -538,13 +538,13 @@ class EventEmitter { off(...args: [K, number] | [unknown, string]):void {} >off : (...args: [K, number] | [unknown, string]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : [K, number] | [unknown, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function once>(emittingObject: T, eventName: keyof ET): void { >once : >(emittingObject: T, eventName: keyof ET) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >emittingObject : T > : ^ >eventName : keyof ET @@ -589,7 +589,7 @@ function once>(emittingObject: T, eventName: keyo function fx1(obj: T, key: K) { >fx1 : (obj: T, key: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -622,7 +622,7 @@ function fx1(obj: T, key: K) { function fx2, K extends keyof T>(obj: T, key: K) { >fx2 : , K extends keyof T>(obj: T, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -655,7 +655,7 @@ function fx2, K extends keyof T>(obj: T, key: function fx3 | undefined, K extends keyof T>(obj: T, key: K) { >fx3 : | undefined, K extends keyof T>(obj: T, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -762,7 +762,7 @@ class TableBaseEnum< function f10(x: T, y: Partial) { >f10 : (x: T, y: Partial) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >x : T @@ -841,7 +841,7 @@ type Control = Button | Checkbox; function update(control : T | undefined, key: K, value: T[K]): void { >update : (control: T | undefined, key: K, value: T[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >control : T | undefined > : ^^^^^^^^^^^^^ >key : K @@ -885,7 +885,7 @@ type Column = (keyof T extends never ? { id?: number | string } : { id: T }) function getColumnProperty(column: Column, key: keyof Column) { >getColumnProperty : (column: Column, key: keyof Column) => Column["title" | keyof (keyof T extends never ? { id?: number | string; } : { id: T; })] -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >column : Column > : ^^^^^^^^^ >key : "title" | keyof (keyof T extends never ? { id?: number | string; } : { id: T; }) diff --git a/tests/baselines/reference/controlFlowIfStatement.types b/tests/baselines/reference/controlFlowIfStatement.types index 823f3de5f6795..2912baa809b31 100644 --- a/tests/baselines/reference/controlFlowIfStatement.types +++ b/tests/baselines/reference/controlFlowIfStatement.types @@ -134,7 +134,7 @@ function b() { } function c(data: string | T): T { >c : (data: string | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : string | T > : ^^^^^^^^^^ @@ -167,7 +167,7 @@ function c(data: string | T): T { } function d(data: string | T): never { >d : (data: string | T) => never -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >data : string | T > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/controlFlowInstanceof.types b/tests/baselines/reference/controlFlowInstanceof.types index fc2fe6c36b20b..9d22de0086ef3 100644 --- a/tests/baselines/reference/controlFlowInstanceof.types +++ b/tests/baselines/reference/controlFlowInstanceof.types @@ -43,11 +43,11 @@ function f1(s: Set | Set) { >s.add(42) : Set > : ^^^^^^^^^^^ >s.add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >s : Set > : ^^^^^^^^^^^ >add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >42 : 42 > : ^^ } @@ -92,11 +92,11 @@ function f2(s: Set | Set) { >s.add(42) : Set > : ^^^^^^^^^^^ >s.add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >s : Set > : ^^^^^^^^^^^ >add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >42 : 42 > : ^^ } diff --git a/tests/baselines/reference/controlFlowInstanceofWithSymbolHasInstance.types b/tests/baselines/reference/controlFlowInstanceofWithSymbolHasInstance.types index d980a88e871a9..094a3bd7e59b0 100644 --- a/tests/baselines/reference/controlFlowInstanceofWithSymbolHasInstance.types +++ b/tests/baselines/reference/controlFlowInstanceofWithSymbolHasInstance.types @@ -67,11 +67,11 @@ function f1(s: Set | Set) { >s.add(42) : Set > : ^^^^^^^^^^^ >s.add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >s : Set > : ^^^^^^^^^^^ >add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >42 : 42 > : ^^ } @@ -116,11 +116,11 @@ function f2(s: Set | Set) { >s.add(42) : Set > : ^^^^^^^^^^^ >s.add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >s : Set > : ^^^^^^^^^^^ >add : (value: number) => Set -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^ ^^^^^^ >42 : 42 > : ^^ } @@ -205,7 +205,7 @@ class A { static [Symbol.hasInstance](this: T, value: unknown): value is ( >[Symbol.hasInstance] : (this: T, value: unknown) => value is (T extends (abstract new (...args: any) => infer U) ? U : never) -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >Symbol.hasInstance : unique symbol > : ^^^^^^^^^^^^^ >Symbol : SymbolConstructor diff --git a/tests/baselines/reference/controlFlowLoopAnalysis.types b/tests/baselines/reference/controlFlowLoopAnalysis.types index 30caab5676ccf..dc234d1762a0e 100644 --- a/tests/baselines/reference/controlFlowLoopAnalysis.types +++ b/tests/baselines/reference/controlFlowLoopAnalysis.types @@ -103,7 +103,7 @@ function test2() { function mapUntilCant( >mapUntilCant : (values: a[], canTake: (value: a, index: number) => boolean, mapping: (value: a, index: number) => b) => b[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ values: a[], >values : a[] diff --git a/tests/baselines/reference/controlFlowOptionalChain.types b/tests/baselines/reference/controlFlowOptionalChain.types index 1be51c8e96277..0f7a16d58e8eb 100644 --- a/tests/baselines/reference/controlFlowOptionalChain.types +++ b/tests/baselines/reference/controlFlowOptionalChain.types @@ -910,7 +910,7 @@ o6.f; // asserts declare const isDefined: (value: T) => asserts value is NonNullable; >isDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -988,7 +988,7 @@ function f01(x: unknown) { >isDefined(maybeIsString) : void > : ^^^^ >isDefined : (value: T) => asserts value is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >maybeIsString : ((value: unknown) => asserts value is string) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ @@ -2732,7 +2732,7 @@ declare function assert(x: unknown): asserts x; declare function assertNonNull(x: T): asserts x is NonNullable; >assertNonNull : (x: T) => asserts x is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -2848,7 +2848,7 @@ function f30(o: Thing | undefined) { >assertNonNull(o?.foo) : void > : ^^^^ >assertNonNull : (x: T) => asserts x is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o?.foo : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : Thing | undefined diff --git a/tests/baselines/reference/controlFlowOuterVariable.types b/tests/baselines/reference/controlFlowOuterVariable.types index b772a73626f5e..ceeeba6874c88 100644 --- a/tests/baselines/reference/controlFlowOuterVariable.types +++ b/tests/baselines/reference/controlFlowOuterVariable.types @@ -39,9 +39,9 @@ const CONFIG = { const helper = function(t: T[]) { >helper : (t: T[]) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >function(t: T[]) { helper(t.slice(1));} : (t: T[]) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T[] > : ^^^ @@ -49,7 +49,7 @@ const helper = function(t: T[]) { >helper(t.slice(1)) : void > : ^^^^ >helper : (t: T[]) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t.slice(1) : T[] > : ^^^ >t.slice : (start?: number, end?: number) => T[] diff --git a/tests/baselines/reference/controlFlowTruthiness.types b/tests/baselines/reference/controlFlowTruthiness.types index e2f0b9615391f..a991f77187177 100644 --- a/tests/baselines/reference/controlFlowTruthiness.types +++ b/tests/baselines/reference/controlFlowTruthiness.types @@ -246,7 +246,7 @@ function f7(x: {}) { function f8(x: T) { >f8 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -267,7 +267,7 @@ function f8(x: T) { function f9(x: T) { >f9 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/convertKeywordsYes.types b/tests/baselines/reference/convertKeywordsYes.types index a10e84caffda4..5b9840f8544f0 100644 --- a/tests/baselines/reference/convertKeywordsYes.types +++ b/tests/baselines/reference/convertKeywordsYes.types @@ -113,7 +113,7 @@ var declare = 0; function bigGeneric< >bigGeneric : (c: constructor, a: any, b2: boolean, i: implements, i2: interface, l: let, m: module, n: number, p: package, p2: private, p3: protected, p4: public, s: set, s2: static, s3: string, g: get, y: yield, d: declare) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ constructor, implements , diff --git a/tests/baselines/reference/correctOrderOfPromiseMethod.types b/tests/baselines/reference/correctOrderOfPromiseMethod.types index 2c6d644924e6e..4651e12663043 100644 --- a/tests/baselines/reference/correctOrderOfPromiseMethod.types +++ b/tests/baselines/reference/correctOrderOfPromiseMethod.types @@ -47,11 +47,11 @@ async function countEverything(): Promise { >Promise.all([ providerA(), providerB(), ]) : Promise<[A[], B[]]> > : ^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[ providerA(), providerB(), ] : [Promise, Promise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -118,11 +118,11 @@ const expected: Promise<["a", "b", "c"]> = Promise.all(undefined as readonly ["a >Promise.all(undefined as readonly ["a", "b", "c"]) : Promise<["a", "b", "c"]> > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >undefined as readonly ["a", "b", "c"] : readonly ["a", "b", "c"] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/correlatedUnions.types b/tests/baselines/reference/correlatedUnions.types index cfab9eafdbf84..0435490c360f0 100644 --- a/tests/baselines/reference/correlatedUnions.types +++ b/tests/baselines/reference/correlatedUnions.types @@ -38,7 +38,7 @@ type UnionRecord = { [P in K]: { function processRecord(rec: UnionRecord) { >processRecord : (rec: UnionRecord) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >rec : UnionRecord > : ^^^^^^^^^^^^^^ @@ -71,7 +71,7 @@ processRecord(r1); >processRecord(r1) : void > : ^^^^ >processRecord : (rec: UnionRecord) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >r1 : { kind: "n"; v: number; f: (v: number) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ @@ -79,7 +79,7 @@ processRecord(r2); >processRecord(r2) : void > : ^^^^ >processRecord : (rec: UnionRecord) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >r2 : UnionRecord > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -87,7 +87,7 @@ processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }); >processRecord({ kind: 'n', v: 42, f: v => v.toExponential() }) : void > : ^^^^ >processRecord : (rec: UnionRecord) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ kind: 'n', v: 42, f: v => v.toExponential() } : { kind: "n"; v: number; f: (v: number) => string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >kind : "n" @@ -194,7 +194,7 @@ const renderFuncs: RenderFuncMap = { function renderField(field: FormField) { >renderField : (field: FormField) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >field : FormField > : ^^^^^^^^^^^^ @@ -351,7 +351,7 @@ const data: DataEntry[] = [ function process(data: DataEntry[]) { >process : (data: DataEntry[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >data : DataEntry[] > : ^^^^^^^^^^^^^^ @@ -408,7 +408,7 @@ process(data); >process(data) : void > : ^^^^ >process : (data: DataEntry[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >data : DataEntry[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -416,7 +416,7 @@ process([{ type: 'foo', data: 'abc' }]); >process([{ type: 'foo', data: 'abc' }]) : void > : ^^^^ >process : (data: DataEntry[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >[{ type: 'foo', data: 'abc' }] : { type: "foo"; data: string; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ type: 'foo', data: 'abc' } : { type: "foo"; data: string; } @@ -452,7 +452,7 @@ type LetterCaller = { [P in K]: { letter: Record({ letter, caller }: LetterCaller): void { >call : ({ letter, caller }: LetterCaller) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >letter : Record > : ^^^^^^^^^^^^^^^^^^^^^^^ >caller : (x: Record) => void @@ -507,7 +507,7 @@ call(xx); >call(xx) : void > : ^^^^ >call : ({ letter, caller }: LetterCaller) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >xx : { letter: A; caller: ACaller; } | { letter: B; caller: BCaller; } > : ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ @@ -535,7 +535,7 @@ type Ev = { [P in K]: { function processEvents(events: Ev[]) { >processEvents : (events: Ev[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >events : Ev[] > : ^^^^^^^ @@ -549,11 +549,11 @@ function processEvents(events: Ev[]) { >document.addEventListener(event.name, (ev) => event.callback(ev), { once: event.once }) : void > : ^^^^ >document.addEventListener : { (type: K_1, listener: (this: Document, ev: DocumentEventMap[K_1]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >addEventListener : { (type: K_1, listener: (this: Document, ev: DocumentEventMap[K_1]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >event.name : K > : ^ >event : Ev @@ -589,7 +589,7 @@ function processEvents(events: Ev[]) { function createEventListener({ name, once = false, callback }: Ev): Ev { >createEventListener : ({ name, once, callback }: Ev) => Ev -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >name : K > : ^ >once : boolean @@ -616,7 +616,7 @@ const clickEvent = createEventListener({ >createEventListener({ name: "click", callback: ev => console.log(ev),}) : { readonly name: "click"; readonly once?: boolean; readonly callback: (ev: MouseEvent) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >createEventListener : ({ name, once, callback }: Ev) => Ev -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "click", callback: ev => console.log(ev),} : { name: "click"; callback: (ev: MouseEvent) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -652,7 +652,7 @@ const scrollEvent = createEventListener({ >createEventListener({ name: "scroll", callback: ev => console.log(ev),}) : { readonly name: "scroll"; readonly once?: boolean; readonly callback: (ev: Event) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ >createEventListener : ({ name, once, callback }: Ev) => Ev -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "scroll", callback: ev => console.log(ev),} : { name: "scroll"; callback: (ev: Event) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ @@ -686,7 +686,7 @@ processEvents([clickEvent, scrollEvent]); >processEvents([clickEvent, scrollEvent]) : void > : ^^^^ >processEvents : (events: Ev[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >[clickEvent, scrollEvent] : ({ readonly name: "click"; readonly once?: boolean; readonly callback: (ev: MouseEvent) => void; } | { readonly name: "scroll"; readonly once?: boolean; readonly callback: (ev: Event) => void; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ >clickEvent : { readonly name: "click"; readonly once?: boolean; readonly callback: (ev: MouseEvent) => void; } @@ -698,7 +698,7 @@ processEvents([ >processEvents([ { name: "click", callback: ev => console.log(ev) }, { name: "scroll", callback: ev => console.log(ev) },]) : void > : ^^^^ >processEvents : (events: Ev[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >[ { name: "click", callback: ev => console.log(ev) }, { name: "scroll", callback: ev => console.log(ev) },] : ({ name: "click"; callback: (ev: MouseEvent) => void; } | { name: "scroll"; callback: (ev: Event) => void; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -822,7 +822,7 @@ function ff1() { } function apply(funKey: K, ...args: ArgMap[K]) { >apply : (funKey: K, ...args: { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K]) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ ^ ^^^^^^^^ ^ ^^^^^^^^^ >funKey : K > : ^ >args : { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K] @@ -854,7 +854,7 @@ function ff1() { >apply('sum', 1, 2) : void > : ^^^^ >apply : (funKey: K, ...args: { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K]) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ ^ ^^^^^^^^ ^ ^^^^^^^^^ >'sum' : "sum" > : ^^^^^ >1 : 1 @@ -868,7 +868,7 @@ function ff1() { >apply('concat', 'str1', 'str2', 'str3' ) : void > : ^^^^ >apply : (funKey: K, ...args: { sum: [a: number, b: number]; concat: [a: string, b: string, c: string]; }[K]) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ ^ ^^^^^^^^ ^ ^^^^^^^^^ >'concat' : "concat" > : ^^^^^^^^ >'str1' : "str1" @@ -901,7 +901,7 @@ type Funcs = { [K in keyof ArgMap]: Func }; function f1(funcs: Funcs, key: K, arg: ArgMap[K]) { >f1 : (funcs: Funcs, key: K, arg: ArgMap[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >funcs : Funcs > : ^^^^^ >key : K @@ -924,7 +924,7 @@ function f1(funcs: Funcs, key: K, arg: ArgMap[K]) { function f2(funcs: Funcs, key: K, arg: ArgMap[K]) { >f2 : (funcs: Funcs, key: K, arg: ArgMap[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >funcs : Funcs > : ^^^^^ >key : K @@ -953,7 +953,7 @@ function f2(funcs: Funcs, key: K, arg: ArgMap[K]) { function f3(funcs: Funcs, key: K, arg: ArgMap[K]) { >f3 : (funcs: Funcs, key: K, arg: ArgMap[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >funcs : Funcs > : ^^^^^ >key : K @@ -982,7 +982,7 @@ function f3(funcs: Funcs, key: K, arg: ArgMap[K]) { function f4(x: Funcs[keyof ArgMap], y: Funcs[K]) { >f4 : (x: Funcs[keyof ArgMap], y: Funcs[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Func<"b"> | Func<"a"> > : ^^^^^^^^^^^^^^^^^^^^^ >y : Funcs[K] @@ -1048,7 +1048,7 @@ const ref: MyObj = { function func(k: K): MyObj[K]['name'] | undefined { >func : (k: K) => MyObj[K]["name"] | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >k : K > : ^ @@ -1111,7 +1111,7 @@ interface Foo { function foo(prop: T, f: Required) { >foo : (prop: T, f: Required) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >prop : T > : ^ >f : Required @@ -1140,7 +1140,7 @@ declare function bar(t: string): void; declare function makeCompleteLookupMapping, Attr extends keyof T[number]>( >makeCompleteLookupMapping : , Attr extends keyof T[number]>(ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ops: T, attr: Attr): { [Item in T[number]as Item[Attr]]: Item }; >ops : T @@ -1174,7 +1174,7 @@ const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); >makeCompleteLookupMapping(ALL_BARS, 'name') : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >makeCompleteLookupMapping : , Attr extends keyof T[number]>(ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >ALL_BARS : readonly [{ readonly name: "a"; }, { readonly name: "b"; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'name' : "name" @@ -1243,9 +1243,9 @@ type MappedFromOriginal = SameKeys; const getStringAndNumberFromOriginalAndMapped = < >getStringAndNumberFromOriginalAndMapped : >(original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N) => [Original[K][N], MappedFromOriginal[K][N]] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >< K extends KeyOfOriginal, N extends NestedKeyOfOriginalFor>( original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N): [Original[K][N], MappedFromOriginal[K][N]] => { return [original[key][nestedKey], mappedFromOriginal[key][nestedKey]];} : >(original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N) => [Original[K][N], MappedFromOriginal[K][N]] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ K extends KeyOfOriginal, N extends NestedKeyOfOriginalFor @@ -1306,7 +1306,7 @@ interface Config { function getConfigOrDefault( >getConfigOrDefault : (userConfig: Partial, key: T, defaultValue: Config[T]) => Config[T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ userConfig: Partial, >userConfig : Partial @@ -1368,7 +1368,7 @@ type Foo1 = { function getValueConcrete( >getValueConcrete : (o: Partial, k: K) => Foo1[K] | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ o: Partial, >o : Partial diff --git a/tests/baselines/reference/couldNotSelectGenericOverload.types b/tests/baselines/reference/couldNotSelectGenericOverload.types index 5afccfbc541ea..33d90db032f2b 100644 --- a/tests/baselines/reference/couldNotSelectGenericOverload.types +++ b/tests/baselines/reference/couldNotSelectGenericOverload.types @@ -3,7 +3,7 @@ === couldNotSelectGenericOverload.ts === function makeArray(items: T[]): T[] { return items; } >makeArray : (items: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >items : T[] > : ^^^ >items : T[] @@ -25,7 +25,7 @@ var b1G = makeArray(1, ""); // any, no error >makeArray(1, "") : unknown[] > : ^^^^^^^^^ >makeArray : (items: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -37,7 +37,7 @@ var b2G = makeArray(b); // any[] >makeArray(b) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >makeArray : (items: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/crashInresolveReturnStatement.types b/tests/baselines/reference/crashInresolveReturnStatement.types index 7e2818e2f76c3..57c6ebabd61c6 100644 --- a/tests/baselines/reference/crashInresolveReturnStatement.types +++ b/tests/baselines/reference/crashInresolveReturnStatement.types @@ -33,7 +33,7 @@ class CreateCopyOfWorkItemDialog { } function createWorkItemDialog(dialogType: P0) { >createWorkItemDialog : (dialogType: P0) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^ >dialogType : P0 > : ^^ } @@ -49,7 +49,7 @@ class WITDialogs { >createWorkItemDialog(CreateCopyOfWorkItemDialog) : void > : ^^^^ >createWorkItemDialog : (dialogType: P0) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^ >CreateCopyOfWorkItemDialog : typeof CreateCopyOfWorkItemDialog > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/crashIntypeCheckInvocationExpression.types b/tests/baselines/reference/crashIntypeCheckInvocationExpression.types index f8225fd4bb5a6..a285f0d2ff705 100644 --- a/tests/baselines/reference/crashIntypeCheckInvocationExpression.types +++ b/tests/baselines/reference/crashIntypeCheckInvocationExpression.types @@ -7,7 +7,7 @@ var nake; function doCompile(fileset: P0, moduleType: P1) { >doCompile : (fileset: P0, moduleType: P1) => any -> : ^ ^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >fileset : P0 > : ^^ >moduleType : P1 @@ -57,7 +57,7 @@ export var compileServer = task(() => { >doCompile(fileset, moduleType) : any > : ^^^ >doCompile : (fileset: P0_1, moduleType: P1_1) => any -> : ^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >fileset : any > : ^^^ >moduleType : any diff --git a/tests/baselines/reference/crashIntypeCheckObjectCreationExpression.types b/tests/baselines/reference/crashIntypeCheckObjectCreationExpression.types index 61c0d0742f8c0..bb1b5522a5300 100644 --- a/tests/baselines/reference/crashIntypeCheckObjectCreationExpression.types +++ b/tests/baselines/reference/crashIntypeCheckObjectCreationExpression.types @@ -7,7 +7,7 @@ export class BuildWorkspaceService { public injectRequestService(service: P0) { >injectRequestService : (service: P0) => void -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >service : P0 > : ^^ @@ -15,11 +15,11 @@ export class BuildWorkspaceService { >this.injectBuildService(new X(service)) : void > : ^^^^ >this.injectBuildService : (service: P0_1) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >injectBuildService : (service: P0_1) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >new X(service) : any > : ^^^ >X : any @@ -29,7 +29,7 @@ export class BuildWorkspaceService { } public injectBuildService(service: P0) { >injectBuildService : (service: P0) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^ >service : P0 > : ^^ } diff --git a/tests/baselines/reference/cyclicGenericTypeInstantiation.types b/tests/baselines/reference/cyclicGenericTypeInstantiation.types index 191119a1e13d8..9657ab0b60aa1 100644 --- a/tests/baselines/reference/cyclicGenericTypeInstantiation.types +++ b/tests/baselines/reference/cyclicGenericTypeInstantiation.types @@ -3,7 +3,7 @@ === cyclicGenericTypeInstantiation.ts === function foo() { >foo : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var z = foo(); >z : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -11,13 +11,13 @@ function foo() { >foo() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var y: { >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ y2: typeof z >y2 : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -28,13 +28,13 @@ function foo() { }; return y; >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ } function bar() { >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var z = bar(); >z : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -42,13 +42,13 @@ function bar() { >bar() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var y: { >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ y2: typeof z; >y2 : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -58,7 +58,7 @@ function bar() { } return y; >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ } var a = foo(); @@ -67,7 +67,7 @@ var a = foo(); >foo() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var b = bar(); >b : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -75,7 +75,7 @@ var b = bar(); >bar() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ a = b; >a = b : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } diff --git a/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types b/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types index e150afa7a438d..1b67d3c591c8c 100644 --- a/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types +++ b/tests/baselines/reference/cyclicGenericTypeInstantiationInference.types @@ -3,7 +3,7 @@ === cyclicGenericTypeInstantiationInference.ts === function foo() { >foo : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var z = foo(); >z : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -11,13 +11,13 @@ function foo() { >foo() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var y: { >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ y2: typeof z >y2 : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -28,13 +28,13 @@ function foo() { }; return y; >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ } function bar() { >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var z = bar(); >z : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -42,13 +42,13 @@ function bar() { >bar() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var y: { >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ y2: typeof z; >y2 : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -58,7 +58,7 @@ function bar() { } return y; >y : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ } var a = foo(); @@ -67,7 +67,7 @@ var a = foo(); >foo() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ var b = bar(); >b : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } @@ -75,7 +75,7 @@ var b = bar(); >bar() : { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : () => { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: { y2: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ function test(x: typeof a): void { } >test : (x: typeof a) => void diff --git a/tests/baselines/reference/cyclicTypeInstantiation.types b/tests/baselines/reference/cyclicTypeInstantiation.types index 6e204e0f7950c..2dbcb650484c9 100644 --- a/tests/baselines/reference/cyclicTypeInstantiation.types +++ b/tests/baselines/reference/cyclicTypeInstantiation.types @@ -3,11 +3,11 @@ === cyclicTypeInstantiation.ts === function foo() { >foo : () => { a: T; b: any; } -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ var x: { >x : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ a: T; >a : T @@ -15,23 +15,23 @@ function foo() { b: typeof x; >b : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >x : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ }; return x; >x : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ } function bar() { >bar : () => { a: T; b: any; } -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ var x: { >x : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ a: T; >a : T @@ -39,14 +39,14 @@ function bar() { b: typeof x; >b : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ >x : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ }; return x; >x : { a: T; b: any; } -> : ^^^^^ ^^^^^^^^^^^ +> : ^^^^^ ^^^^^ ^^^ } var a = foo(); @@ -55,7 +55,7 @@ var a = foo(); >foo() : { a: string; b: any; } > : ^^^^^^^^^^^^^^^^^^^^^^ >foo : () => { a: T; b: any; } -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ var b = bar(); >b : { a: string; b: any; } @@ -63,7 +63,7 @@ var b = bar(); >bar() : { a: string; b: any; } > : ^^^^^^^^^^^^^^^^^^^^^^ >bar : () => { a: T; b: any; } -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ // Relating types of a and b produces instantiations of the cyclic anonymous types in foo and bar a = b; diff --git a/tests/baselines/reference/declFileFunctions.types b/tests/baselines/reference/declFileFunctions.types index e9e108d197fc4..d4aeadecf6aa2 100644 --- a/tests/baselines/reference/declFileFunctions.types +++ b/tests/baselines/reference/declFileFunctions.types @@ -107,7 +107,7 @@ export function fooWithTypePredicateAndMulitpleParams(a: any, b: any, c: any): a } export function fooWithTypeTypePredicateAndGeneric(a: any): a is T { >fooWithTypeTypePredicateAndGeneric : (a: any) => a is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any return true; diff --git a/tests/baselines/reference/declFileGenericType.types b/tests/baselines/reference/declFileGenericType.types index 00cc067ed5677..8871137e97c81 100644 --- a/tests/baselines/reference/declFileGenericType.types +++ b/tests/baselines/reference/declFileGenericType.types @@ -15,13 +15,13 @@ export module C { export function F(x: T): A { return null; } >F : (x: T) => A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ export function F2(x: T): C.A { return null; } >F2 : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >C : any @@ -31,7 +31,7 @@ export module C { export function F3(x: T): C.A[] { return null; } >F3 : (x: T) => C.A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >C : any @@ -41,7 +41,7 @@ export module C { export function F4>(x: T): Array> { return null; } >F4 : >(x: T) => Array> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ >C : any @@ -51,11 +51,11 @@ export module C { export function F5(): T { return null; } >F5 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ export function F6>(x: T): T { return null; } >F6 : >(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -80,43 +80,43 @@ export var a: C.A; export var b = C.F; >b : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^^ >C.F : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^^ >C : typeof C > : ^^^^^^^^ >F : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^^ export var c = C.F2; >c : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C.F2 : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >F2 : (x: T) => C.A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export var d = C.F3; >d : (x: T) => C.A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C.F3 : (x: T) => C.A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >F3 : (x: T) => C.A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export var e = C.F4; >e : >(x: T) => Array> -> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ >C.F4 : >(x: T) => Array> -> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >F4 : >(x: T) => Array> -> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ export var x = (new C.D>(new C.A())).val; >x : C.A @@ -164,11 +164,11 @@ export var g = C.F5>(); >C.F5>() : C.A > : ^^^^^^^^ >C.F5 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >C : typeof C > : ^^^^^^^^ >F5 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >C : any > : ^^^ >C : any @@ -194,11 +194,11 @@ export interface i extends C.A { } export var j = C.F6; >j : >(x: T) => T -> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ >C.F6 : >(x: T) => T -> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >F6 : >(x: T) => T -> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/declarationEmitArrowFunctionNoRenaming.types b/tests/baselines/reference/declarationEmitArrowFunctionNoRenaming.types index e32387d3034e5..c3440aaa9005f 100644 --- a/tests/baselines/reference/declarationEmitArrowFunctionNoRenaming.types +++ b/tests/baselines/reference/declarationEmitArrowFunctionNoRenaming.types @@ -22,11 +22,11 @@ export type BoundedInteger< export const toBoundedInteger = >toBoundedInteger : (bounds: { lowerBound: LowerBound; upperBound: UpperBound; }) => (n: number) => BoundedInteger -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ (bounds: { >(bounds: { lowerBound: LowerBound; upperBound: UpperBound; }) => ( n: number ): BoundedInteger => // Implementation doesn't matter here ({} as any) : (bounds: { lowerBound: LowerBound; upperBound: UpperBound; }) => (n: number) => BoundedInteger -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >bounds : { lowerBound: LowerBound; upperBound: UpperBound; } > : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ diff --git a/tests/baselines/reference/declarationEmitBindingPatternWithReservedWord.types b/tests/baselines/reference/declarationEmitBindingPatternWithReservedWord.types index 08b1324d1337a..47444868a00d9 100644 --- a/tests/baselines/reference/declarationEmitBindingPatternWithReservedWord.types +++ b/tests/baselines/reference/declarationEmitBindingPatternWithReservedWord.types @@ -36,9 +36,9 @@ export interface GetLocalesOptions { export const getLocales = ({ >getLocales : ({ app, name, default: defaultLocalesConfig, config: userLocalesConfig, }: GetLocalesOptions) => ConvertLocaleConfig -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >({ app, name, default: defaultLocalesConfig, config: userLocalesConfig = {},}: GetLocalesOptions): ConvertLocaleConfig => { return defaultLocalesConfig;} : ({ app, name, default: defaultLocalesConfig, config: userLocalesConfig, }: GetLocalesOptions) => ConvertLocaleConfig -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ app, >app : unknown diff --git a/tests/baselines/reference/declarationEmitBindingPatternsUnused.types b/tests/baselines/reference/declarationEmitBindingPatternsUnused.types index 69b207c307985..93b6c0bf3d775 100644 --- a/tests/baselines/reference/declarationEmitBindingPatternsUnused.types +++ b/tests/baselines/reference/declarationEmitBindingPatternsUnused.types @@ -146,7 +146,7 @@ function referencedInSignartureKeyword({ function: alias }: { function: string } function referencedInInferredType({ name: alias }: Named) { >referencedInInferredType : ({ name: alias }: Named) => { name: typeof alias; } -> : ^ ^^ ^^^^^^^^^^^^^ ^^^ +> : ^ ^^ ^^^^^ ^^^^^^ ^ >name : any > : ^^^ >alias : string diff --git a/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types index 0518e3557e33b..50e332171fe77 100644 --- a/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types +++ b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types @@ -10,7 +10,7 @@ export const fun = ( subFun: () >subFun : () => FlatArray[] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ => FlatArray[]) => { }; diff --git a/tests/baselines/reference/declarationEmitDoesNotUseReexportedNamespaceAsLocal.types b/tests/baselines/reference/declarationEmitDoesNotUseReexportedNamespaceAsLocal.types index eb1fa04abe6e0..ebb5dfd998d7a 100644 --- a/tests/baselines/reference/declarationEmitDoesNotUseReexportedNamespaceAsLocal.types +++ b/tests/baselines/reference/declarationEmitDoesNotUseReexportedNamespaceAsLocal.types @@ -12,7 +12,7 @@ export const x = add(import("./sub")); >add(import("./sub")) : typeof import("sub") > : ^^^^^^^^^^^^^^^^^^^^ >add : (x: Promise) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >import("./sub") : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"./sub" : "./sub" @@ -24,7 +24,7 @@ export * as Q from "./sub"; declare function add(x: Promise): T; >add : (x: Promise) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Promise > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitExpandoWithGenericConstraint.types b/tests/baselines/reference/declarationEmitExpandoWithGenericConstraint.types index e57c9a4e2c90e..61315c9a661e7 100644 --- a/tests/baselines/reference/declarationEmitExpandoWithGenericConstraint.types +++ b/tests/baselines/reference/declarationEmitExpandoWithGenericConstraint.types @@ -41,9 +41,9 @@ export const Point = (x: number, y: number): Point => ({ x, y }); export const Rect =

(a: p, b: p): Rect

=> ({ a, b }); >Rect :

(a: p, b: p) => Rect

-> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >

(a: p, b: p): Rect

=> ({ a, b }) :

(a: p, b: p) => Rect

-> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : p > : ^ >b : p diff --git a/tests/baselines/reference/declarationEmitExpressionInExtends2.types b/tests/baselines/reference/declarationEmitExpressionInExtends2.types index 87d5ec07c9c34..91ba4a38ad381 100644 --- a/tests/baselines/reference/declarationEmitExpressionInExtends2.types +++ b/tests/baselines/reference/declarationEmitExpressionInExtends2.types @@ -16,7 +16,7 @@ class C { function getClass(c: T) { >getClass : (c: T) => typeof C -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >c : T > : ^ @@ -31,7 +31,7 @@ class MyClass extends getClass(2) { >getClass(2) : C > : ^^^^^^^^^^^^^^^^^ >getClass : (c: T) => typeof C -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >2 : 2 > : ^ } diff --git a/tests/baselines/reference/declarationEmitExpressionInExtends3.types b/tests/baselines/reference/declarationEmitExpressionInExtends3.types index c7bc864231b58..bc5026c8dcbdb 100644 --- a/tests/baselines/reference/declarationEmitExpressionInExtends3.types +++ b/tests/baselines/reference/declarationEmitExpressionInExtends3.types @@ -37,7 +37,7 @@ interface LocalInterface { function getLocalClass(c: T) { >getLocalClass : (c: T) => typeof LocalClass -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >c : T > : ^ @@ -48,7 +48,7 @@ function getLocalClass(c: T) { function getExportedClass(c: T) { >getExportedClass : (c: T) => typeof ExportedClass -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >c : T > : ^ @@ -65,7 +65,7 @@ export class MyClass extends getLocalClass(undefined)getLocalClass(undefined) : LocalClass > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >getLocalClass : (c: T) => typeof LocalClass -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ } @@ -77,7 +77,7 @@ export class MyClass2 extends getExportedClass(undefined)getExportedClass(undefined) : ExportedClass > : ^^^^^^^^^^^^^^^^^^^^^ >getExportedClass : (c: T) => typeof ExportedClass -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ } @@ -89,7 +89,7 @@ export class MyClass3 extends getExportedClass(undefined)getExportedClass(undefined) : ExportedClass > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getExportedClass : (c: T) => typeof ExportedClass -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ } @@ -101,7 +101,7 @@ export class MyClass4 extends getExportedClass(undefined)getExportedClass(undefined) : ExportedClass > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getExportedClass : (c: T) => typeof ExportedClass -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ } diff --git a/tests/baselines/reference/declarationEmitExpressionInExtends5.types b/tests/baselines/reference/declarationEmitExpressionInExtends5.types index dcc4da92fbfaa..b511ec4cb6786 100644 --- a/tests/baselines/reference/declarationEmitExpressionInExtends5.types +++ b/tests/baselines/reference/declarationEmitExpressionInExtends5.types @@ -21,13 +21,13 @@ namespace Test >getClass() : IFace > : ^^^^^ >getClass : () => new () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ { } export function getClass() : new() => T >getClass : () => new () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ { return SomeClass as (new() => T); >SomeClass as (new() => T) : new () => T diff --git a/tests/baselines/reference/declarationEmitExpressionWithNonlocalPrivateUniqueSymbol.types b/tests/baselines/reference/declarationEmitExpressionWithNonlocalPrivateUniqueSymbol.types index 32b96dab1a552..d2d6596eacff9 100644 --- a/tests/baselines/reference/declarationEmitExpressionWithNonlocalPrivateUniqueSymbol.types +++ b/tests/baselines/reference/declarationEmitExpressionWithNonlocalPrivateUniqueSymbol.types @@ -18,11 +18,11 @@ export const A: AX = 0 as any; === b.ts === import { A } from './a'; >A : { readonly A: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^ export const A1 = A; >A1 : { readonly A: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^ >A : { readonly A: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitFBoundedTypeParams.types b/tests/baselines/reference/declarationEmitFBoundedTypeParams.types index 16cbf2e94cc87..7ab30c7424d9a 100644 --- a/tests/baselines/reference/declarationEmitFBoundedTypeParams.types +++ b/tests/baselines/reference/declarationEmitFBoundedTypeParams.types @@ -5,7 +5,7 @@ function append(result: a[], value: b): a[] { >append : (result: a[], value: b) => a[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >result : a[] > : ^^^ >value : b diff --git a/tests/baselines/reference/declarationEmitFirstTypeArgumentGenericFunctionType.types b/tests/baselines/reference/declarationEmitFirstTypeArgumentGenericFunctionType.types index 83d3499b3b356..03bcd26c3b27c 100644 --- a/tests/baselines/reference/declarationEmitFirstTypeArgumentGenericFunctionType.types +++ b/tests/baselines/reference/declarationEmitFirstTypeArgumentGenericFunctionType.types @@ -7,27 +7,27 @@ class X { } var prop11: X< () => Tany >; // spaces before the first type argument >prop11 : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ var prop12: X<(() => Tany)>; // spaces before the first type argument >prop12 : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ function f1() { // Inferred return type >f1 : () => X<(() => Tany)> -> : ^^^^^^^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ return prop11; >prop11 : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ } function f2() { // Inferred return type >f2 : () => X<(() => Tany)> -> : ^^^^^^^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ return prop12; >prop12 : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ } function f3(): X< () => Tany> { // written with space before type argument >f3 : () => X<(() => Tany)> @@ -35,7 +35,7 @@ function f3(): X< () => Tany> { // written with space before type argument return prop11; >prop11 : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ } function f4(): X<(() => Tany)> { // written type with parenthesis >f4 : () => X<(() => Tany)> @@ -43,7 +43,7 @@ function f4(): X<(() => Tany)> { // written type with parenthesis return prop12; >prop12 : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ } class Y { >Y : Y @@ -51,17 +51,17 @@ class Y { } var prop2: Y() => Tany>; // No space after second type argument >prop2 : Y() => Tany> -> : ^^^^^^^^^^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^ var prop2: Y() => Tany>; // space after second type argument >prop2 : Y() => Tany> -> : ^^^^^^^^^^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^ var prop3: Y< () => Tany, () => Tany>; // space before first type argument >prop3 : Y<(() => Tany), () => Tany> -> : ^^^^ ^^^^^^^ ^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^ var prop4: Y<(() => Tany), () => Tany>; // parenthesized first type argument >prop4 : Y<(() => Tany), () => Tany> -> : ^^^^ ^^^^^^^ ^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^ diff --git a/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types b/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types index 74039639a9263..dfd42c3c06ccc 100644 --- a/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types +++ b/tests/baselines/reference/declarationEmitHigherOrderRetainedGenerics.types @@ -57,7 +57,7 @@ export interface TypeClass { export interface Invariant extends TypeClass { readonly imap: { >imap : { (to: (a: A) => B, from: (b: B) => A): (self: Kind) => Kind; (self: Kind, to: (a: A) => B, from: (b: B) => A): Kind; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ( to: (a: A) => B, @@ -100,7 +100,7 @@ export interface Invariant extends TypeClass { export interface Covariant extends Invariant { readonly map: { >map : { (f: (a: A) => B): (self: Kind) => Kind; (self: Kind, f: (a: A) => B): Kind; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ (f: (a: A) => B): (self: Kind) => Kind >f : (a: A) => B @@ -180,7 +180,7 @@ export type Kind = F extends { export interface SemiProduct extends Invariant { readonly product: ( >product : (self: Kind, that: Kind) => Kind -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ self: Kind, >self : Kind @@ -194,7 +194,7 @@ export interface SemiProduct extends Invariant { readonly productMany: ( >productMany : (self: Kind, collection: Iterable>) => Kind]> -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ self: Kind, >self : Kind @@ -211,9 +211,9 @@ export interface SemiApplicative extends SemiProduct, C export const SK = (_: A, b: B): B => b; >SK : (_: A, b: B) => B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(_: A, b: B): B => b : (_: A, b: B) => B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >_ : A > : ^ >b : B @@ -223,7 +223,7 @@ export const SK = (_: A, b: B): B => b; export declare const dual: { >dual : { ) => any, DataFirst extends (...args: Array) => any>(arity: Parameters["length"], body: DataFirst): DataLast & DataFirst; ) => any, DataFirst extends (...args: Array) => any>(isDataFirst: (args: IArguments) => boolean, body: DataFirst): DataLast & DataFirst; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ) => any, DataFirst extends (...args: Array) => any>( >args : any[] @@ -261,9 +261,9 @@ export declare const dual: { export const zipWith = (F: SemiApplicative): { >zipWith : (F: SemiApplicative) => { (that: Kind, f: (a: A, b: B) => C): (self: Kind) => Kind; (self: Kind, that: Kind, f: (a: A_1, b: B_1) => C_1): Kind; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(F: SemiApplicative): { ( that: Kind, f: (a: A, b: B) => C ): (self: Kind) => Kind ( self: Kind, that: Kind, f: (a: A, b: B) => C ): Kind} => dual( 3, ( self: Kind, that: Kind, f: (a: A, b: B) => C ): Kind => F.map(F.product(self, that), ([a, b]) => f(a, b)) ) : (F: SemiApplicative) => { (that: Kind, f: (a: A, b: B) => C): (self: Kind) => Kind; (self: Kind, that: Kind, f: (a: A_1, b: B_1) => C_1): Kind; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >F : SemiApplicative > : ^^^^^^^^^^^^^^^^^^ @@ -305,9 +305,9 @@ export const zipWith = (F: SemiApplicative): { } => dual( >dual( 3, ( self: Kind, that: Kind, f: (a: A, b: B) => C ): Kind => F.map(F.product(self, that), ([a, b]) => f(a, b)) ) : ((...args: Array) => any) & ((self: Kind, that: Kind, f: (a: A, b: B) => C) => Kind) -> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^ >dual : { ) => any, DataFirst extends (...args: Array) => any>(arity: Parameters["length"], body: DataFirst): DataLast & DataFirst; ) => any, DataFirst extends (...args: Array) => any>(isDataFirst: (args: IArguments) => boolean, body: DataFirst): DataLast & DataFirst; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ 3, >3 : 3 @@ -315,7 +315,7 @@ export const zipWith = (F: SemiApplicative): { ( >( self: Kind, that: Kind, f: (a: A, b: B) => C ): Kind => F.map(F.product(self, that), ([a, b]) => f(a, b)) : (self: Kind, that: Kind, f: (a: A, b: B) => C) => Kind -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ self: Kind, >self : Kind @@ -374,9 +374,9 @@ export const zipWith = (F: SemiApplicative): { export const zipRight = (F: SemiApplicative): { >zipRight : (F: SemiApplicative) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(F: SemiApplicative): { ( that: Kind ): (self: Kind) => Kind ( self: Kind, that: Kind ): Kind} => dual(2, ( self: Kind, that: Kind ): Kind => zipWith(F)(self, that, SK)) : (F: SemiApplicative) => { (that: Kind): (self: Kind) => Kind; (self: Kind, that: Kind): Kind; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >F : SemiApplicative > : ^^^^^^^^^^^^^^^^^^ @@ -402,13 +402,13 @@ export const zipRight = (F: SemiApplicative): { } => dual(2, ( >dual(2, ( self: Kind, that: Kind ): Kind => zipWith(F)(self, that, SK)) : ((...args: Array) => any) & ((self: Kind, that: Kind) => Kind) -> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >dual : { ) => any, DataFirst extends (...args: Array) => any>(arity: Parameters["length"], body: DataFirst): DataLast & DataFirst; ) => any, DataFirst extends (...args: Array) => any>(isDataFirst: (args: IArguments) => boolean, body: DataFirst): DataLast & DataFirst; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >2 : 2 > : ^ >( self: Kind, that: Kind ): Kind => zipWith(F)(self, that, SK) : (self: Kind, that: Kind) => Kind -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ self: Kind, >self : Kind @@ -424,7 +424,7 @@ export const zipRight = (F: SemiApplicative): { >zipWith(F) : { (that: Kind, f: (a: A, b: B_1) => C): (self: Kind) => Kind; (self: Kind, that: Kind, f: (a: A, b: B_1) => C): Kind; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^ ^ ^ ^ ^^^^ ^^^^ ^^^^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^^^^ ^ ^^^ >zipWith : (F: SemiApplicative) => { (that: Kind, f: (a: A, b: B_1) => C): (self: Kind) => Kind; (self: Kind, that: Kind, f: (a: A_1, b: B_2) => C_1): Kind; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >F : SemiApplicative > : ^^^^^^^^^^^^^^^^^^ >self : Kind @@ -432,5 +432,5 @@ export const zipRight = (F: SemiApplicative): { >that : Kind > : ^^^^^^^^^^^^^^^^^^^^^^ >SK : (_: A, b: B_1) => B_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/declarationEmitIndexTypeArray.types b/tests/baselines/reference/declarationEmitIndexTypeArray.types index fa9b6e22ab6b9..cea6535797342 100644 --- a/tests/baselines/reference/declarationEmitIndexTypeArray.types +++ b/tests/baselines/reference/declarationEmitIndexTypeArray.types @@ -3,19 +3,19 @@ === declarationEmitIndexTypeArray.ts === function doSomethingWithKeys(...keys: (keyof T)[]) { } >doSomethingWithKeys : (...keys: (keyof T)[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >keys : (keyof T)[] > : ^^^^^^^^^^^ const utilityFunctions = { >utilityFunctions : { doSomethingWithKeys: (...keys: (keyof T)[]) => void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >{ doSomethingWithKeys} : { doSomethingWithKeys: (...keys: (keyof T)[]) => void; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ doSomethingWithKeys >doSomethingWithKeys : (...keys: (keyof T)[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ }; diff --git a/tests/baselines/reference/declarationEmitInferredTypeAlias4.types b/tests/baselines/reference/declarationEmitInferredTypeAlias4.types index a9d1607a0555f..26d96b6ee2a83 100644 --- a/tests/baselines/reference/declarationEmitInferredTypeAlias4.types +++ b/tests/baselines/reference/declarationEmitInferredTypeAlias4.types @@ -7,9 +7,9 @@ function f() { type Foo = T | { x: Foo }; >Foo : T | { x: T | any; } -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^ >x : T | { x: T | any; } -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^ var x: Foo; >x : A[] | { x: A[] | any; } diff --git a/tests/baselines/reference/declarationEmitInlinedDistributiveConditional.types b/tests/baselines/reference/declarationEmitInlinedDistributiveConditional.types index 64615abd16861..bf53a88ef8005 100644 --- a/tests/baselines/reference/declarationEmitInlinedDistributiveConditional.types +++ b/tests/baselines/reference/declarationEmitInlinedDistributiveConditional.types @@ -3,9 +3,9 @@ === test.ts === import {dropPrivateProps1, dropPrivateProps2} from './api'; >dropPrivateProps1 : (obj: Obj) => { [K in import("internal").PublicKeys1]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >dropPrivateProps2 : (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const a = dropPrivateProps1({foo: 42, _bar: 'secret'}); // type is {foo: number} >a : { foo: number; } @@ -13,7 +13,7 @@ const a = dropPrivateProps1({foo: 42, _bar: 'secret'}); // type is {foo: number} >dropPrivateProps1({foo: 42, _bar: 'secret'}) : { foo: number; } > : ^^^^^^^^^^^^^^^^ >dropPrivateProps1 : (obj: Obj) => { [K in import("internal").PublicKeys1]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{foo: 42, _bar: 'secret'} : { foo: number; _bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -32,7 +32,7 @@ const b = dropPrivateProps2({foo: 42, _bar: 'secret'}); // type is {foo: number, >dropPrivateProps2({foo: 42, _bar: 'secret'}) : { foo: number; } > : ^^^^^^^^^^^^^^^^ >dropPrivateProps2 : (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{foo: 42, _bar: 'secret'} : { foo: number; _bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -49,48 +49,48 @@ const b = dropPrivateProps2({foo: 42, _bar: 'secret'}); // type is {foo: number, === api.ts === import {excludePrivateKeys1, excludePrivateKeys2} from './internal'; >excludePrivateKeys1 : (obj: Obj) => { [K in import("internal").PublicKeys1]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ >excludePrivateKeys2 : (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ export const dropPrivateProps1 = (obj: Obj) => excludePrivateKeys1(obj); >dropPrivateProps1 : (obj: Obj) => { [K in import("internal").PublicKeys1]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(obj: Obj) => excludePrivateKeys1(obj) : (obj: Obj) => { [K in import("internal").PublicKeys1]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : Obj > : ^^^ >excludePrivateKeys1(obj) : { [K in import("internal").PublicKeys1]: Obj[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >excludePrivateKeys1 : (obj: Obj_1) => { [K in import("internal").PublicKeys1]: Obj_1[K]; } -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ >obj : Obj > : ^^^ export const dropPrivateProps2 = (obj: Obj) => excludePrivateKeys2(obj); >dropPrivateProps2 : (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(obj: Obj) => excludePrivateKeys2(obj) : (obj: Obj) => { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : Obj > : ^^^ >excludePrivateKeys2(obj) : { [K in keyof Obj extends infer T ? T extends keyof Obj ? T extends `_${string}` ? never : T : never : never]: Obj[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >excludePrivateKeys2 : (obj: Obj_1) => { [K in keyof Obj_1 extends infer T ? T extends keyof Obj_1 ? T extends `_${string}` ? never : T : never : never]: Obj_1[K]; } -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >obj : Obj > : ^^^ === internal.ts === export declare function excludePrivateKeys1(obj: Obj): {[K in PublicKeys1]: Obj[K]}; >excludePrivateKeys1 : (obj: Obj) => { [K in PublicKeys1]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >obj : Obj > : ^^^ export declare function excludePrivateKeys2(obj: Obj): {[K in PublicKeys2]: Obj[K]}; >excludePrivateKeys2 : (obj: Obj) => { [K in PublicKeys2]: Obj[K]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >obj : Obj > : ^^^ diff --git a/tests/baselines/reference/declarationEmitLambdaWithMissingTypeParameterNoCrash.types b/tests/baselines/reference/declarationEmitLambdaWithMissingTypeParameterNoCrash.types index 5c6ed45ed046e..8b0fa735d88a2 100644 --- a/tests/baselines/reference/declarationEmitLambdaWithMissingTypeParameterNoCrash.types +++ b/tests/baselines/reference/declarationEmitLambdaWithMissingTypeParameterNoCrash.types @@ -4,13 +4,13 @@ export interface Foo { preFetch: (c: T1) => void; // Type T2 is not defined >preFetch : (c: T1) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >c : T1 > : ^^ preFetcher: new (c: T1) => void; // Type T2 is not defined >preFetcher : new (c: T1) => void -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >c : T1 > : ^^ } diff --git a/tests/baselines/reference/declarationEmitLocalClassDeclarationMixin.types b/tests/baselines/reference/declarationEmitLocalClassDeclarationMixin.types index 59a0749f43711..6694ce9ad6636 100644 --- a/tests/baselines/reference/declarationEmitLocalClassDeclarationMixin.types +++ b/tests/baselines/reference/declarationEmitLocalClassDeclarationMixin.types @@ -7,7 +7,7 @@ interface Constructor { new (...args: any[]): C; } function mixin>(Base: B) { >mixin : >(Base: B) => { new (...args: any[]): PrivateMixed; prototype: mixin.PrivateMixed; } & B -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : B > : ^ @@ -45,13 +45,13 @@ export const Mixed = mixin(Unmixed); >mixin(Unmixed) : { new (...args: any[]): mixin.PrivateMixed; prototype: mixin.PrivateMixed; } & typeof Unmixed > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixin : >(Base: B) => { new (...args: any[]): PrivateMixed; prototype: mixin.PrivateMixed; } & B -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Unmixed : typeof Unmixed > : ^^^^^^^^^^^^^^ function Filter>(ctor: C) { >Filter : >(ctor: C) => ((abstract new (...args: any[]) => FilterMixin) & { prototype: Filter.FilterMixin; }) & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ctor : C > : ^ @@ -85,7 +85,7 @@ export class FilteredThing extends Filter(Unmixed) { >Filter(Unmixed) : Filter.FilterMixin & Unmixed > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Filter : >(ctor: C) => ((abstract new (...args: any[]) => FilterMixin) & { prototype: Filter.FilterMixin; }) & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Unmixed : typeof Unmixed > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitMappedTypeDistributivityPreservesConstraints.types b/tests/baselines/reference/declarationEmitMappedTypeDistributivityPreservesConstraints.types index 4ef121fdb266a..c9b51e6f04cd4 100644 --- a/tests/baselines/reference/declarationEmitMappedTypeDistributivityPreservesConstraints.types +++ b/tests/baselines/reference/declarationEmitMappedTypeDistributivityPreservesConstraints.types @@ -17,7 +17,7 @@ type AllArg = { [K in keyof T]: Parameters }; function fn }>(sliceIndex: T): AllArg { >fn : ; }>(sliceIndex: T) => AllArg -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : Map > : ^^^^^^^^^^^ >sliceIndex : T @@ -30,18 +30,18 @@ function fn }>(sliceIndex: T): AllArg { export default { fn }; >{ fn } : { fn: ; }>(sliceIndex: T) => AllArg; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >fn : ; }>(sliceIndex: T) => AllArg -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ === reexport.ts === import test from "./types"; >test : { fn: unknown; } ? { [K in keyof T_1]: T["x"][K]; } : never; }>(sliceIndex: T) => T["x"] extends infer T_2 extends { [x: string]: (...params: unknown[]) => unknown; } ? { [K_1 in keyof T_2]: Parameters; } : never; } -> : ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ export default { test }; >{ test } : { test: { fn: unknown; } ? { [K in keyof T_1]: T["x"][K]; } : never; }>(sliceIndex: T) => T["x"] extends infer T_2 extends { [x: string]: (...params: unknown[]) => unknown; } ? { [K_1 in keyof T_2]: Parameters; } : never; }; } -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ >test : { fn: unknown; } ? { [K in keyof T_1]: T["x"][K]; } : never; }>(sliceIndex: T) => T["x"] extends infer T_2 extends { [x: string]: (...params: unknown[]) => unknown; } ? { [K_1 in keyof T_2]: Parameters; } : never; } -> : ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitMappedTypePropertyFromNumericStringKey.types b/tests/baselines/reference/declarationEmitMappedTypePropertyFromNumericStringKey.types index fbf0e0179e7aa..5690f969bc69d 100644 --- a/tests/baselines/reference/declarationEmitMappedTypePropertyFromNumericStringKey.types +++ b/tests/baselines/reference/declarationEmitMappedTypePropertyFromNumericStringKey.types @@ -7,9 +7,9 @@ export const f = ((arg: {[K in keyof T]: T[K] | string}) => arg)({'0': 0}); / >((arg: {[K in keyof T]: T[K] | string}) => arg)({'0': 0}) : { '0': string | number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >((arg: {[K in keyof T]: T[K] | string}) => arg) : (arg: { [K in keyof T]: T[K] | string; }) => { [K in keyof T]: string | T[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(arg: {[K in keyof T]: T[K] | string}) => arg : (arg: { [K in keyof T]: T[K] | string; }) => { [K in keyof T]: string | T[K]; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arg : { [K in keyof T]: string | T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arg : { [K in keyof T]: string | T[K]; } diff --git a/tests/baselines/reference/declarationEmitMixinPrivateProtected.types b/tests/baselines/reference/declarationEmitMixinPrivateProtected.types index 0e995db11abe2..0ac116da564de 100644 --- a/tests/baselines/reference/declarationEmitMixinPrivateProtected.types +++ b/tests/baselines/reference/declarationEmitMixinPrivateProtected.types @@ -3,7 +3,7 @@ === first.ts === declare function mix(mixin: TMix): TMix; >mix : (mixin: TMix) => TMix -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >mixin : TMix > : ^^^^ @@ -38,7 +38,7 @@ export default mix(DisposableMixin); >mix(DisposableMixin) : typeof DisposableMixin > : ^^^^^^^^^^^^^^^^^^^^^^ >mix : (mixin: TMix) => TMix -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >DisposableMixin : typeof DisposableMixin > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -48,7 +48,7 @@ export class Monitor extends mix(DisposableMixin) { >mix(DisposableMixin) : DisposableMixin > : ^^^^^^^^^^^^^^^ >mix : (mixin: TMix) => TMix -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >DisposableMixin : typeof DisposableMixin > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -61,7 +61,7 @@ export class Monitor extends mix(DisposableMixin) { === another.ts === declare function mix(mixin: TMix): TMix; >mix : (mixin: TMix) => TMix -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >mixin : TMix > : ^^^^ @@ -95,7 +95,7 @@ export default class extends mix(DisposableMixin) { >mix(DisposableMixin) : DisposableMixin > : ^^^^^^^^^^^^^^^ >mix : (mixin: TMix) => TMix -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >DisposableMixin : typeof DisposableMixin > : ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitNestedAnonymousMappedType.types b/tests/baselines/reference/declarationEmitNestedAnonymousMappedType.types index 4fb89d6c2e1e7..7d5f8fcf56595 100644 --- a/tests/baselines/reference/declarationEmitNestedAnonymousMappedType.types +++ b/tests/baselines/reference/declarationEmitNestedAnonymousMappedType.types @@ -3,7 +3,7 @@ === declarationEmitNestedAnonymousMappedType.ts === export function enumFromStrings() { >enumFromStrings : () => { [Property in keyof { [key in keyof Members as Members[key] extends string ? Members[key] : never]: Members[key]; }]: { [key in keyof Members as Members[key] extends string ? Members[key] : never]: Members[key]; }[Property]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type Part1 = { >Part1 : { [key in keyof Members as Members[key] extends string ? Members[key] : never]: Members[key]; } diff --git a/tests/baselines/reference/declarationEmitNestedGenerics.types b/tests/baselines/reference/declarationEmitNestedGenerics.types index 5fa699c63c485..a6378c90f4fea 100644 --- a/tests/baselines/reference/declarationEmitNestedGenerics.types +++ b/tests/baselines/reference/declarationEmitNestedGenerics.types @@ -3,13 +3,13 @@ === declarationEmitNestedGenerics.ts === function f(p: T) { >f : (p: T) => (x: T_1) => typeof p -> : ^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ ^^ ^^^^^ >p : T > : ^ let g: (x: T) => typeof p = null as any; >g : (x: T_1) => typeof p -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : T > : ^ >p : T_1 @@ -18,12 +18,12 @@ function f(p: T) { return g; >g : (x: T_1) => typeof p -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ } function g(x: T) { >g : (x: T) => T extends (infer T_1)[] ? T_1 : T -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types b/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types index 8322418902508..ec329f8236d38 100644 --- a/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types +++ b/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types @@ -115,11 +115,11 @@ export default Object.assign(A, { >Object.assign(A, { B, C}) : string & import("node_modules/styled-components/index").StyledComponentBase<"div", import("node_modules/styled-components/index").DefaultTheme, {}, never> & import("node_modules/styled-components/node_modules/hoist-non-react-statics/index").NonReactStatics<"div"> & { B: import("node_modules/styled-components/index").StyledComponent<"div", import("node_modules/styled-components/index").DefaultTheme, {}, never>; C: import("node_modules/styled-components/index").StyledComponent<"div", import("node_modules/styled-components/index").DefaultTheme, {}, never>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >A : import("node_modules/styled-components/index").StyledComponent<"div", import("node_modules/styled-components/index").DefaultTheme, {}, never> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ B, C} : { B: import("node_modules/styled-components/index").StyledComponent<"div", import("node_modules/styled-components/index").DefaultTheme, {}, never>; C: import("node_modules/styled-components/index").StyledComponent<"div", import("node_modules/styled-components/index").DefaultTheme, {}, never>; } diff --git a/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types b/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types index e6b88fb9b02b6..b4367d5a964d8 100644 --- a/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types +++ b/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types @@ -25,7 +25,7 @@ export class Wrapper { private proxy(fn: (options: T) => U): (options: T) => U; >proxy : { (fn: (options: T) => U): (options: T) => U; (fn: (options?: T_1) => U_1, noArgs: true): (options?: T_1) => U_1; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (options: T) => U > : ^ ^^ ^^^^^ >options : T @@ -35,7 +35,7 @@ export class Wrapper { private proxy(fn: (options?: T) => U, noArgs: true): (options?: T) => U; >proxy : { (fn: (options: T_1) => U_1): (options: T_1) => U_1; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (options?: T) => U > : ^ ^^^ ^^^^^ >options : T @@ -49,7 +49,7 @@ export class Wrapper { private proxy(fn: (options: T) => U) { >proxy : { (fn: (options: T_1) => U_1): (options: T_1) => U_1; (fn: (options?: T_1) => U_1, noArgs: true): (options?: T_1) => U_1; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >fn : (options: T) => U > : ^ ^^ ^^^^^ >options : T @@ -61,21 +61,21 @@ export class Wrapper { public Proxies = { >Proxies : { Failure: (options?: unknown) => string; Success: (options: string) => string; } -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >{ Failure: this.proxy(noArgs, true), Success: this.proxy(oneArg), } : { Failure: (options?: unknown) => string; Success: (options: string) => string; } -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ Failure: this.proxy(noArgs, true), >Failure : (options?: unknown) => string -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^ >this.proxy(noArgs, true) : (options?: unknown) => string -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^ >this.proxy : { (fn: (options: T) => U): (options: T) => U; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >this : this > : ^^^^ >proxy : { (fn: (options: T) => U): (options: T) => U; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >noArgs : () => string > : ^^^^^^ >true : true @@ -83,15 +83,15 @@ export class Wrapper { Success: this.proxy(oneArg), >Success : (options: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >this.proxy(oneArg) : (options: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >this.proxy : { (fn: (options: T) => U): (options: T) => U; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >this : this > : ^^^^ >proxy : { (fn: (options: T) => U): (options: T) => U; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >oneArg : (input: string) => string > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/declarationEmitPartialNodeReuseTypeReferences.types b/tests/baselines/reference/declarationEmitPartialNodeReuseTypeReferences.types index 77b16f1d25d71..55dbbf0af8353 100644 --- a/tests/baselines/reference/declarationEmitPartialNodeReuseTypeReferences.types +++ b/tests/baselines/reference/declarationEmitPartialNodeReuseTypeReferences.types @@ -47,24 +47,24 @@ import * as a from "./a"; export const g = a.o >g : (p1: a.SpecialString, p2: string, p3: a.N.SpecialString) => { foo: a.SpecialString; bar: string; baz: a.N.SpecialString; } -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ >a.o : (p1: a.SpecialString, p2: string, p3: a.N.SpecialString) => { foo: a.SpecialString; bar: string; baz: a.N.SpecialString; } -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ >a : typeof a > : ^^^^^^^^ >o : (p1: a.SpecialString, p2: string, p3: a.N.SpecialString) => { foo: a.SpecialString; bar: string; baz: a.N.SpecialString; } -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ === c.ts === import { o, SpecialString } from "./a"; >o : (p1: SpecialString, p2: string, p3: import("a").N.SpecialString) => { foo: SpecialString; bar: string; baz: import("a").N.SpecialString; } -> : ^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ >SpecialString : any > : ^^^ export const g = o >g : (p1: SpecialString, p2: string, p3: import("a").N.SpecialString) => { foo: SpecialString; bar: string; baz: import("a").N.SpecialString; } -> : ^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ >o : (p1: SpecialString, p2: string, p3: import("a").N.SpecialString) => { foo: SpecialString; bar: string; baz: import("a").N.SpecialString; } -> : ^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitPartialReuseComputedProperty.types b/tests/baselines/reference/declarationEmitPartialReuseComputedProperty.types index bb3e2a7111687..68f5c36d00e04 100644 --- a/tests/baselines/reference/declarationEmitPartialReuseComputedProperty.types +++ b/tests/baselines/reference/declarationEmitPartialReuseComputedProperty.types @@ -48,11 +48,11 @@ export const o = () => null! as { [n]: string, foo: string, [poz]: number, [neg] === b.ts === import { o } from "./a"; >o : () => { A: string; foo: string; 1: number; [-1]: number; } -> : ^^^^^^ ^ ^ ^^ +> : ^^^^^^ ^^ export const g = o >g : () => { A: string; foo: string; 1: number; [-1]: number; } -> : ^^^^^^ ^ ^ ^^ +> : ^^^^^^ ^^ >o : () => { A: string; foo: string; 1: number; [-1]: number; } -> : ^^^^^^ ^ ^ ^^ +> : ^^^^^^ ^^ diff --git a/tests/baselines/reference/declarationEmitPathMappingMonorepo2.types b/tests/baselines/reference/declarationEmitPathMappingMonorepo2.types index e9160c33634c4..97ac6424543ea 100644 --- a/tests/baselines/reference/declarationEmitPathMappingMonorepo2.types +++ b/tests/baselines/reference/declarationEmitPathMappingMonorepo2.types @@ -3,13 +3,13 @@ === packages/lab/src/index.ts === import { createSvgIcon } from "@ts-bug/core/utils"; >createSvgIcon : (path: string, displayName: string) => import("packages/core/src/SvgIcon").SomeInterface -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ export default createSvgIcon("Hello", "ArrowLeft"); >createSvgIcon("Hello", "ArrowLeft") : import("packages/core/src/SvgIcon").SomeInterface > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createSvgIcon : (path: string, displayName: string) => import("packages/core/src/SvgIcon").SomeInterface -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"ArrowLeft" : "ArrowLeft" diff --git a/tests/baselines/reference/declarationEmitPrivateNameCausesError.types b/tests/baselines/reference/declarationEmitPrivateNameCausesError.types index 4c7ee13a66ffa..aa06ac87a75ed 100644 --- a/tests/baselines/reference/declarationEmitPrivateNameCausesError.types +++ b/tests/baselines/reference/declarationEmitPrivateNameCausesError.types @@ -12,7 +12,7 @@ const IGNORE_EXTRA_VARIABLES = Symbol(); //Notice how this is unexported //This is exported export function ignoreExtraVariables (ctor : CtorT) { >ignoreExtraVariables : (ctor: CtorT) => { new (...args: any[]): (Anonymous class); prototype: ignoreExtraVariables.(Anonymous class); } & CtorT -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >args : any[] > : ^^^^^ >ctor : CtorT diff --git a/tests/baselines/reference/declarationEmitPromise.types b/tests/baselines/reference/declarationEmitPromise.types index f02fb945d3a92..bb5831708008b 100644 --- a/tests/baselines/reference/declarationEmitPromise.types +++ b/tests/baselines/reference/declarationEmitPromise.types @@ -12,7 +12,7 @@ export class bluebird { export async function runSampleWorks( >runSampleWorks : (a: bluebird, b?: bluebird, c?: bluebird, d?: bluebird, e?: bluebird) => Promise<((f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T)> -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ a: bluebird, b?: bluebird, c?: bluebird, d?: bluebird, e?: bluebird) { >a : bluebird @@ -41,7 +41,7 @@ export async function runSampleWorks( >[a, b, c, d, e].filter(el => !!el) : bluebird[] > : ^^^^^^^^^^^^^ >[a, b, c, d, e].filter : { >(predicate: (value: bluebird, index: number, array: bluebird[]) => value is S, thisArg?: any): S[]; (predicate: (value: bluebird, index: number, array: bluebird[]) => unknown, thisArg?: any): bluebird[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^ ^^^ >[a, b, c, d, e] : bluebird[] > : ^^^^^^^^^^^^^ >a : bluebird @@ -55,7 +55,7 @@ export async function runSampleWorks( >e : bluebird > : ^^^^^^^^^^^ >filter : { >(predicate: (value: bluebird, index: number, array: bluebird[]) => value is S, thisArg?: any): S[]; (predicate: (value: bluebird, index: number, array: bluebird[]) => unknown, thisArg?: any): bluebird[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^ ^^^ >el => !!el : (el: bluebird) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >el : bluebird @@ -69,9 +69,9 @@ export async function runSampleWorks( let func = (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T): T => >func : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(f: (a: A, b?: B, c?: C, d?: D, e?: E) => T): T => f.apply(this, result) : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A, b?: B, c?: C, d?: D, e?: E) => T > : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A @@ -98,21 +98,21 @@ export async function runSampleWorks( let rfunc: typeof func & {} = func as any; // <- This is the only difference >rfunc : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func as any : any >func : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ return rfunc >rfunc : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } export async function runSampleBreaks( >runSampleBreaks : (a: bluebird, b?: bluebird, c?: bluebird, d?: bluebird, e?: bluebird) => Promise<((f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T)> -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ a: bluebird, b?: bluebird, c?: bluebird, d?: bluebird, e?: bluebird) { >a : bluebird @@ -141,7 +141,7 @@ export async function runSampleBreaks( >[a, b, c, d, e].filter(el => !!el) : bluebird[] > : ^^^^^^^^^^^^^ >[a, b, c, d, e].filter : { >(predicate: (value: bluebird, index: number, array: bluebird[]) => value is S, thisArg?: any): S[]; (predicate: (value: bluebird, index: number, array: bluebird[]) => unknown, thisArg?: any): bluebird[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^ ^^^ >[a, b, c, d, e] : bluebird[] > : ^^^^^^^^^^^^^ >a : bluebird @@ -155,7 +155,7 @@ export async function runSampleBreaks( >e : bluebird > : ^^^^^^^^^^^ >filter : { >(predicate: (value: bluebird, index: number, array: bluebird[]) => value is S, thisArg?: any): S[]; (predicate: (value: bluebird, index: number, array: bluebird[]) => unknown, thisArg?: any): bluebird[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^ ^^^ >el => !!el : (el: bluebird) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >el : bluebird @@ -169,9 +169,9 @@ export async function runSampleBreaks( let func = (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T): T => >func : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(f: (a: A, b?: B, c?: C, d?: D, e?: E) => T): T => f.apply(this, result) : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A, b?: B, c?: C, d?: D, e?: E) => T > : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A @@ -198,14 +198,14 @@ export async function runSampleBreaks( let rfunc: typeof func = func as any; // <- This is the only difference >rfunc : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func as any : any >func : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ return rfunc >rfunc : (f: (a: A, b?: B, c?: C, d?: D, e?: E) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types b/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types index e451f7933f272..fdf3b35a48608 100644 --- a/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types +++ b/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types @@ -9,7 +9,7 @@ export interface INode { export function create(): () => INode; >create : () => () => INode -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === lib.d.ts === export type G = { [P in T]: string }; @@ -52,7 +52,7 @@ import { T, Q } from "./lib"; import { create } from "./bbb"; >create : () => () => import("bbb").INode -> : ^ ^^^^^^^ ^^^^^ ^^^^^ +> : ^^^^^^^^^ ^^^^^ ^^^^^ export const fun = create(); >fun : () => import("bbb").INode @@ -60,7 +60,7 @@ export const fun = create(); >create() : () => import("bbb").INode > : ^^^^^^ ^^^^^ ^^^^^ ^ >create : () => () => import("bbb").INode -> : ^ ^^^^^^^ ^^^^^ ^^^^^ +> : ^^^^^^^^^ ^^^^^ ^^^^^ export const fun2 = create(); >fun2 : () => import("bbb").INode @@ -68,5 +68,5 @@ export const fun2 = create(); >create() : () => import("bbb").INode > : ^^^^^^ ^^^^^ ^^^^^ ^ >create : () => () => import("bbb").INode -> : ^ ^^^^^^^ ^^^^^ ^^^^^ +> : ^^^^^^^^^ ^^^^^ ^^^^^ diff --git a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types index 5974792bc2252..b6e03b15b0d59 100644 --- a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types +++ b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types @@ -138,9 +138,9 @@ import { Power } from "./input"; export const power = ( >power : (num: Num, powerOf: PowerOf) => Power -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >( num: Num, powerOf: PowerOf): Power => (num ** powerOf) as never : (num: Num, powerOf: PowerOf) => Power -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ num: Num, >num : Num diff --git a/tests/baselines/reference/declarationEmitReexportedSymlinkReference.types b/tests/baselines/reference/declarationEmitReexportedSymlinkReference.types index 84491c53a5cd4..601150eff299b 100644 --- a/tests/baselines/reference/declarationEmitReexportedSymlinkReference.types +++ b/tests/baselines/reference/declarationEmitReexportedSymlinkReference.types @@ -14,11 +14,11 @@ export const ADMIN = MetadataAccessor.create('1'); >MetadataAccessor.create('1') : MetadataAccessor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MetadataAccessor.create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >MetadataAccessor : typeof MetadataAccessor > : ^^^^^^^^^^^^^^^^^^^^^^^ >create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >'1' : "1" > : ^^^ @@ -63,7 +63,7 @@ export declare class MetadataAccessor { static create(key: string): MetadataAccessor; >create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ >key : string > : ^^^^^^ } diff --git a/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.types b/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.types index 9255b91a4871a..e458a6fa96884 100644 --- a/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.types +++ b/tests/baselines/reference/declarationEmitReexportedSymlinkReference2.types @@ -14,11 +14,11 @@ export const ADMIN = MetadataAccessor.create('1'); >MetadataAccessor.create('1') : MetadataAccessor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MetadataAccessor.create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >MetadataAccessor : typeof MetadataAccessor > : ^^^^^^^^^^^^^^^^^^^^^^^ >create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >'1' : "1" > : ^^^ @@ -63,7 +63,7 @@ export declare class MetadataAccessor { static create(key: string): MetadataAccessor; >create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ >key : string > : ^^^^^^ } diff --git a/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.types b/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.types index 4c53f672d436f..2cad5afcb1c45 100644 --- a/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.types +++ b/tests/baselines/reference/declarationEmitReexportedSymlinkReference3.types @@ -14,11 +14,11 @@ export const ADMIN = MetadataAccessor.create('1'); >MetadataAccessor.create('1') : MetadataAccessor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MetadataAccessor.create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >MetadataAccessor : typeof MetadataAccessor > : ^^^^^^^^^^^^^^^^^^^^^^^ >create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >'1' : "1" > : ^^^ @@ -63,7 +63,7 @@ export declare class MetadataAccessor { static create(key: string): MetadataAccessor; >create : (key: string) => MetadataAccessor -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ >key : string > : ^^^^^^ } diff --git a/tests/baselines/reference/declarationEmitRetainedAnnotationRetainsImportInOutput.types b/tests/baselines/reference/declarationEmitRetainedAnnotationRetainsImportInOutput.types index 6cadfea0e0fe6..b7794f350d18f 100644 --- a/tests/baselines/reference/declarationEmitRetainedAnnotationRetainsImportInOutput.types +++ b/tests/baselines/reference/declarationEmitRetainedAnnotationRetainsImportInOutput.types @@ -9,7 +9,7 @@ export type Whatever = {x: T}; export declare function something(cb: () => Whatever): Whatever; >something : (cb: () => Whatever) => Whatever -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : () => Whatever > : ^^^^^^ @@ -20,9 +20,9 @@ import * as E from 'whatever'; export const run = (i: () => E.Whatever): E.Whatever => E.something(i); >run : (i: () => E.Whatever) => E.Whatever -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(i: () => E.Whatever): E.Whatever => E.something(i) : (i: () => E.Whatever) => E.Whatever -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >i : () => E.Whatever > : ^^^^^^ >E : any @@ -32,11 +32,11 @@ export const run = (i: () => E.Whatever): E.Whatever => E.something(i); >E.something(i) : E.Whatever > : ^^^^^^^^^^^^^ >E.something : (cb: () => E.Whatever) => E.Whatever -> : ^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^ >E : typeof E > : ^^^^^^^^ >something : (cb: () => E.Whatever) => E.Whatever -> : ^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^ >i : () => E.Whatever > : ^^^^^^ diff --git a/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.types b/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.types index b8e9f43f83e2c..01bce0cc15d8e 100644 --- a/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.types +++ b/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.types @@ -20,15 +20,15 @@ import { Props } from "react-select"; export const CustomSelect1 = (x: Props(x: A) => A -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: A) => x : (x: A) => A -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : A > : ^ >x : A @@ -17,7 +17,7 @@ var a = (x: A) => x; function a2(x: A) { return x } >a2 : (x: A) => A -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : A > : ^ >x : A @@ -25,9 +25,9 @@ function a2(x: A) { return x } var a3 = (x: A) => new A(); >a3 : (x: A) => globalThis.A -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >(x: A) => new A() : (x: A) => globalThis.A -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >x : A > : ^ >new A() : globalThis.A @@ -37,7 +37,7 @@ var a3 = (x: A) => new A(); function a4(x: A) { return new A() } >a4 : (x: A) => globalThis.A -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >x : A > : ^ >new A() : globalThis.A @@ -50,9 +50,9 @@ interface B { } var b = (x: B) => x; >b : (x: B) => B -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: B) => x : (x: B) => B -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : B > : ^ >x : B @@ -60,7 +60,7 @@ var b = (x: B) => x; function b2(x: B) { return x } >b2 : (x: B) => B -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : B > : ^ >x : B diff --git a/tests/baselines/reference/declarationEmitTypeParameterNameReusedInOverloads.types b/tests/baselines/reference/declarationEmitTypeParameterNameReusedInOverloads.types index be24557efd656..dd64ab8dd45e8 100644 --- a/tests/baselines/reference/declarationEmitTypeParameterNameReusedInOverloads.types +++ b/tests/baselines/reference/declarationEmitTypeParameterNameReusedInOverloads.types @@ -29,7 +29,7 @@ export type Foo = { new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -42,7 +42,7 @@ export type Foo = { }): any[]; new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T diff --git a/tests/baselines/reference/declarationEmitTypeParameterNameShadowedInternally.types b/tests/baselines/reference/declarationEmitTypeParameterNameShadowedInternally.types index 9d17db37ce648..6ce6bdd556fc3 100644 --- a/tests/baselines/reference/declarationEmitTypeParameterNameShadowedInternally.types +++ b/tests/baselines/reference/declarationEmitTypeParameterNameShadowedInternally.types @@ -3,17 +3,17 @@ === declarationEmitTypeParameterNameShadowedInternally.ts === export const foo = (x: T) => { >foo : (x: T) => (y: T_1) => readonly [T, T_1] -> : ^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >(x: T) => { const inner = (y: T) => [x, y] as const; return inner;} : (x: T) => (y: T_1) => readonly [T, T_1] -> : ^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ const inner = (y: T) => [x, y] as const; >inner : (y: T_1) => readonly [T, T_1] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >(y: T) => [x, y] as const : (y: T_1) => readonly [T, T_1] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >y : T > : ^ >[x, y] as const : readonly [T_1, T] @@ -27,6 +27,6 @@ export const foo = (x: T) => { return inner; >inner : (y: T_1) => readonly [T, T_1] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/declarationEmitTypeofRest.types b/tests/baselines/reference/declarationEmitTypeofRest.types index e64ce1473d491..abd07e53ad126 100644 --- a/tests/baselines/reference/declarationEmitTypeofRest.types +++ b/tests/baselines/reference/declarationEmitTypeofRest.types @@ -3,9 +3,9 @@ === v1.ts === export const v1 = (...a: [n: "n", a: "a"]): { >v1 : (n: "n", a: "a") => { a: [n: "n", a: "a"]; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ >(...a: [n: "n", a: "a"]): { /** r rest param */ a: typeof a,} => { return null!} : (n: "n", a: "a") => { a: [n: "n", a: "a"]; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ >a : [n: "n", a: "a"] > : ^^^^^^^^^^^^^^^^ @@ -33,9 +33,9 @@ const n = Symbol(); export const v2 = (...a: [n: "n", a: "a"]): { >v2 : (n: "n", a: "a") => { a: [n: "n", a: "a"]; n: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ >(...a: [n: "n", a: "a"]): { /** r rest param */ a: typeof a, /** module var */ n: typeof n,} => { return null!} : (n: "n", a: "a") => { a: [n: "n", a: "a"]; n: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ >a : [n: "n", a: "a"] > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules1.types b/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules1.types index 8f899d31613c0..70203e0417847 100644 --- a/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules1.types +++ b/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules1.types @@ -349,7 +349,7 @@ type UseQueryReturnType = UseBaseQueryReturnType; declare function useQuery< >useQuery : (options: UndefinedInitialQueryOptions) => UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ TQueryFnData = unknown, TError = DefaultError, @@ -366,19 +366,19 @@ export { type UseQueryReturnType, useQuery }; >UseQueryReturnType : any > : ^^^ >useQuery : (options: UndefinedInitialQueryOptions) => UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ === node_modules/@tanstack/vue-query/build/modern/index.d.ts === export { UseQueryReturnType, useQuery } from './useQuery-CPqkvEsh.js'; >UseQueryReturnType : any > : ^^^ >useQuery : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ === src/index.mts === import { useQuery } from '@tanstack/vue-query' >useQuery : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ const baseUrl = 'https://api.publicapis.org/' >baseUrl : "https://api.publicapis.org/" @@ -432,7 +432,7 @@ const testApi = { >fetch(baseUrl + 'entries') .then((res) => res.json()) .then((data) => data.entries) .catch((err) => console.log(err)) : Promise > : ^^^^^^^^^^^^ >fetch(baseUrl + 'entries') .then((res) => res.json()) .then((data) => data.entries) .catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >fetch(baseUrl + 'entries') .then((res) => res.json()) .then((data) => data.entries) : Promise > : ^^^^^^^^^^^^ >fetch(baseUrl + 'entries') .then((res) => res.json()) .then : (onfulfilled?: ((value: any) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise @@ -482,7 +482,7 @@ const testApi = { .catch((err) => console.log(err)) >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >(err) => console.log(err) : (err: any) => void > : ^ ^^^^^^^^^^^^^^ >err : any @@ -545,7 +545,7 @@ export const useEntries = () => { >useQuery({ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) }) : import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >useQuery : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >{ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) } : { queryKey: readonly ["entries", "list"]; queryFn: () => Promise; select: (data: IEntry[]) => IEntry[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules2.types b/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules2.types index 9db2d2654d9e2..5a95392e1e6e3 100644 --- a/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules2.types +++ b/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules2.types @@ -349,7 +349,7 @@ type UseQueryReturnType = UseBaseQueryReturnType; declare function useQuery< >useQuery : (options: UndefinedInitialQueryOptions) => UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ TQueryFnData = unknown, TError = DefaultError, @@ -368,9 +368,9 @@ export { type UseQueryReturnType as b, useQuery as u }; >b : any > : ^^^ >useQuery : (options: UndefinedInitialQueryOptions) => UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ >u : (options: UndefinedInitialQueryOptions) => UseQueryReturnType -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ === node_modules/@tanstack/vue-query/build/modern/index.d.ts === export { b as UseQueryReturnType, u as useQuery } from './useQuery-CPqkvEsh.js'; @@ -379,14 +379,14 @@ export { b as UseQueryReturnType, u as useQuery } from './useQuery-CPqkvEsh.js'; >UseQueryReturnType : any > : ^^^ >u : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >useQuery : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ === src/index.mts === import { useQuery } from '@tanstack/vue-query' >useQuery : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ const baseUrl = 'https://api.publicapis.org/' >baseUrl : "https://api.publicapis.org/" @@ -440,7 +440,7 @@ const testApi = { >fetch(baseUrl + 'entries') .then((res) => res.json()) .then((data) => data.entries) .catch((err) => console.log(err)) : Promise > : ^^^^^^^^^^^^ >fetch(baseUrl + 'entries') .then((res) => res.json()) .then((data) => data.entries) .catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >fetch(baseUrl + 'entries') .then((res) => res.json()) .then((data) => data.entries) : Promise > : ^^^^^^^^^^^^ >fetch(baseUrl + 'entries') .then((res) => res.json()) .then : (onfulfilled?: ((value: any) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise @@ -490,7 +490,7 @@ const testApi = { .catch((err) => console.log(err)) >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >(err) => console.log(err) : (err: any) => void > : ^ ^^^^^^^^^^^^^^ >err : any @@ -553,7 +553,7 @@ export const useEntries = () => { >useQuery({ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) }) : import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >useQuery : (options: { enabled?: boolean; refetchInterval?: number; select?: ((data: TQueryFnData) => TData) | undefined; retry?: (number | boolean | ((failureCount: number, error: TError) => boolean)) | undefined; queryFn?: ((context: { queryKey: TQueryKey; }) => TQueryFnData | Promise) | undefined; queryKey?: TQueryKey | undefined; initialData?: TQueryFnData | undefined; initialDataUpdatedAt?: number | (() => number | undefined); } & { initialData?: undefined; }) => import("node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh").b -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >{ queryKey: entryKeys.list(), queryFn: testApi.getEntries, select: (data) => data.slice(0, 10) } : { queryKey: readonly ["entries", "list"]; queryFn: () => Promise; select: (data: IEntry[]) => IEntry[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitWithDefaultAsComputedName.types b/tests/baselines/reference/declarationEmitWithDefaultAsComputedName.types index 713456f1a3fd9..aeecd0608f7b3 100644 --- a/tests/baselines/reference/declarationEmitWithDefaultAsComputedName.types +++ b/tests/baselines/reference/declarationEmitWithDefaultAsComputedName.types @@ -12,7 +12,7 @@ type Experiment = { }; declare const createExperiment: ( >createExperiment : (options: Experiment) => Experiment -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ options: Experiment >options : Experiment @@ -23,7 +23,7 @@ export default createExperiment({ >createExperiment({ name: "foo"}) : Experiment<"foo"> > : ^^^^^^^^^^^^^^^^^ >createExperiment : (options: Experiment) => Experiment -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "foo"} : { name: "foo"; } > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitWithDefaultAsComputedName2.types b/tests/baselines/reference/declarationEmitWithDefaultAsComputedName2.types index e5fff80e18a55..67c315a956afa 100644 --- a/tests/baselines/reference/declarationEmitWithDefaultAsComputedName2.types +++ b/tests/baselines/reference/declarationEmitWithDefaultAsComputedName2.types @@ -12,7 +12,7 @@ type Experiment = { }; declare const createExperiment: ( >createExperiment : (options: Experiment) => Experiment -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ options: Experiment >options : Experiment @@ -23,7 +23,7 @@ export default createExperiment({ >createExperiment({ name: "foo"}) : Experiment<"foo"> > : ^^^^^^^^^^^^^^^^^ >createExperiment : (options: Experiment) => Experiment -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "foo"} : { name: "foo"; } > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitWithInvalidPackageJsonTypings.types b/tests/baselines/reference/declarationEmitWithInvalidPackageJsonTypings.types index d9f592e783a0b..21469a1174d6c 100644 --- a/tests/baselines/reference/declarationEmitWithInvalidPackageJsonTypings.types +++ b/tests/baselines/reference/declarationEmitWithInvalidPackageJsonTypings.types @@ -13,7 +13,7 @@ export interface MutableRefObject { } export function useRef(current: T): MutableRefObject { >useRef : (current: T) => MutableRefObject -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >current : T > : ^ @@ -35,7 +35,7 @@ export const useCsvParser = () => { >useRef(null) : MutableRefObject > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >useRef : (current: T) => MutableRefObject -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ return parserRef; >parserRef : MutableRefObject diff --git a/tests/baselines/reference/declarationFileForHtmlFileWithinDeclarationFile.types b/tests/baselines/reference/declarationFileForHtmlFileWithinDeclarationFile.types index 06476601d6610..8af894fc3c5c1 100644 --- a/tests/baselines/reference/declarationFileForHtmlFileWithinDeclarationFile.types +++ b/tests/baselines/reference/declarationFileForHtmlFileWithinDeclarationFile.types @@ -76,7 +76,7 @@ if (document !== mod.default) { >document.body.appendChild(mod.blogPost) : Element > : ^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -84,7 +84,7 @@ if (document !== mod.default) { >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >mod.blogPost : Element > : ^^^^^^^ >mod : typeof mod diff --git a/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=false).types b/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=false).types index 5a933b6486042..073f6160998b0 100644 --- a/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=false).types +++ b/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=false).types @@ -71,7 +71,7 @@ if (document !== mod.default) { >document.body.appendChild(mod.blogPost) : any > : ^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -79,7 +79,7 @@ if (document !== mod.default) { >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >mod.blogPost : any > : ^^^ >mod : any diff --git a/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=true).types b/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=true).types index f4b3ed62e8924..d3a34b7a9fe80 100644 --- a/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=true).types +++ b/tests/baselines/reference/declarationFileForHtmlImport(allowarbitraryextensions=true).types @@ -71,7 +71,7 @@ if (document !== mod.default) { >document.body.appendChild(mod.blogPost) : Element > : ^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -79,7 +79,7 @@ if (document !== mod.default) { >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >mod.blogPost : Element > : ^^^^^^^ >mod : typeof mod diff --git a/tests/baselines/reference/declarationNoDanglingGenerics.types b/tests/baselines/reference/declarationNoDanglingGenerics.types index b20ac4840400d..62a55e715b0cf 100644 --- a/tests/baselines/reference/declarationNoDanglingGenerics.types +++ b/tests/baselines/reference/declarationNoDanglingGenerics.types @@ -48,7 +48,7 @@ function register(kind: string): void | never { function ClassFactory(kind: TKind) { >ClassFactory : (kind: TKind) => typeof (Anonymous class) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >kind : TKind > : ^^^^^ @@ -108,7 +108,7 @@ export class AKind extends ClassFactory(Kinds.A) { >ClassFactory(Kinds.A) : ClassFactory<"A">.(Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ClassFactory : (kind: TKind) => typeof (Anonymous class) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Kinds.A : "A" > : ^^^ >Kinds : typeof Kinds @@ -123,7 +123,7 @@ export class BKind extends ClassFactory(Kinds.B) { >ClassFactory(Kinds.B) : ClassFactory<"B">.(Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ClassFactory : (kind: TKind) => typeof (Anonymous class) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Kinds.B : "B" > : ^^^ >Kinds : typeof Kinds @@ -138,7 +138,7 @@ export class CKind extends ClassFactory(Kinds.C) { >ClassFactory(Kinds.C) : ClassFactory<"C">.(Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ClassFactory : (kind: TKind) => typeof (Anonymous class) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Kinds.C : "C" > : ^^^ >Kinds : typeof Kinds diff --git a/tests/baselines/reference/declarationsIndirectGeneratedAliasReference.types b/tests/baselines/reference/declarationsIndirectGeneratedAliasReference.types index 8b6dcc6e55af3..29ae18501b878 100644 --- a/tests/baselines/reference/declarationsIndirectGeneratedAliasReference.types +++ b/tests/baselines/reference/declarationsIndirectGeneratedAliasReference.types @@ -17,7 +17,7 @@ export type ExtendedCtor = {x: number, ext: T}; export interface CtorConstructor { extends(x: T): ExtendedCtor; >extends : (x: T) => ExtendedCtor -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -55,11 +55,11 @@ export const MyComp = Ctor.extends({foo: "bar"}); >Ctor.extends({foo: "bar"}) : import("node_modules/mod/ctor").ExtendedCtor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Ctor.extends : (x: T) => import("node_modules/mod/ctor").ExtendedCtor -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >Ctor : import("node_modules/mod/ctor").CtorConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >extends : (x: T) => import("node_modules/mod/ctor").ExtendedCtor -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >{foo: "bar"} : { foo: string; } > : ^^^^^^^^^^^^^^^^ >foo : string diff --git a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types index b1aba02b87ac6..c3e019f02ba32 100644 --- a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types +++ b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types @@ -18,17 +18,17 @@ export type Value, U> = U[K]; export const updateIfChanged = (t: T) => { >updateIfChanged : (t: T) => ((key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: T) => T) => T; set: (newU: T) => T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >(t: T) => { const reduce = (u: U, update: (u: U) => T) => { const set = (newU: U) => Object.is(u, newU) ? t : update(newU); return Object.assign( >(key: K) => reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }), { map: (updater: (u: U) => U) => set(updater(u)), set }); }; return reduce(t, (t: T) => t);} : (t: T) => ((key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: T) => T) => T; set: (newU: T) => T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >t : T > : ^ const reduce = (u: U, update: (u: U) => T) => { >reduce : (u: U, update: (u: U) => T) => (>(key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: U) => U) => T; set: (newU: U) => T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >(u: U, update: (u: U) => T) => { const set = (newU: U) => Object.is(u, newU) ? t : update(newU); return Object.assign( >(key: K) => reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }), { map: (updater: (u: U) => U) => set(updater(u)), set }); } : (u: U, update: (u: U) => T) => (>(key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: U) => U) => T; set: (newU: U) => T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >u : U > : ^ >update : (u: U) => T @@ -68,25 +68,25 @@ export const updateIfChanged = (t: T) => { return Object.assign( >Object.assign( >(key: K) => reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }), { map: (updater: (u: U) => U) => set(updater(u)), set }) : (>(key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: U) => U) => T; set: (newU: U) => T; } -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >Object.assign : { (target: T_1, source: U_1): T_1 & U_1; (target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; (target: T_1, source1: U_1, source2: V, source3: W): T_1 & U_1 & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T_1, source: U_1): T_1 & U_1; (target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; (target: T_1, source1: U_1, source2: V, source3: W): T_1 & U_1 & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >(key: K) => >>(key: K) => reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }) : >(key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >key : K > : ^ reduce>(u[key as keyof U] as Value, (v: Value) => { >reduce>(u[key as keyof U] as Value, (v: Value) => { return update(Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v })); }) : (>(key: K) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => (>>>>>>>>>>>(key: K_11) => any & { map: (updater: (u: Value>>>>>>>>>>>) => Value>>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >reduce : (u: U, update: (u: U) => T) => (>(key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: U) => U) => T; set: (newU: U) => T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >u[key as keyof U] as Value : Value > : ^^^^^^^^^^^ >u[key as keyof U] : U[keyof U] @@ -110,11 +110,11 @@ export const updateIfChanged = (t: T) => { >Object.assign(Array.isArray(u) ? [] : {}, u, { [key]: v }) : U & { [x: string]: Value; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T_1, source: U_1): T_1 & U_1; (target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; (target: T_1, source1: U_1, source2: V, source3: W): T_1 & U_1 & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T_1, source: U_1): T_1 & U_1; (target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; (target: T_1, source1: U_1, source2: V, source3: W): T_1 & U_1 & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Array.isArray(u) ? [] : {} : undefined[] | {} > : ^^^^^^^^^^^^^^^^ >Array.isArray(u) : boolean @@ -170,9 +170,9 @@ export const updateIfChanged = (t: T) => { }; return reduce(t, (t: T) => t); >reduce(t, (t: T) => t) : ((key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: T) => T) => T; set: (newU: T) => T; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >reduce : (u: U, update: (u: U) => T) => (>(key: K) => (>(key: K_1) => (>>(key: K_2) => (>>>(key: K_3) => (>>>>(key: K_4) => (>>>>>(key: K_5) => (>>>>>>(key: K_6) => (>>>>>>>(key: K_7) => (>>>>>>>>(key: K_8) => (>>>>>>>>>(key: K_9) => (>>>>>>>>>>(key: K_10) => any & { map: (updater: (u: Value>>>>>>>>>>) => Value>>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>>) => Value>>>>>>>>>) => T; set: (newU: Value>>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>>) => Value>>>>>>>>) => T; set: (newU: Value>>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>>) => Value>>>>>>>) => T; set: (newU: Value>>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>>) => Value>>>>>>) => T; set: (newU: Value>>>>>>) => T; }) & { map: (updater: (u: Value>>>>>) => Value>>>>>) => T; set: (newU: Value>>>>>) => T; }) & { map: (updater: (u: Value>>>>) => Value>>>>) => T; set: (newU: Value>>>>) => T; }) & { map: (updater: (u: Value>>>) => Value>>>) => T; set: (newU: Value>>>) => T; }) & { map: (updater: (u: Value>>) => Value>>) => T; set: (newU: Value>>) => T; }) & { map: (updater: (u: Value>) => Value>) => T; set: (newU: Value>) => T; }) & { map: (updater: (u: Value) => Value) => T; set: (newU: Value) => T; }) & { map: (updater: (u: U) => U) => T; set: (newU: U) => T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >t : T > : ^ >(t: T) => t : (t: T) => T @@ -188,15 +188,15 @@ export const updateIfChanged = (t: T) => { export const testRecFun = (parent: T) => { >testRecFun : (parent: T) => { result: T; deeper: (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => any; }; }; }; }; }; }; }; }; }; }; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(parent: T) => { return { result: parent, deeper: (child: U) => testRecFun({ ...parent, ...child }) };} : (parent: T) => { result: T; deeper: (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => any; }; }; }; }; }; }; }; }; }; }; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >parent : T > : ^ return { >{ result: parent, deeper: (child: U) => testRecFun({ ...parent, ...child }) } : { result: T; deeper: (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ result: parent, >result : T @@ -206,9 +206,9 @@ export const testRecFun = (parent: T) => { deeper: (child: U) => >deeper : (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: any; }; }; }; }; }; }; }; }; }; }; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(child: U) => testRecFun({ ...parent, ...child }) : (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: any; }; }; }; }; }; }; }; }; }; }; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >child : U > : ^ @@ -216,7 +216,7 @@ export const testRecFun = (parent: T) => { >testRecFun({ ...parent, ...child }) : { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: (child: U_11) => any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >testRecFun : (parent: T) => { result: T; deeper: (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => any; }; }; }; }; }; }; }; }; }; }; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ ...parent, ...child } : T & U > : ^^^^^ >parent : T @@ -234,7 +234,7 @@ let p1 = testRecFun({ one: '1' }) >testRecFun({ one: '1' }) : { result: { one: string; }; deeper: (child: U) => { result: { one: string; } & U; deeper: (child: U_1) => { result: { one: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => any; }; }; }; }; }; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >testRecFun : (parent: T) => { result: T; deeper: (child: U) => { result: T & U; deeper: (child: U_1) => { result: T & U & U_1; deeper: (child: U_2) => { result: T & U & U_1 & U_2; deeper: (child: U_3) => { result: T & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: T & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8; deeper: (child: U_9) => { result: T & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => any; }; }; }; }; }; }; }; }; }; }; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ one: '1' } : { one: string; } > : ^^^^^^^^^^^^^^^^ >one : string diff --git a/tests/baselines/reference/decoratorCallGeneric.types b/tests/baselines/reference/decoratorCallGeneric.types index 21592e1ff96d1..29dbef5f5870b 100644 --- a/tests/baselines/reference/decoratorCallGeneric.types +++ b/tests/baselines/reference/decoratorCallGeneric.types @@ -12,13 +12,13 @@ interface I { } function dec(c: I) { } >dec : (c: I) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >c : I > : ^^^^ @dec >dec : (c: I) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ class C { >C : C diff --git a/tests/baselines/reference/decoratorOnArrowFunction.types b/tests/baselines/reference/decoratorOnArrowFunction.types index 5d7c841d7b0fa..e3dca13918b17 100644 --- a/tests/baselines/reference/decoratorOnArrowFunction.types +++ b/tests/baselines/reference/decoratorOnArrowFunction.types @@ -3,7 +3,7 @@ === decoratorOnArrowFunction.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @@ -13,5 +13,5 @@ var F = @dec () => { >dec () : unknown > : ^^^^^^^ >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClass1.es6.types b/tests/baselines/reference/decoratorOnClass1.es6.types index 2d088eb103e2b..f7613c3528dbe 100644 --- a/tests/baselines/reference/decoratorOnClass1.es6.types +++ b/tests/baselines/reference/decoratorOnClass1.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass1.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass1.types b/tests/baselines/reference/decoratorOnClass1.types index f8a3cc7d8c45f..7f9b9cb938961 100644 --- a/tests/baselines/reference/decoratorOnClass1.types +++ b/tests/baselines/reference/decoratorOnClass1.types @@ -3,13 +3,13 @@ === decoratorOnClass1.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass2.es6.types b/tests/baselines/reference/decoratorOnClass2.es6.types index 76b431f6c3756..5881b8b9b34e0 100644 --- a/tests/baselines/reference/decoratorOnClass2.es6.types +++ b/tests/baselines/reference/decoratorOnClass2.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass2.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass2.types b/tests/baselines/reference/decoratorOnClass2.types index f6918b5e68474..1919faaad6c13 100644 --- a/tests/baselines/reference/decoratorOnClass2.types +++ b/tests/baselines/reference/decoratorOnClass2.types @@ -3,13 +3,13 @@ === decoratorOnClass2.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass3.es6.types b/tests/baselines/reference/decoratorOnClass3.es6.types index a60a9fb568681..ebc8ed02bea14 100644 --- a/tests/baselines/reference/decoratorOnClass3.es6.types +++ b/tests/baselines/reference/decoratorOnClass3.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass3.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export default class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass3.types b/tests/baselines/reference/decoratorOnClass3.types index 3977458b522c6..e5961168713b4 100644 --- a/tests/baselines/reference/decoratorOnClass3.types +++ b/tests/baselines/reference/decoratorOnClass3.types @@ -3,14 +3,14 @@ === decoratorOnClass3.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ export @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass4.es6.types b/tests/baselines/reference/decoratorOnClass4.es6.types index 0317183823812..76084907dc6ae 100644 --- a/tests/baselines/reference/decoratorOnClass4.es6.types +++ b/tests/baselines/reference/decoratorOnClass4.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass4.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export default class { } diff --git a/tests/baselines/reference/decoratorOnClass4.types b/tests/baselines/reference/decoratorOnClass4.types index dc7a752902f3a..6180678a3f279 100644 --- a/tests/baselines/reference/decoratorOnClass4.types +++ b/tests/baselines/reference/decoratorOnClass4.types @@ -9,7 +9,7 @@ declare function dec(): (target: T) => T; @dec() >dec() : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >dec : () => (target: T) => T > : ^^^^^^ diff --git a/tests/baselines/reference/decoratorOnClass5.es6.types b/tests/baselines/reference/decoratorOnClass5.es6.types index b85fb27455020..e8de95d539699 100644 --- a/tests/baselines/reference/decoratorOnClass5.es6.types +++ b/tests/baselines/reference/decoratorOnClass5.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass5.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass5.types b/tests/baselines/reference/decoratorOnClass5.types index a0ec8903b6956..777c5be79dac1 100644 --- a/tests/baselines/reference/decoratorOnClass5.types +++ b/tests/baselines/reference/decoratorOnClass5.types @@ -9,7 +9,7 @@ declare function dec(): (target: T) => T; @dec() >dec() : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >dec : () => (target: T) => T > : ^^^^^^ diff --git a/tests/baselines/reference/decoratorOnClass6.es6.types b/tests/baselines/reference/decoratorOnClass6.es6.types index aee14aee6df4b..8bb2fbacbf91c 100644 --- a/tests/baselines/reference/decoratorOnClass6.es6.types +++ b/tests/baselines/reference/decoratorOnClass6.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass6.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass7.es6.types b/tests/baselines/reference/decoratorOnClass7.es6.types index 5966e48b2f09c..b28e0d81813c3 100644 --- a/tests/baselines/reference/decoratorOnClass7.es6.types +++ b/tests/baselines/reference/decoratorOnClass7.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass7.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export default class C { >C : C diff --git a/tests/baselines/reference/decoratorOnClass8.es6.types b/tests/baselines/reference/decoratorOnClass8.es6.types index c4836f8914c08..4c5c8b30f982a 100644 --- a/tests/baselines/reference/decoratorOnClass8.es6.types +++ b/tests/baselines/reference/decoratorOnClass8.es6.types @@ -3,13 +3,13 @@ === decoratorOnClass8.es6.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ export default class { static y = 1; diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.es6.types b/tests/baselines/reference/decoratorOnClassAccessor1.es6.types index c3d44c940ea42..5e3939b00fd58 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor1.es6.types +++ b/tests/baselines/reference/decoratorOnClassAccessor1.es6.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor1.es6.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -13,7 +13,7 @@ declare function dec(target: any, propertyKey: string, descriptor: TypedPrope export default class { @dec get accessor() { return 1; } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/decoratorOnClassAccessor1.types b/tests/baselines/reference/decoratorOnClassAccessor1.types index b146bc412a043..37e6039f9a15d 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor1.types +++ b/tests/baselines/reference/decoratorOnClassAccessor1.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor1.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec get accessor() { return 1; } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/decoratorOnClassAccessor2.types b/tests/baselines/reference/decoratorOnClassAccessor2.types index 7d55b72ce0e7b..ea5990b3ad2a6 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor2.types +++ b/tests/baselines/reference/decoratorOnClassAccessor2.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor2.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec public get accessor() { return 1; } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/decoratorOnClassAccessor3.types b/tests/baselines/reference/decoratorOnClassAccessor3.types index 8f6c918194090..af651c26ccd59 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor3.types +++ b/tests/baselines/reference/decoratorOnClassAccessor3.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor3.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -19,7 +19,7 @@ class C { >public : any > : ^^^ >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/decoratorOnClassAccessor4.types b/tests/baselines/reference/decoratorOnClassAccessor4.types index daa22e15d5f5d..8f5fccf4f915f 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor4.types +++ b/tests/baselines/reference/decoratorOnClassAccessor4.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor4.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec set accessor(value: number) { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >value : number diff --git a/tests/baselines/reference/decoratorOnClassAccessor5.types b/tests/baselines/reference/decoratorOnClassAccessor5.types index a107b6e668e3b..8c1047ec10540 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor5.types +++ b/tests/baselines/reference/decoratorOnClassAccessor5.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor5.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec public set accessor(value: number) { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >value : number diff --git a/tests/baselines/reference/decoratorOnClassAccessor6.types b/tests/baselines/reference/decoratorOnClassAccessor6.types index a2c52716ba39a..351a72ef370c3 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor6.types +++ b/tests/baselines/reference/decoratorOnClassAccessor6.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor6.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -19,7 +19,7 @@ class C { >public : any > : ^^^ >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >accessor : number > : ^^^^^^ >value : number diff --git a/tests/baselines/reference/decoratorOnClassAccessor7.types b/tests/baselines/reference/decoratorOnClassAccessor7.types index 5f8cf8f015c47..db442c8a5793d 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor7.types +++ b/tests/baselines/reference/decoratorOnClassAccessor7.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor7.ts === declare function dec1(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec1 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -13,7 +13,7 @@ declare function dec1(target: any, propertyKey: string, descriptor: TypedProp declare function dec2(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec2 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -27,7 +27,7 @@ class A { @dec1 get x() { return 0; } >dec1 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -52,7 +52,7 @@ class B { @dec2 set x(value: number) { } >dec2 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number @@ -65,7 +65,7 @@ class C { @dec1 set x(value: number) { } >dec1 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number @@ -90,7 +90,7 @@ class D { @dec2 get x() { return 0; } >dec2 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -103,7 +103,7 @@ class E { @dec1 get x() { return 0; } >dec1 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -111,7 +111,7 @@ class E { @dec2 set x(value: number) { } >dec2 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number @@ -124,7 +124,7 @@ class F { @dec1 set x(value: number) { } >dec1 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number @@ -132,7 +132,7 @@ class F { @dec2 get x() { return 0; } >dec2 : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/decoratorOnClassAccessor8.types b/tests/baselines/reference/decoratorOnClassAccessor8.types index c6588ff39715e..78556d9c5018e 100644 --- a/tests/baselines/reference/decoratorOnClassAccessor8.types +++ b/tests/baselines/reference/decoratorOnClassAccessor8.types @@ -3,7 +3,7 @@ === decoratorOnClassAccessor8.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class A { @dec get x() { return 0; } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -41,7 +41,7 @@ class B { @dec set x(value: number) { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number @@ -54,7 +54,7 @@ class C { @dec set x(value: number) { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number @@ -79,7 +79,7 @@ class D { @dec get x() { return 0; } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -92,7 +92,7 @@ class E { @dec get x() { return 0; } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >0 : 0 @@ -105,7 +105,7 @@ class F { @dec set x(value: number) { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >value : number diff --git a/tests/baselines/reference/decoratorOnClassConstructor1.types b/tests/baselines/reference/decoratorOnClassConstructor1.types index 5b1df948c5609..87426cfc8021e 100644 --- a/tests/baselines/reference/decoratorOnClassConstructor1.types +++ b/tests/baselines/reference/decoratorOnClassConstructor1.types @@ -3,7 +3,7 @@ === decoratorOnClassConstructor1.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -17,5 +17,5 @@ class C { @dec constructor() {} >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClassMethod1.es6.types b/tests/baselines/reference/decoratorOnClassMethod1.es6.types index 0cb09a66dab89..47b73c7087e90 100644 --- a/tests/baselines/reference/decoratorOnClassMethod1.es6.types +++ b/tests/baselines/reference/decoratorOnClassMethod1.es6.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod1.es6.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -13,7 +13,7 @@ declare function dec(target: any, propertyKey: string, descriptor: TypedPrope export default class { @dec method() {} >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >method : () => void > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClassMethod1.types b/tests/baselines/reference/decoratorOnClassMethod1.types index 07d1adb73abf7..f6aa16c93f6f6 100644 --- a/tests/baselines/reference/decoratorOnClassMethod1.types +++ b/tests/baselines/reference/decoratorOnClassMethod1.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod1.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec method() {} >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >method : () => void > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClassMethod13.types b/tests/baselines/reference/decoratorOnClassMethod13.types index fec3c90426f78..1be063f315e37 100644 --- a/tests/baselines/reference/decoratorOnClassMethod13.types +++ b/tests/baselines/reference/decoratorOnClassMethod13.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod13.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec ["1"]() { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >["1"] : () => void > : ^^^^^^^^^^ >"1" : "1" @@ -24,7 +24,7 @@ class C { @dec ["b"]() { } >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >["b"] : () => void > : ^^^^^^^^^^ >"b" : "b" diff --git a/tests/baselines/reference/decoratorOnClassMethod2.types b/tests/baselines/reference/decoratorOnClassMethod2.types index b72f9cb9b335e..1e5988ce7a8a3 100644 --- a/tests/baselines/reference/decoratorOnClassMethod2.types +++ b/tests/baselines/reference/decoratorOnClassMethod2.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod2.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec public method() {} >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >method : () => void > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClassMethod3.types b/tests/baselines/reference/decoratorOnClassMethod3.types index b866616236f50..ed61fe89add20 100644 --- a/tests/baselines/reference/decoratorOnClassMethod3.types +++ b/tests/baselines/reference/decoratorOnClassMethod3.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod3.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -19,7 +19,7 @@ class C { >public : any > : ^^^ >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >method : () => void > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClassMethod4.types b/tests/baselines/reference/decoratorOnClassMethod4.types index aeac5b3c4e284..3b8477e79a526 100644 --- a/tests/baselines/reference/decoratorOnClassMethod4.types +++ b/tests/baselines/reference/decoratorOnClassMethod4.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod4.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec ["method"]() {} >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >["method"] : () => void > : ^^^^^^^^^^ >"method" : "method" diff --git a/tests/baselines/reference/decoratorOnClassMethod5.types b/tests/baselines/reference/decoratorOnClassMethod5.types index 09f15f6a72573..37bb08ff4faa0 100644 --- a/tests/baselines/reference/decoratorOnClassMethod5.types +++ b/tests/baselines/reference/decoratorOnClassMethod5.types @@ -16,7 +16,7 @@ class C { @dec() ["method"]() {} >dec() : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dec : () => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor > : ^^^^^^ >["method"] : () => void diff --git a/tests/baselines/reference/decoratorOnClassMethod7.types b/tests/baselines/reference/decoratorOnClassMethod7.types index 347b9b22753d8..c4112cb3d1b92 100644 --- a/tests/baselines/reference/decoratorOnClassMethod7.types +++ b/tests/baselines/reference/decoratorOnClassMethod7.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod7.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -16,7 +16,7 @@ class C { @dec public ["method"]() {} >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >["method"] : () => void > : ^^^^^^^^^^ >"method" : "method" diff --git a/tests/baselines/reference/decoratorOnClassMethod8.types b/tests/baselines/reference/decoratorOnClassMethod8.types index c06dd92684a9e..e09571e88c2f5 100644 --- a/tests/baselines/reference/decoratorOnClassMethod8.types +++ b/tests/baselines/reference/decoratorOnClassMethod8.types @@ -3,7 +3,7 @@ === decoratorOnClassMethod8.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @@ -13,7 +13,7 @@ class C { @dec method() {} >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >method : () => void > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/decoratorOnClassMethodOverload1.types b/tests/baselines/reference/decoratorOnClassMethodOverload1.types index 93640dbfafa32..f3dfd22c4b8ee 100644 --- a/tests/baselines/reference/decoratorOnClassMethodOverload1.types +++ b/tests/baselines/reference/decoratorOnClassMethodOverload1.types @@ -3,7 +3,7 @@ === decoratorOnClassMethodOverload1.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any > : ^^^ >propertyKey : string @@ -17,7 +17,7 @@ class C { @dec >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ method() >method : () => any diff --git a/tests/baselines/reference/decoratorOnClassMethodOverload2.types b/tests/baselines/reference/decoratorOnClassMethodOverload2.types index c827ee33ff9f6..1a740dc3288e2 100644 --- a/tests/baselines/reference/decoratorOnClassMethodOverload2.types +++ b/tests/baselines/reference/decoratorOnClassMethodOverload2.types @@ -3,7 +3,7 @@ === decoratorOnClassMethodOverload2.ts === declare function dec(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor): TypedPropertyDescriptor; >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >target : any >propertyKey : string > : ^^^^^^ @@ -20,7 +20,7 @@ class C { @dec >dec : (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ method() { } >method : () => any diff --git a/tests/baselines/reference/decoratorOnEnum.types b/tests/baselines/reference/decoratorOnEnum.types index 14605d8f3900c..ca27de220c4fa 100644 --- a/tests/baselines/reference/decoratorOnEnum.types +++ b/tests/baselines/reference/decoratorOnEnum.types @@ -3,13 +3,13 @@ === decoratorOnEnum.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ enum E { >E : E diff --git a/tests/baselines/reference/decoratorOnEnum2.types b/tests/baselines/reference/decoratorOnEnum2.types index 42dc0d46d3711..7ace24e6fbb0f 100644 --- a/tests/baselines/reference/decoratorOnEnum2.types +++ b/tests/baselines/reference/decoratorOnEnum2.types @@ -3,7 +3,7 @@ === decoratorOnEnum2.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @@ -13,7 +13,7 @@ enum E { @dec A >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >A : any > : ^^^ } diff --git a/tests/baselines/reference/decoratorOnFunctionDeclaration.types b/tests/baselines/reference/decoratorOnFunctionDeclaration.types index 23118e67bffa8..9ea5051883f38 100644 --- a/tests/baselines/reference/decoratorOnFunctionDeclaration.types +++ b/tests/baselines/reference/decoratorOnFunctionDeclaration.types @@ -3,13 +3,13 @@ === decoratorOnFunctionDeclaration.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ function F() { >F : () => void diff --git a/tests/baselines/reference/decoratorOnFunctionExpression.types b/tests/baselines/reference/decoratorOnFunctionExpression.types index fad524d95247a..72e33f67c0624 100644 --- a/tests/baselines/reference/decoratorOnFunctionExpression.types +++ b/tests/baselines/reference/decoratorOnFunctionExpression.types @@ -3,7 +3,7 @@ === decoratorOnFunctionExpression.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @@ -11,7 +11,7 @@ var F = @dec function () { >F : any > : ^^^ >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ > : () => void > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/decoratorOnImportEquals1.types b/tests/baselines/reference/decoratorOnImportEquals1.types index c6aa9c5815502..b04f6bf1cee11 100644 --- a/tests/baselines/reference/decoratorOnImportEquals1.types +++ b/tests/baselines/reference/decoratorOnImportEquals1.types @@ -3,7 +3,7 @@ === decoratorOnImportEquals1.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @@ -19,7 +19,7 @@ module M1 { module M2 { @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ import X = M1.X; >X : number diff --git a/tests/baselines/reference/decoratorOnImportEquals2.types b/tests/baselines/reference/decoratorOnImportEquals2.types index 4abb5c36dfd59..4f3b1ae70913d 100644 --- a/tests/baselines/reference/decoratorOnImportEquals2.types +++ b/tests/baselines/reference/decoratorOnImportEquals2.types @@ -3,7 +3,7 @@ === decoratorOnImportEquals2_1.ts === @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ import lib = require('./decoratorOnImportEquals2_0'); >lib : typeof lib @@ -11,7 +11,7 @@ import lib = require('./decoratorOnImportEquals2_0'); declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ diff --git a/tests/baselines/reference/decoratorOnInterface.types b/tests/baselines/reference/decoratorOnInterface.types index 20b1b09e2ae65..7ef95622e6439 100644 --- a/tests/baselines/reference/decoratorOnInterface.types +++ b/tests/baselines/reference/decoratorOnInterface.types @@ -3,13 +3,13 @@ === decoratorOnInterface.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ interface I { } diff --git a/tests/baselines/reference/decoratorOnInternalModule.types b/tests/baselines/reference/decoratorOnInternalModule.types index 97fa59782e1fd..6fa62d80b3d0f 100644 --- a/tests/baselines/reference/decoratorOnInternalModule.types +++ b/tests/baselines/reference/decoratorOnInternalModule.types @@ -3,13 +3,13 @@ === decoratorOnInternalModule.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ module M { diff --git a/tests/baselines/reference/decoratorOnTypeAlias.types b/tests/baselines/reference/decoratorOnTypeAlias.types index 564bd744bbe64..1cfa6f5572add 100644 --- a/tests/baselines/reference/decoratorOnTypeAlias.types +++ b/tests/baselines/reference/decoratorOnTypeAlias.types @@ -3,13 +3,13 @@ === decoratorOnTypeAlias.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type T = number; >T : number diff --git a/tests/baselines/reference/decoratorOnVar.types b/tests/baselines/reference/decoratorOnVar.types index 8c57fe4310e5a..d11e95cbcb48a 100644 --- a/tests/baselines/reference/decoratorOnVar.types +++ b/tests/baselines/reference/decoratorOnVar.types @@ -3,13 +3,13 @@ === decoratorOnVar.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @dec >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var x: number; >x : number diff --git a/tests/baselines/reference/deepComparisons.types b/tests/baselines/reference/deepComparisons.types index 974b2e5ee95f6..20d302a08ee66 100644 --- a/tests/baselines/reference/deepComparisons.types +++ b/tests/baselines/reference/deepComparisons.types @@ -7,7 +7,7 @@ Instantiation count: 2,500 === deepComparisons.ts === function f1() { >f1 : () => void -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ let v1: Extract = 0 as any as T; // Error >v1 : Extract @@ -117,7 +117,7 @@ type F = {} & ( declare function f(): F; >f : () => F -> : ^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ function g() { >g : () => F @@ -129,6 +129,6 @@ function g() { >f() : F > : ^^^^^^ >f : () => F -> : ^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/deepKeysIndexing.types b/tests/baselines/reference/deepKeysIndexing.types index b2b5db4a164ba..a4648de030edb 100644 --- a/tests/baselines/reference/deepKeysIndexing.types +++ b/tests/baselines/reference/deepKeysIndexing.types @@ -64,7 +64,7 @@ class Bar { broken< >broken : , V extends O[K1][K2]>(k1: K1, k2: K2, value: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ K1 extends keyof O, K2 extends keys2broken, @@ -79,7 +79,7 @@ class Bar { working< >working : , V extends O[K1][K2]>(k1: K1, k2: K2, value: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ K1 extends keyof O, K2 extends keys2working, @@ -94,7 +94,7 @@ class Bar { workaround< >workaround : , V extends O[K1][K2]>(k1: K1, k2: K2, value: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ K1 extends keyof O, K2 extends keys2workaround, diff --git a/tests/baselines/reference/deeplyNestedCheck.types b/tests/baselines/reference/deeplyNestedCheck.types index de544441121f0..09e9ef81c0aca 100644 --- a/tests/baselines/reference/deeplyNestedCheck.types +++ b/tests/baselines/reference/deeplyNestedCheck.types @@ -14,7 +14,7 @@ interface DataSnapshot { interface Snapshot extends DataSnapshot { child>(path: U): Snapshot; >child : >(path: U) => Snapshot -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >path : U > : ^ } diff --git a/tests/baselines/reference/deeplyNestedConstraints.types b/tests/baselines/reference/deeplyNestedConstraints.types index 5ebae1c3eef1d..98cdd3f92cca5 100644 --- a/tests/baselines/reference/deeplyNestedConstraints.types +++ b/tests/baselines/reference/deeplyNestedConstraints.types @@ -17,7 +17,7 @@ class BufferPool> { setArray2(_: K, array: Extract>) { >setArray2 : (_: K, array: Extract>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >_ : K > : ^ >array : Extract> diff --git a/tests/baselines/reference/deeplyNestedMappedTypes.types b/tests/baselines/reference/deeplyNestedMappedTypes.types index af24d7169f1f8..d023caebb9265 100644 --- a/tests/baselines/reference/deeplyNestedMappedTypes.types +++ b/tests/baselines/reference/deeplyNestedMappedTypes.types @@ -211,11 +211,11 @@ export const Input = Type.Object({ >Type.Object({ level1: Type.Object({ level2: Type.Object({ foo: Type.String(), }) })}) : TObject<{ level1: TObject<{ level2: TObject<{ foo: TString; }>; }>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Type.Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Type : typeof Type > : ^^^^^^^^^^^ >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ level1: Type.Object({ level2: Type.Object({ foo: Type.String(), }) })} : { level1: TObject<{ level2: TObject<{ foo: TString; }>; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -225,11 +225,11 @@ export const Input = Type.Object({ >Type.Object({ level2: Type.Object({ foo: Type.String(), }) }) : TObject<{ level2: TObject<{ foo: TString; }>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Type.Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Type : typeof Type > : ^^^^^^^^^^^ >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ level2: Type.Object({ foo: Type.String(), }) } : { level2: TObject<{ foo: TString; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -239,11 +239,11 @@ export const Input = Type.Object({ >Type.Object({ foo: Type.String(), }) : TObject<{ foo: TString; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >Type.Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Type : typeof Type > : ^^^^^^^^^^^ >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: Type.String(), } : { foo: TString; } > : ^^^^^^^^^^^^^^^^^ @@ -275,11 +275,11 @@ export const Output = Type.Object({ >Type.Object({ level1: Type.Object({ level2: Type.Object({ foo: Type.String(), bar: Type.String(), }) })}) : TObject<{ level1: TObject<{ level2: TObject<{ foo: TString; bar: TString; }>; }>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Type.Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Type : typeof Type > : ^^^^^^^^^^^ >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ level1: Type.Object({ level2: Type.Object({ foo: Type.String(), bar: Type.String(), }) })} : { level1: TObject<{ level2: TObject<{ foo: TString; bar: TString; }>; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -289,11 +289,11 @@ export const Output = Type.Object({ >Type.Object({ level2: Type.Object({ foo: Type.String(), bar: Type.String(), }) }) : TObject<{ level2: TObject<{ foo: TString; bar: TString; }>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Type.Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Type : typeof Type > : ^^^^^^^^^^^ >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ level2: Type.Object({ foo: Type.String(), bar: Type.String(), }) } : { level2: TObject<{ foo: TString; bar: TString; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -303,11 +303,11 @@ export const Output = Type.Object({ >Type.Object({ foo: Type.String(), bar: Type.String(), }) : TObject<{ foo: TString; bar: TString; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Type.Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Type : typeof Type > : ^^^^^^^^^^^ >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: Type.String(), bar: Type.String(), } : { foo: TString; bar: TString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -352,7 +352,7 @@ function problematicFunction1(ors: Input[]): Output[] { function problematicFunction2(ors: Input[]): T { >problematicFunction2 : (ors: Input[]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >ors : { level1: { level2: { foo: string; }; }; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -540,7 +540,7 @@ declare namespace Type { function Object(object: T): TObject >Object : (object: T) => TObject -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >object : T > : ^ diff --git a/tests/baselines/reference/defaultBestCommonTypesHaveDecls.types b/tests/baselines/reference/defaultBestCommonTypesHaveDecls.types index 46b9066d53e55..9f6bba99a569b 100644 --- a/tests/baselines/reference/defaultBestCommonTypesHaveDecls.types +++ b/tests/baselines/reference/defaultBestCommonTypesHaveDecls.types @@ -27,7 +27,7 @@ obj2.length; function concat(x: T, y: T): T { return null; } >concat : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -39,7 +39,7 @@ var result = concat(1, ""); // error >concat(1, "") : 1 > : ^ >concat : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -57,7 +57,7 @@ var elementCount = result.length; function concat2(x: T, y: U) { return null; } >concat2 : (x: T, y: U) => any -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ >y : U @@ -69,7 +69,7 @@ var result2 = concat2(1, ""); // result2 will be number|string >concat2(1, "") : any > : ^^^ >concat2 : (x: T, y: U) => any -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >1 : 1 > : ^ >"" : "" diff --git a/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types b/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types index 44e201fb7d6df..a9b711ad5605e 100644 --- a/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types +++ b/tests/baselines/reference/defaultDeclarationEmitNamedCorrectly.types @@ -12,7 +12,7 @@ export interface Things { } export function make(x: { new (): CTor & {props: P} }): Things { >make : (x: { new (): CTor & { props: P; }; }) => Things -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : new () => CTor & { props: P; } > : ^^^^^^^^^^ >props : P @@ -39,7 +39,7 @@ export default class MyComponent { >make(MyComponent) : Things > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >make : (x: { new (): CTor & { props: P; }; }) => Things -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >MyComponent : typeof MyComponent > : ^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types b/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types index 4301a2eb713c3..eeade4be202c9 100644 --- a/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types +++ b/tests/baselines/reference/defaultDeclarationEmitShadowedNamedCorrectly.types @@ -16,7 +16,7 @@ export interface Things { } export function make(x: { new (): CTor & {props: P} }): Things { >make : (x: { new (): CTor & { props: P; }; }) => Things -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : new () => CTor & { props: P; } > : ^^^^^^^^^^ >props : P @@ -53,7 +53,7 @@ export namespace Something { >make(me.default) : me.Things > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >make : (x: { new (): CTor & { props: P; }; }) => Things -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >me.default : typeof me.default > : ^^^^^^^^^^^^^^^^^ >me : typeof me diff --git a/tests/baselines/reference/deferredLookupTypeResolution.types b/tests/baselines/reference/deferredLookupTypeResolution.types index 861d47f6f8e59..d00de39e6fb99 100644 --- a/tests/baselines/reference/deferredLookupTypeResolution.types +++ b/tests/baselines/reference/deferredLookupTypeResolution.types @@ -38,7 +38,7 @@ type T2 = ObjectHasKey<{ a: string }, 'b'>; // 'false' declare function f1(a: A, b: B): { [P in A | B]: any }; >f1 : (a: A, b: B) => { [P in A | B]: any; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -46,7 +46,7 @@ declare function f1(a: A, b: B): { [P in A | function f2(a: A) { >f2 : (a: A) => { [P in A | "x"]: any; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : A > : ^ @@ -54,7 +54,7 @@ function f2(a: A) { >f1(a, 'x') : { [P in A | "x"]: any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >f1 : (a: A_1, b: B) => { [P in A_1 | B]: any; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >'x' : "x" @@ -71,7 +71,7 @@ function f3(x: 'a' | 'b') { >f2(x) : { a: any; b: any; x: any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (a: A) => { [P in A | "x"]: any; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : "a" | "b" > : ^^^^^^^^^ } diff --git a/tests/baselines/reference/dependentDestructuredVariables.types b/tests/baselines/reference/dependentDestructuredVariables.types index 1ee5b445027b7..c3f43e551c501 100644 --- a/tests/baselines/reference/dependentDestructuredVariables.types +++ b/tests/baselines/reference/dependentDestructuredVariables.types @@ -171,7 +171,7 @@ function f12({ kind, payload }: Action) { // repro #50206 function f13({ kind, payload }: T) { >f13 : ({ kind, payload }: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >kind : "A" | "B" > : ^^^^^^^^^ >payload : string | number @@ -217,7 +217,7 @@ function f13({ kind, payload }: T) { function f14(t: T) { >f14 : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -663,19 +663,19 @@ type AB = A | B; declare function printValue(t: T): void; >printValue : (t: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T > : ^ declare function printValueList(t: Array): void; >printValueList : (t: Array) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T[] > : ^^^ function unrefined1(ab: AB): void { >unrefined1 : (ab: AB) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ab : AB > : ^^^^^ @@ -699,7 +699,7 @@ function unrefined1(ab: AB): void { >printValue(value) : void > : ^^^^ >printValue : (t: T_1) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >value : T > : ^ } @@ -708,7 +708,7 @@ function unrefined1(ab: AB): void { >printValueList(value) : void > : ^^^^ >printValueList : (t: Array) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >value : T[] > : ^^^ } @@ -800,11 +800,11 @@ const { value, done } = it.next(); >it.next() : IteratorResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >it.next : (...args: [] | [undefined]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ >it : Iterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >next : (...args: [] | [undefined]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ if (!done) { >!done : boolean @@ -1086,7 +1086,7 @@ const reducer: (...args: ReducerArgs) => void = (op, args) => { >args.firstArr.concat(args.secondArr) : any[] > : ^^^^^ >args.firstArr.concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >args.firstArr : any[] > : ^^^^^ >args : { firstArr: any[]; secondArr: any[]; } @@ -1094,7 +1094,7 @@ const reducer: (...args: ReducerArgs) => void = (op, args) => { >firstArr : any[] > : ^^^^^ >concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >args.secondArr : any[] > : ^^^^^ >args : { firstArr: any[]; secondArr: any[]; } @@ -1720,7 +1720,7 @@ declare class Client { public on(event: K, listener: (...args: ClientEvents[K]) => void): void; >on : (event: K, listener: (...args: ClientEvents[K]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >event : K > : ^ >listener : (...args: ClientEvents[K]) => void @@ -1741,11 +1741,11 @@ bot.on("shardDisconnect", (event, shard) => console.log(`Shard ${shard} disconne >bot.on("shardDisconnect", (event, shard) => console.log(`Shard ${shard} disconnected (${event.code},${event.wasClean}): ${event.reason}`)) : void > : ^^^^ >bot.on : (event: K, listener: (...args: ClientEvents[K]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >bot : Client > : ^^^^^^ >on : (event: K, listener: (...args: ClientEvents[K]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"shardDisconnect" : "shardDisconnect" > : ^^^^^^^^^^^^^^^^^ >(event, shard) => console.log(`Shard ${shard} disconnected (${event.code},${event.wasClean}): ${event.reason}`) : (event: CloseEvent, shard: number) => void @@ -1789,11 +1789,11 @@ bot.on("shardDisconnect", event => console.log(`${event.code} ${event.wasClean} >bot.on("shardDisconnect", event => console.log(`${event.code} ${event.wasClean} ${event.reason}`)) : void > : ^^^^ >bot.on : (event: K, listener: (...args: ClientEvents[K]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >bot : Client > : ^^^^^^ >on : (event: K, listener: (...args: ClientEvents[K]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"shardDisconnect" : "shardDisconnect" > : ^^^^^^^^^^^^^^^^^ >event => console.log(`${event.code} ${event.wasClean} ${event.reason}`) : (event: CloseEvent) => void diff --git a/tests/baselines/reference/dependentDestructuredVariablesFromNestedPatterns.types b/tests/baselines/reference/dependentDestructuredVariablesFromNestedPatterns.types index 7d871cf0349ca..e79732c7eb624 100644 --- a/tests/baselines/reference/dependentDestructuredVariablesFromNestedPatterns.types +++ b/tests/baselines/reference/dependentDestructuredVariablesFromNestedPatterns.types @@ -49,7 +49,7 @@ function test2([[p1, p1Error]]: [[undefined, Error] | [number, undefined]]) { async function myAllSettled(fn: () => T) { >myAllSettled : (fn: () => T) => Promise<{ [K in keyof T]: [undefined, Error] | [Awaited, undefined]; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fn : () => T > : ^^^^^^ @@ -61,11 +61,11 @@ async function myAllSettled(fn: () => T) { >Promise.allSettled(fn()) : Promise<{ -readonly [P in keyof T]: PromiseSettledResult>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.allSettled : { (values: T_1): Promise<{ -readonly [P in keyof T_1]: PromiseSettledResult>; }>; (values: Iterable>): Promise>[]>; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >allSettled : { (values: T_1): Promise<{ -readonly [P in keyof T_1]: PromiseSettledResult>; }>; (values: Iterable>): Promise>[]>; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >fn() : T > : ^ >fn : () => T @@ -151,7 +151,7 @@ async function test3() { >myAllSettled( () => [Promise.resolve(0), Promise.reject(1)] as const, ) : Promise<[[undefined, Error] | [number, undefined], [undefined, Error] | [never, undefined]]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >myAllSettled : (fn: () => T) => Promise<{ [K in keyof T]: [undefined, Error] | [Awaited, undefined]; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ () => [Promise.resolve(0), Promise.reject(1)] as const, >() => [Promise.resolve(0), Promise.reject(1)] as const : () => [Promise, Promise] @@ -163,21 +163,21 @@ async function test3() { >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/derivedGenericClassWithAny.types b/tests/baselines/reference/derivedGenericClassWithAny.types index 29f75b4c41e75..b86c1b41e4798 100644 --- a/tests/baselines/reference/derivedGenericClassWithAny.types +++ b/tests/baselines/reference/derivedGenericClassWithAny.types @@ -125,9 +125,9 @@ var r = c.foo(); // e.foo would return string >c.foo() : number > : ^^^^^^ >c.foo : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >c : C > : ^^^^^^^^^ >foo : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ diff --git a/tests/baselines/reference/destructureOfVariableSameAsShorthand.types b/tests/baselines/reference/destructureOfVariableSameAsShorthand.types index 15a04e9267be2..4de6a9a4fff8c 100644 --- a/tests/baselines/reference/destructureOfVariableSameAsShorthand.types +++ b/tests/baselines/reference/destructureOfVariableSameAsShorthand.types @@ -10,7 +10,7 @@ interface AxiosResponse { declare function get>(): Promise; >get : >() => Promise -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ async function main() { >main : () => Promise @@ -25,7 +25,7 @@ async function main() { >get() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : >() => Promise -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >then : , TResult2 = never>(onfulfilled?: (value: AxiosResponse) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >(response) => { // body is never const body = response.data; } : (response: AxiosResponse) => void @@ -53,7 +53,7 @@ async function main() { >get() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : >() => Promise -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >then : , TResult2 = never>(onfulfilled?: (value: AxiosResponse) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >({ data }) => { // data is never } : ({ data }: AxiosResponse) => void @@ -71,7 +71,7 @@ async function main() { >get() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : >() => Promise -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // body is never const body = response.data; @@ -93,7 +93,7 @@ async function main() { >get() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : >() => Promise -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // The following did not work as expected. // shouldBeNever should be never, but was any @@ -107,5 +107,5 @@ async function main() { >get() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : >() => Promise -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types b/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types index a72bf873fb4ca..e82297cef6aa5 100644 --- a/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types +++ b/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types @@ -9,7 +9,7 @@ let { [Symbol.iterator]: destructured } = []; >iterator : unique symbol > : ^^^^^^^^^^^^^ >destructured : () => IterableIterator -> : ^^^^^^ ^^^^^^^^^ +> : ^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -17,7 +17,7 @@ void destructured; >void destructured : undefined > : ^^^^^^^^^ >destructured : () => IterableIterator -> : ^^^^^^ ^^^^^^^^^ +> : ^^^^^^ const named = "prop"; >named : "prop" diff --git a/tests/baselines/reference/destructuredMaappedTypeIsNotImplicitlyAny.types b/tests/baselines/reference/destructuredMaappedTypeIsNotImplicitlyAny.types index 1379f42d30d9a..5b5a709afc00a 100644 --- a/tests/baselines/reference/destructuredMaappedTypeIsNotImplicitlyAny.types +++ b/tests/baselines/reference/destructuredMaappedTypeIsNotImplicitlyAny.types @@ -3,7 +3,7 @@ === destructuredMaappedTypeIsNotImplicitlyAny.ts === function foo(key: T, obj: { [_ in T]: number }) { >foo : (key: T, obj: { [_ in T]: number; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >key : T > : ^ >obj : { [_ in T]: number; } diff --git a/tests/baselines/reference/destructuringAssignmentWithDefault2.types b/tests/baselines/reference/destructuringAssignmentWithDefault2.types index 9f76ce73a3f75..7ab4a0f6bb48b 100644 --- a/tests/baselines/reference/destructuringAssignmentWithDefault2.types +++ b/tests/baselines/reference/destructuringAssignmentWithDefault2.types @@ -174,11 +174,11 @@ let value; >r.next() : IteratorResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >r.next : (...args: [] | [undefined]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ >r : Iterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >next : (...args: [] | [undefined]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ({ done: done = false, value } = r.next()); >({ done: done = false, value } = r.next()) : IteratorResult @@ -200,9 +200,9 @@ let value; >r.next() : IteratorResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >r.next : (...args: [] | [undefined]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ >r : Iterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >next : (...args: [] | [undefined]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES5.types b/tests/baselines/reference/destructuringParameterDeclaration3ES5.types index 91660ffb32e51..035b4dc44202f 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5.types @@ -219,7 +219,7 @@ a11([1, 2]); // Parameter type is number[] // Rest parameter with generic function foo(...a: T[]) { } >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -227,7 +227,7 @@ foo("hello", 1, 2); >foo("hello", 1, 2) : void > : ^^^^ >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ >1 : 1 @@ -239,7 +239,7 @@ foo("hello", "world"); >foo("hello", "world") : void > : ^^^^ >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ >"world" : "world" @@ -263,7 +263,7 @@ const enum E1 { a, b } function foo1(...a: T[]) { } >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -271,7 +271,7 @@ foo1(1, 2, 3, E.a); >foo1(1, 2, 3, E.a) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -289,7 +289,7 @@ foo1(1, 2, 3, E1.a, E.b); >foo1(1, 2, 3, E1.a, E.b) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types index 64c5edb5740f4..786fdeb49061a 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types @@ -219,7 +219,7 @@ a11([1, 2]); // Parameter type is number[] // Rest parameter with generic function foo(...a: T[]) { } >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -227,7 +227,7 @@ foo("hello", 1, 2); >foo("hello", 1, 2) : void > : ^^^^ >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ >1 : 1 @@ -239,7 +239,7 @@ foo("hello", "world"); >foo("hello", "world") : void > : ^^^^ >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ >"world" : "world" @@ -263,7 +263,7 @@ const enum E1 { a, b } function foo1(...a: T[]) { } >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -271,7 +271,7 @@ foo1(1, 2, 3, E.a); >foo1(1, 2, 3, E.a) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -289,7 +289,7 @@ foo1(1, 2, 3, E1.a, E.b); >foo1(1, 2, 3, E1.a, E.b) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/destructuringParameterDeclaration3ES6.types b/tests/baselines/reference/destructuringParameterDeclaration3ES6.types index d73d78bfbac89..ec17d9cfb02df 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES6.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES6.types @@ -219,7 +219,7 @@ a11([1, 2]); // Parameter type is number[] // Rest parameter with generic function foo(...a: T[]) { } >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -227,7 +227,7 @@ foo("hello", 1, 2); >foo("hello", 1, 2) : void > : ^^^^ >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ >1 : 1 @@ -239,7 +239,7 @@ foo("hello", "world"); >foo("hello", "world") : void > : ^^^^ >foo : (...a: T[]) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ >"world" : "world" @@ -263,7 +263,7 @@ const enum E1 { a, b } function foo1(...a: T[]) { } >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -271,7 +271,7 @@ foo1(1, 2, 3, E.a); >foo1(1, 2, 3, E.a) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -289,7 +289,7 @@ foo1(1, 2, 3, E1.a, E.b); >foo1(1, 2, 3, E1.a, E.b) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/destructuringParameterDeclaration4.types b/tests/baselines/reference/destructuringParameterDeclaration4.types index da2d335a5f4fe..9e76e36b7771a 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration4.types +++ b/tests/baselines/reference/destructuringParameterDeclaration4.types @@ -173,7 +173,7 @@ class C { // Rest parameter with generic function foo1(...a: T[]) { } >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >a : T[] > : ^^^ @@ -181,7 +181,7 @@ foo1(1, 2, "string", E1.a, E.b); // Error >foo1(1, 2, "string", E1.a, E.b) : void > : ^^^^ >foo1 : (...a: T[]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/destructuringTuple.types b/tests/baselines/reference/destructuringTuple.types index cfe1b4c4e9108..0cb382695333d 100644 --- a/tests/baselines/reference/destructuringTuple.types +++ b/tests/baselines/reference/destructuringTuple.types @@ -43,7 +43,7 @@ const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []); >[1, 2, 3].reduce((accu, el) => accu.concat(el), []) : number > : ^^^^^^ >[1, 2, 3].reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -53,7 +53,7 @@ const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []); >3 : 3 > : ^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(accu, el) => accu.concat(el) : (accu: [], el: number) => never[] > : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >accu : [] @@ -63,11 +63,11 @@ const [oops1] = [1, 2, 3].reduce((accu, el) => accu.concat(el), []); >accu.concat(el) : never[] > : ^^^^^^^ >accu.concat : { (...items: ConcatArray[]): never[]; (...items: ConcatArray[]): never[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >accu : [] > : ^^ >concat : { (...items: ConcatArray[]): never[]; (...items: ConcatArray[]): never[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >el : number > : ^^^^^^ >[] : never[] @@ -79,7 +79,7 @@ const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []); >[1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []) : number[] > : ^^^^^^^^ >[1, 2, 3].reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -89,7 +89,7 @@ const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []); >3 : 3 > : ^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(acc: number[], e) => acc.concat(e) : (acc: number[], e: number) => number[] > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >acc : number[] @@ -99,11 +99,11 @@ const [oops2] = [1, 2, 3].reduce((acc: number[], e) => acc.concat(e), []); >acc.concat(e) : number[] > : ^^^^^^^^ >acc.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >acc : number[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >e : number > : ^^^^^^ >[] : never[] diff --git a/tests/baselines/reference/destructuringUnspreadableIntoRest.types b/tests/baselines/reference/destructuringUnspreadableIntoRest.types index cc87560aed5a5..ee950936c5ca8 100644 --- a/tests/baselines/reference/destructuringUnspreadableIntoRest.types +++ b/tests/baselines/reference/destructuringUnspreadableIntoRest.types @@ -271,7 +271,7 @@ class A { function destructure(x: T) { >destructure : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/destructuringWithConstraint.types b/tests/baselines/reference/destructuringWithConstraint.types index 8144f5d3d78cf..6c636fdd95446 100644 --- a/tests/baselines/reference/destructuringWithConstraint.types +++ b/tests/baselines/reference/destructuringWithConstraint.types @@ -11,7 +11,7 @@ interface Props { function foo

(props: Readonly

) { >foo :

(props: Readonly

) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >props : Readonly

> : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/destructuringWithGenericParameter.types b/tests/baselines/reference/destructuringWithGenericParameter.types index d37cb3fb0ecb2..784185b16d182 100644 --- a/tests/baselines/reference/destructuringWithGenericParameter.types +++ b/tests/baselines/reference/destructuringWithGenericParameter.types @@ -22,7 +22,7 @@ var genericObject = new GenericClass<{ greeting: string }>(); function genericFunction(object: GenericClass, callback: (payload: T) => void) { >genericFunction : (object: GenericClass, callback: (payload: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >object : GenericClass > : ^^^^^^^^^^^^^^^ >callback : (payload: T) => void @@ -47,7 +47,7 @@ genericFunction(genericObject, ({greeting}) => { >genericFunction(genericObject, ({greeting}) => { var s = greeting.toLocaleLowerCase(); // Greeting should be of type string}) : void > : ^^^^ >genericFunction : (object: GenericClass, callback: (payload: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >genericObject : GenericClass<{ greeting: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >({greeting}) => { var s = greeting.toLocaleLowerCase(); // Greeting should be of type string} : ({ greeting }: { greeting: string; }) => void diff --git a/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types b/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types index ad51e0bd0f0bf..5366738d4c125 100644 --- a/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types +++ b/tests/baselines/reference/discriminantNarrowingCouldBeCircular.types @@ -4,7 +4,7 @@ // #57705, 57690 declare function is(v: T): v is T; >is : (v: T) => v is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >v : T > : ^ @@ -38,7 +38,7 @@ if (o) { >is(value) : boolean > : ^^^^^^^ >is : (v: T) => v is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : string > : ^^^^^^ } diff --git a/tests/baselines/reference/discriminantsAndPrimitives.types b/tests/baselines/reference/discriminantsAndPrimitives.types index b938772b2c63e..a2d418e710db5 100644 --- a/tests/baselines/reference/discriminantsAndPrimitives.types +++ b/tests/baselines/reference/discriminantsAndPrimitives.types @@ -260,7 +260,7 @@ if (n.type === "Disjunction") { >n.alternatives.slice() : string[] > : ^^^^^^^^ >n.alternatives.slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >n.alternatives : string[] > : ^^^^^^^^ >n : Disjunction @@ -268,14 +268,14 @@ if (n.type === "Disjunction") { >alternatives : string[] > : ^^^^^^^^ >slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ } else { n.elements.slice() // n should be narrowed to Pattern >n.elements.slice() : string[] > : ^^^^^^^^ >n.elements.slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >n.elements : string[] > : ^^^^^^^^ >n : Pattern @@ -283,6 +283,6 @@ else { >elements : string[] > : ^^^^^^^^ >slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ } diff --git a/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=false).types b/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=false).types index ad5ff3c9b6638..1bda57e88a990 100644 --- a/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=false).types +++ b/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=false).types @@ -9,7 +9,7 @@ type PromiseOrValue = Promise | T; function mapAsyncIterable( >mapAsyncIterable : (iterable: AsyncGenerator | AsyncIterable, callback: (value: T) => PromiseOrValue) => AsyncGenerator -> : ^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ iterable: AsyncGenerator | AsyncIterable, >iterable : AsyncGenerator | AsyncIterable @@ -28,7 +28,7 @@ function mapAsyncIterable( >iterable[Symbol.asyncIterator]() : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterable[Symbol.asyncIterator] : (() => AsyncGenerator) | (() => AsyncIterator) -> : ^^^^^^^ ^ ^ ^^^^ ^^^^^^^^^^^ ^ ^ +> : ^^^^^^^ ^ ^ ^^^^^^^^^^^ ^ ^ >iterable : AsyncGenerator | AsyncIterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Symbol.asyncIterator : unique symbol @@ -93,11 +93,11 @@ function mapAsyncIterable( >typeof iterator.return : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >"function" : "function" > : ^^^^^^^^^^ @@ -108,11 +108,11 @@ function mapAsyncIterable( >iterator.return() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ } catch (_e) {} >_e : unknown @@ -142,11 +142,11 @@ function mapAsyncIterable( >iterator.next() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.next : (...args: [] | [undefined]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >next : (...args: [] | [undefined]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ }, async return(): Promise> { @@ -161,11 +161,11 @@ function mapAsyncIterable( >typeof iterator.return : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >"function" : "function" > : ^^^^^^^^^^ @@ -179,11 +179,11 @@ function mapAsyncIterable( >iterator.return() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ : { value: undefined as any, done: true }; >{ value: undefined as any, done: true } : { value: any; done: true; } @@ -210,11 +210,11 @@ function mapAsyncIterable( >typeof iterator.throw : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.throw : ((e?: any) => Promise>) | undefined -> : ^^ ^^^ ^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^ ^^^^^ ^ ^^^^^^^^^^^^^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >throw : ((e?: any) => Promise>) | undefined -> : ^^ ^^^ ^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^ ^^^^^ ^ ^^^^^^^^^^^^^ >"function" : "function" > : ^^^^^^^^^^ @@ -228,11 +228,11 @@ function mapAsyncIterable( >iterator.throw(error) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.throw : (e?: any) => Promise> -> : ^ ^^^ ^^^^^ ^ ^^^ +> : ^ ^^^ ^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >throw : (e?: any) => Promise> -> : ^ ^^^ ^^^^^ ^ ^^^ +> : ^ ^^^ ^^^^^ ^ >error : unknown > : ^^^^^^^ } @@ -310,21 +310,21 @@ const iterable = { >items.shift() : number | undefined > : ^^^^^^^^^^^^^^^^^^ >items.shift : () => number | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ >items : number[] > : ^^^^^^^^ >shift : () => number | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ return Promise.resolve({ >Promise.resolve({ done: items.length === 0, value, }) : Promise<{ done: boolean; value: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ done: items.length === 0, value, } : { done: boolean; value: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -356,7 +356,7 @@ const doubles = mapAsyncIterable(iterable, (x) => x + x); >mapAsyncIterable(iterable, (x) => x + x) : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mapAsyncIterable : (iterable: AsyncGenerator | AsyncIterable, callback: (value: T) => PromiseOrValue) => AsyncGenerator -> : ^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >iterable : { [Symbol.asyncIterator](): any; next(): Promise<{ done: boolean; value: number; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(x) => x + x : (x: number) => number diff --git a/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=true).types b/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=true).types index ad5ff3c9b6638..1bda57e88a990 100644 --- a/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=true).types +++ b/tests/baselines/reference/discriminateWithOptionalProperty2(exactoptionalpropertytypes=true).types @@ -9,7 +9,7 @@ type PromiseOrValue = Promise | T; function mapAsyncIterable( >mapAsyncIterable : (iterable: AsyncGenerator | AsyncIterable, callback: (value: T) => PromiseOrValue) => AsyncGenerator -> : ^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ iterable: AsyncGenerator | AsyncIterable, >iterable : AsyncGenerator | AsyncIterable @@ -28,7 +28,7 @@ function mapAsyncIterable( >iterable[Symbol.asyncIterator]() : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterable[Symbol.asyncIterator] : (() => AsyncGenerator) | (() => AsyncIterator) -> : ^^^^^^^ ^ ^ ^^^^ ^^^^^^^^^^^ ^ ^ +> : ^^^^^^^ ^ ^ ^^^^^^^^^^^ ^ ^ >iterable : AsyncGenerator | AsyncIterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Symbol.asyncIterator : unique symbol @@ -93,11 +93,11 @@ function mapAsyncIterable( >typeof iterator.return : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >"function" : "function" > : ^^^^^^^^^^ @@ -108,11 +108,11 @@ function mapAsyncIterable( >iterator.return() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ } catch (_e) {} >_e : unknown @@ -142,11 +142,11 @@ function mapAsyncIterable( >iterator.next() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.next : (...args: [] | [undefined]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >next : (...args: [] | [undefined]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^ }, async return(): Promise> { @@ -161,11 +161,11 @@ function mapAsyncIterable( >typeof iterator.return : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : ((value?: any) => Promise>) | undefined -> : ^^ ^^^^^^^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^ ^ ^^^^^^^^^^^^^ >"function" : "function" > : ^^^^^^^^^^ @@ -179,11 +179,11 @@ function mapAsyncIterable( >iterator.return() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >return : (value?: any) => Promise> -> : ^ ^^^^^^^^^^^ ^ ^^^ +> : ^ ^^^^^^^^^^^ ^ : { value: undefined as any, done: true }; >{ value: undefined as any, done: true } : { value: any; done: true; } @@ -210,11 +210,11 @@ function mapAsyncIterable( >typeof iterator.throw : "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.throw : ((e?: any) => Promise>) | undefined -> : ^^ ^^^ ^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^ ^^^^^ ^ ^^^^^^^^^^^^^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >throw : ((e?: any) => Promise>) | undefined -> : ^^ ^^^ ^^^^^ ^ ^^^ ^^^^^^^^^^^^^ +> : ^^ ^^^ ^^^^^ ^ ^^^^^^^^^^^^^ >"function" : "function" > : ^^^^^^^^^^ @@ -228,11 +228,11 @@ function mapAsyncIterable( >iterator.throw(error) : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >iterator.throw : (e?: any) => Promise> -> : ^ ^^^ ^^^^^ ^ ^^^ +> : ^ ^^^ ^^^^^ ^ >iterator : AsyncIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >throw : (e?: any) => Promise> -> : ^ ^^^ ^^^^^ ^ ^^^ +> : ^ ^^^ ^^^^^ ^ >error : unknown > : ^^^^^^^ } @@ -310,21 +310,21 @@ const iterable = { >items.shift() : number | undefined > : ^^^^^^^^^^^^^^^^^^ >items.shift : () => number | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ >items : number[] > : ^^^^^^^^ >shift : () => number | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ return Promise.resolve({ >Promise.resolve({ done: items.length === 0, value, }) : Promise<{ done: boolean; value: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ done: items.length === 0, value, } : { done: boolean; value: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -356,7 +356,7 @@ const doubles = mapAsyncIterable(iterable, (x) => x + x); >mapAsyncIterable(iterable, (x) => x + x) : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mapAsyncIterable : (iterable: AsyncGenerator | AsyncIterable, callback: (value: T) => PromiseOrValue) => AsyncGenerator -> : ^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >iterable : { [Symbol.asyncIterator](): any; next(): Promise<{ done: boolean; value: number; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(x) => x + x : (x: number) => number diff --git a/tests/baselines/reference/discriminatedUnionInference.types b/tests/baselines/reference/discriminatedUnionInference.types index 3e57da051279d..ca01cd19ccefe 100644 --- a/tests/baselines/reference/discriminatedUnionInference.types +++ b/tests/baselines/reference/discriminatedUnionInference.types @@ -43,7 +43,7 @@ type Item = { kind: 'a', data: T } | { kind: 'b', data: T[] }; declare function foo(item: Item): T; >foo : (item: Item) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >item : Item > : ^^^^^^^ @@ -53,7 +53,7 @@ let x1 = foo({ kind: 'a', data: 42 }); // number >foo({ kind: 'a', data: 42 }) : number > : ^^^^^^ >foo : (item: Item) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ kind: 'a', data: 42 } : { kind: "a"; data: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >kind : "a" @@ -71,7 +71,7 @@ let x2 = foo({ kind: 'b', data: [1, 2] }); // number >foo({ kind: 'b', data: [1, 2] }) : number > : ^^^^^^ >foo : (item: Item) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ kind: 'b', data: [1, 2] } : { kind: "b"; data: number[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >kind : "b" diff --git a/tests/baselines/reference/discriminatedUnionJsxElement.types b/tests/baselines/reference/discriminatedUnionJsxElement.types index 6eda660a9bb1e..53c97c4260640 100644 --- a/tests/baselines/reference/discriminatedUnionJsxElement.types +++ b/tests/baselines/reference/discriminatedUnionJsxElement.types @@ -14,7 +14,7 @@ interface IData(data: IData) { >Menu : (data: IData) => any -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^ >ListItemVariant : any > : ^^^ >data : IData diff --git a/tests/baselines/reference/discriminatedUnionTypes2.types b/tests/baselines/reference/discriminatedUnionTypes2.types index f67c4ae4daa10..c3065eed9ed46 100644 --- a/tests/baselines/reference/discriminatedUnionTypes2.types +++ b/tests/baselines/reference/discriminatedUnionTypes2.types @@ -176,7 +176,7 @@ function f13(x: { a: null; b: string } | { a: string, c: number }) { function f14(x: { a: 0; b: string } | { a: T, c: number }) { >f14 : (x: { a: 0; b: string; } | { a: T; c: number; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : { a: 0; b: string; } | { a: T; c: number; } > : ^^^^^ ^^^^^ ^^^^^^^^^^^ ^^^^^ ^^^ >a : 0 @@ -315,7 +315,7 @@ type DataCarrier = WithError | WithoutError function f20(carrier: DataCarrier) { >f20 : (carrier: DataCarrier) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >carrier : DataCarrier > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/dissallowSymbolAsWeakType.types b/tests/baselines/reference/dissallowSymbolAsWeakType.types index a59a4c871eda4..96f10d6ca102d 100644 --- a/tests/baselines/reference/dissallowSymbolAsWeakType.types +++ b/tests/baselines/reference/dissallowSymbolAsWeakType.types @@ -27,11 +27,11 @@ ws.add(s); >ws.add(s) : WeakSet > : ^^^^^^^^^^^^^^^ >ws.add : (value: object) => WeakSet -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >ws : WeakSet > : ^^^^^^^^^^^^^^^ >add : (value: object) => WeakSet -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >s : symbol > : ^^^^^^ @@ -79,11 +79,11 @@ wm.set(s, true); >wm.set(s, true) : WeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^ >wm.set : (key: object, value: boolean) => WeakMap -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^ >wm : WeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^ >set : (key: object, value: boolean) => WeakMap -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^ >s : symbol > : ^^^^^^ >true : true @@ -105,11 +105,11 @@ wm.get(s); >wm.get(s) : boolean > : ^^^^^^^ >wm.get : (key: object) => boolean | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >wm : WeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^ >get : (key: object) => boolean | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >s : symbol > : ^^^^^^ @@ -139,11 +139,11 @@ wr.deref(); >wr.deref() : object > : ^^^^^^ >wr.deref : () => object | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ >wr : WeakRef > : ^^^^^^^^^^^^^^^ >deref : () => object | undefined -> : ^^^^^^^^^^^^ +> : ^^^^^^ const f = new FinalizationRegistry(() => {}); >f : FinalizationRegistry diff --git a/tests/baselines/reference/distributiveConditionalTypeConstraints.types b/tests/baselines/reference/distributiveConditionalTypeConstraints.types index 14d899a981171..5c0a2bca14c7b 100644 --- a/tests/baselines/reference/distributiveConditionalTypeConstraints.types +++ b/tests/baselines/reference/distributiveConditionalTypeConstraints.types @@ -11,7 +11,7 @@ type IsArray = T extends unknown[] ? true : false; function f1(x: IsArray) { >f1 : (x: IsArray) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : IsArray > : ^^^^^^^^^^ @@ -34,7 +34,7 @@ function f1(x: IsArray) { function f2(x: IsArray) { >f2 : (x: IsArray) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : IsArray > : ^^^^^^^^^^ @@ -57,7 +57,7 @@ function f2(x: IsArray) { function f3(x: IsArray) { >f3 : (x: IsArray) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : IsArray > : ^^^^^^^^^^ @@ -80,7 +80,7 @@ function f3(x: IsArray) { function f4(x: IsArray) { >f4 : (x: IsArray) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : IsArray > : ^^^^^^^^^^ @@ -117,7 +117,7 @@ type ZeroOf = function f10(x: ZeroOf) { >f10 : (x: ZeroOf) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : ZeroOf > : ^^^^^^^^^ @@ -140,7 +140,7 @@ type Foo = T extends "abc" | 42 ? true : false; function f20(x: Foo) { >f20 : (x: Foo) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : Foo > : ^^^^^^ @@ -171,7 +171,7 @@ interface C { foo(): void, bar(): void } function test1(y: T extends B ? number : string) { >test1 : (y: T extends B ? number : string) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : T extends B ? number : string > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -207,7 +207,7 @@ function test1(y: T extends B ? number : string) { function test2(y: T extends B ? string : number) { >test2 : (y: T extends B ? string : number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : T extends B ? string : number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -243,7 +243,7 @@ function test2(y: T extends B ? string : number) { function test3(y: T extends C ? number : string) { >test3 : (y: T extends C ? number : string) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : T extends C ? number : string > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -279,7 +279,7 @@ function test3(y: T extends C ? number : string) { function test4(y: T extends C ? string : number) { >test4 : (y: T extends C ? string : number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : T extends C ? string : number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/divideAndConquerIntersections.types b/tests/baselines/reference/divideAndConquerIntersections.types index 880c5d4a95d5a..57fb2d8789031 100644 --- a/tests/baselines/reference/divideAndConquerIntersections.types +++ b/tests/baselines/reference/divideAndConquerIntersections.types @@ -154,7 +154,7 @@ type FilterFunction = (up: U) => up is V; export function matchFilter( >matchFilter : (filter: Q | Q[]) => FilterFunction> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ filter: Q | Q[], >filter : Q | Q[] @@ -281,7 +281,7 @@ class EventHub { } on( >on : (filter: Q | Q[], ...middleware: Array>>) => EventHub> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ filter: Q | Q[], >filter : Q | Q[] diff --git a/tests/baselines/reference/doNotElaborateAssignabilityToTypeParameters.types b/tests/baselines/reference/doNotElaborateAssignabilityToTypeParameters.types index 3b3ba3f798ac6..462fe10cf3cab 100644 --- a/tests/baselines/reference/doNotElaborateAssignabilityToTypeParameters.types +++ b/tests/baselines/reference/doNotElaborateAssignabilityToTypeParameters.types @@ -3,7 +3,7 @@ === doNotElaborateAssignabilityToTypeParameters.ts === async function foo(x: T): Promise { >foo : (x: T) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -15,7 +15,7 @@ async function foo(x: T): Promise { >getXOrYadda(x) : T | Yadda > : ^^^^^^^^^ >getXOrYadda : (x: T_1) => T_1 | Yadda -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -36,7 +36,7 @@ interface Yadda { declare function getXOrYadda(x: T): T | Yadda; >getXOrYadda : (x: T) => T | Yadda -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/doNotInferUnrelatedTypes.types b/tests/baselines/reference/doNotInferUnrelatedTypes.types index c11d87bd570ec..6bda3be997182 100644 --- a/tests/baselines/reference/doNotInferUnrelatedTypes.types +++ b/tests/baselines/reference/doNotInferUnrelatedTypes.types @@ -4,7 +4,7 @@ // #16709 declare function dearray(ara: ReadonlyArray): T; >dearray : (ara: ReadonlyArray) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ara : readonly T[] > : ^^^^^^^^^^^^ @@ -22,7 +22,7 @@ let foo: LiteralType = dearray(alt); >dearray(alt) : LiteralType > : ^^^^^^^^^^^ >dearray : (ara: ReadonlyArray) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >alt : LiteralType[] > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/doubleMixinConditionalTypeBaseClassWorks.types b/tests/baselines/reference/doubleMixinConditionalTypeBaseClassWorks.types index 07ad05ab44684..b0b299cdde51a 100644 --- a/tests/baselines/reference/doubleMixinConditionalTypeBaseClassWorks.types +++ b/tests/baselines/reference/doubleMixinConditionalTypeBaseClassWorks.types @@ -9,9 +9,9 @@ type Constructor = new (...args: any[]) => {}; const Mixin1 = (Base: C) => class extends Base { private _fooPrivate: {}; } >Mixin1 : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin1.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(Base: C) => class extends Base { private _fooPrivate: {}; } : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin1.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : C > : ^ >class extends Base { private _fooPrivate: {}; } : { new (...args: any[]): (Anonymous class); prototype: Mixin1.(Anonymous class); } & C @@ -25,15 +25,15 @@ type FooConstructor = typeof Mixin1 extends (a: Constructor) => infer Cls ? Cls >FooConstructor : { new (...args: any[]): Mixin1.(Anonymous class); prototype: Mixin1.(Anonymous class); } & Constructor > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mixin1 : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin1.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : Constructor > : ^^^^^^^^^^^ const Mixin2 = (Base: C) => class extends Base {}; >Mixin2 : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(Base: C) => class extends Base {} : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : C > : ^ >class extends Base {} : { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C @@ -47,11 +47,11 @@ class C extends Mixin2(Mixin1(Object)) {} >Mixin2(Mixin1(Object)) : Mixin2<{ new (...args: any[]): Mixin1.(Anonymous class); prototype: Mixin1.(Anonymous class); } & ObjectConstructor>.(Anonymous class) & Mixin1.(Anonymous class) & Object > : ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mixin2 : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mixin1(Object) : { new (...args: any[]): Mixin1.(Anonymous class); prototype: Mixin1.(Anonymous class); } & ObjectConstructor > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mixin1 : (Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin1.(Anonymous class); } & C -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types b/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types index 15fa0b9ba015f..5cd3ad9362294 100644 --- a/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types +++ b/tests/baselines/reference/duplicateOverloadInTypeAugmentation1.types @@ -4,7 +4,7 @@ interface Array { reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, >reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : T @@ -22,7 +22,7 @@ interface Array { reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, >reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; (callbackfn: (previousValue: U_1, currentValue: T, currentIndex: number, array: T[]) => U_1, initialValue: U_1): U_1; (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : U @@ -48,11 +48,11 @@ var r5 = a.reduce((x, y) => x + y); >a.reduce((x, y) => x + y) : string > : ^^^^^^ >a.reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >a : string[] > : ^^^^^^^^ >reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue?: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(x, y) => x + y : (x: string, y: string) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : string diff --git a/tests/baselines/reference/emitClassExpressionInDeclarationFile.types b/tests/baselines/reference/emitClassExpressionInDeclarationFile.types index 43d9ffd104b4e..c32146f0a753b 100644 --- a/tests/baselines/reference/emitClassExpressionInDeclarationFile.types +++ b/tests/baselines/reference/emitClassExpressionInDeclarationFile.types @@ -62,7 +62,7 @@ export type Constructor = new(...args: any[]) => T; export function WithTags>(Base: T) { >WithTags : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags.(Anonymous class); getTags(): void; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >Base : T > : ^ @@ -88,7 +88,7 @@ export class Test extends WithTags(FooItem) {} >WithTags(FooItem) : WithTags.(Anonymous class) & FooItem > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >WithTags : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags.(Anonymous class); getTags(): void; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >FooItem : typeof FooItem > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/emitClassExpressionInDeclarationFile2.types b/tests/baselines/reference/emitClassExpressionInDeclarationFile2.types index b0365b56e6053..201cfcd10712a 100644 --- a/tests/baselines/reference/emitClassExpressionInDeclarationFile2.types +++ b/tests/baselines/reference/emitClassExpressionInDeclarationFile2.types @@ -58,7 +58,7 @@ export type Constructor = new(...args: any[]) => T; export function WithTags>(Base: T) { >WithTags : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags.(Anonymous class); getTags(): void; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >Base : T > : ^ @@ -84,7 +84,7 @@ export class Test extends WithTags(FooItem) {} >WithTags(FooItem) : WithTags.(Anonymous class) & FooItem > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >WithTags : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithTags.(Anonymous class); getTags(): void; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >FooItem : typeof FooItem > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/emitSkipsThisWithRestParameter.types b/tests/baselines/reference/emitSkipsThisWithRestParameter.types index 828c1175c3aac..69fccf234a42b 100644 --- a/tests/baselines/reference/emitSkipsThisWithRestParameter.types +++ b/tests/baselines/reference/emitSkipsThisWithRestParameter.types @@ -31,12 +31,12 @@ function rebase(fn: (base: any, ...args: any[]) => any): (...args: any[]) => any >[ this ].concat(args) : any[] > : ^^^^^ >[ this ].concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >[ this ] : any[] > : ^^^^^ >this : any >concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >args : any[] > : ^^^^^ diff --git a/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types index b315aa5d68328..b33af6e2ec61f 100644 --- a/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types +++ b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types @@ -49,7 +49,7 @@ else { function f1(x: T) { >f1 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -74,7 +74,7 @@ function f1(x: T) { function f2(x: T) { >f2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=true).types b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=true).types index bf9516fda16a6..9c1959c5623c3 100644 --- a/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=true).types +++ b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=true).types @@ -49,7 +49,7 @@ else { function f1(x: T) { >f1 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -74,7 +74,7 @@ function f1(x: T) { function f2(x: T) { >f2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types index 7a874e39a9a53..65928c34ec4a2 100644 --- a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types +++ b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject1.types @@ -40,7 +40,7 @@ type DictionaryIterator = ObjectIterator, TResult>; // In lodash.d.ts this function has many overloads, but this seems to be the problematic one. function mapValues( >mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ obj: Dictionary | NumericDictionary | null | undefined, >obj : Dictionary | NumericDictionary @@ -92,7 +92,7 @@ export function fooToBar( >mapValues(foos, f => f.foo) : Dictionary > : ^^^^^^^^^^^^^^^^^^ >mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >foos : Record > : ^^^^^^^^^^^^^^^^^^^ >f => f.foo : (f: Foo) => string diff --git a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types index 94bef94cfdaa7..772d1d6878680 100644 --- a/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types +++ b/tests/baselines/reference/emptyObjectNotSubtypeOfIndexSignatureContainingObject2.types @@ -40,7 +40,7 @@ type DictionaryIterator = ObjectIterator, TResult>; // In lodash.d.ts this function has many overloads, but this seems to be the problematic one. function mapValues( >mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ obj: Dictionary | NumericDictionary | null | undefined, >obj : Dictionary | NumericDictionary @@ -84,7 +84,7 @@ export function fooToBar( >mapValues(foos, f => f.foo) : Dictionary > : ^^^^^^^^^^^^^^^^^^ >mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >foos : Record > : ^^^^^^^^^^^^^^^^^^^ >f => f.foo : (f: Foo) => string @@ -112,7 +112,7 @@ export function fooToBar( >mapValues(foos, f => f.foo) : Dictionary > : ^^^^^^^^^^^^^^^^^^ >mapValues : (obj: Dictionary | NumericDictionary | null | undefined, callback: DictionaryIterator) => Dictionary -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >foos : Record > : ^^^^^^^^^^^^^^^^^^^ >f => f.foo : (f: Foo) => string diff --git a/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types b/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types index 4a592fdb69be8..3d5eb27503f3c 100644 --- a/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types +++ b/tests/baselines/reference/ensureNoCrashExportAssignmentDefineProperrtyPotentialMerge.types @@ -27,11 +27,11 @@ Object.defineProperty(module, "exports", { value: "oh no" }); >Object.defineProperty(module, "exports", { value: "oh no" }) : typeof module > : ^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module : typeof module > : ^^^^^^^^^^^^^ >"exports" : "exports" @@ -103,11 +103,11 @@ Object.defineProperty(B, "NS", { value: "why though", writable: true }); >Object.defineProperty(B, "NS", { value: "why though", writable: true }) : typeof B > : ^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >B : typeof B > : ^^^^^^^^ >"NS" : "NS" diff --git a/tests/baselines/reference/enumAssignability.types b/tests/baselines/reference/enumAssignability.types index be60c26c1bf13..840b0454a7806 100644 --- a/tests/baselines/reference/enumAssignability.types +++ b/tests/baselines/reference/enumAssignability.types @@ -212,7 +212,7 @@ module Others { var o: (x: T) => T = e; >o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >e : E @@ -232,7 +232,7 @@ module Others { function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/enumAssignabilityInInheritance.types b/tests/baselines/reference/enumAssignabilityInInheritance.types index d8fb673be94ea..3dc96af24d57f 100644 --- a/tests/baselines/reference/enumAssignabilityInInheritance.types +++ b/tests/baselines/reference/enumAssignabilityInInheritance.types @@ -361,7 +361,7 @@ declare function foo12(x: (x: T) => T): (x: T) => T; >foo12 : { (x: (x: T) => T): (x: T) => T; (x: E): E; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/enumLiteralUnionNotWidened.types b/tests/baselines/reference/enumLiteralUnionNotWidened.types index 42ec3388d72ff..3a6d128a2ff32 100644 --- a/tests/baselines/reference/enumLiteralUnionNotWidened.types +++ b/tests/baselines/reference/enumLiteralUnionNotWidened.types @@ -49,7 +49,7 @@ class List function asList(arg: T): List { return new List(); } >asList : (arg: T) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >new List() : List @@ -67,7 +67,7 @@ function fn1(x: C): List { return asList(x); } >asList(x) : List > : ^^^^^^^ >asList : (arg: T) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : C > : ^ @@ -80,7 +80,7 @@ function fn2(x: D): List { return asList(x); } >asList(x) : List > : ^^^^^^^ >asList : (arg: T) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : D > : ^ diff --git a/tests/baselines/reference/enumPropertyAccess.types b/tests/baselines/reference/enumPropertyAccess.types index 63ba03f0a5654..da9f71f845848 100644 --- a/tests/baselines/reference/enumPropertyAccess.types +++ b/tests/baselines/reference/enumPropertyAccess.types @@ -47,7 +47,7 @@ x.toFixed(); // ok // Now with generics function fill(f: B) { >fill : (f: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >f : B > : ^ diff --git a/tests/baselines/reference/errorElaborationDivesIntoApparentlyPresentPropsOnly.types b/tests/baselines/reference/errorElaborationDivesIntoApparentlyPresentPropsOnly.types index e7c3ee6216c3c..490356f6733a2 100644 --- a/tests/baselines/reference/errorElaborationDivesIntoApparentlyPresentPropsOnly.types +++ b/tests/baselines/reference/errorElaborationDivesIntoApparentlyPresentPropsOnly.types @@ -3,7 +3,7 @@ === errorElaborationDivesIntoApparentlyPresentPropsOnly.ts === function foo(x: T) { >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >x : T @@ -32,7 +32,7 @@ function foo(x: T) { function bar(x: T) { >bar : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >x : T @@ -53,7 +53,7 @@ function bar(x: T) { function baz(x: T) { >baz : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >x : T diff --git a/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types b/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types index 105c57352b2de..89a514aa5126d 100644 --- a/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types +++ b/tests/baselines/reference/errorForUsingPropertyOfTypeAsType02.types @@ -7,7 +7,7 @@ namespace Test1 { function foo(x: T) { >foo : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >abc : number > : ^^^^^^ >x : T diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes01.types b/tests/baselines/reference/errorMessagesIntersectionTypes01.types index bbbc17ff275df..e96bf719c33e7 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes01.types +++ b/tests/baselines/reference/errorMessagesIntersectionTypes01.types @@ -18,7 +18,7 @@ interface FooBar extends Foo, Bar { declare function mixBar(obj: T): T & Bar; >mixBar : (obj: T) => T & Bar -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -28,7 +28,7 @@ let fooBar: FooBar = mixBar({ >mixBar({ fooProp: "frizzlebizzle"}) : { fooProp: string; } & Bar > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixBar : (obj: T) => T & Bar -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ fooProp: "frizzlebizzle"} : { fooProp: string; } > : ^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes02.types b/tests/baselines/reference/errorMessagesIntersectionTypes02.types index 9cd93c4b8af81..0e57d534209a2 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes02.types +++ b/tests/baselines/reference/errorMessagesIntersectionTypes02.types @@ -18,7 +18,7 @@ interface FooBar extends Foo, Bar { declare function mixBar(obj: T): T & Bar; >mixBar : (obj: T) => T & Bar -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -28,7 +28,7 @@ let fooBar: FooBar = mixBar({ >mixBar({ fooProp: "frizzlebizzle"}) : { fooProp: "frizzlebizzle"; } & Bar > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixBar : (obj: T) => T & Bar -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ fooProp: "frizzlebizzle"} : { fooProp: "frizzlebizzle"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes03.types b/tests/baselines/reference/errorMessagesIntersectionTypes03.types index d0081e803c523..c09d755a13f15 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes03.types +++ b/tests/baselines/reference/errorMessagesIntersectionTypes03.types @@ -15,7 +15,7 @@ interface B { function f(): void { >f : () => void -> : ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ let t: T; >t : T diff --git a/tests/baselines/reference/errorMessagesIntersectionTypes04.types b/tests/baselines/reference/errorMessagesIntersectionTypes04.types index 942d6e6e52fdc..e73605969e353 100644 --- a/tests/baselines/reference/errorMessagesIntersectionTypes04.types +++ b/tests/baselines/reference/errorMessagesIntersectionTypes04.types @@ -15,7 +15,7 @@ interface B { function f(): void { >f : () => void -> : ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ let num: number; >num : number diff --git a/tests/baselines/reference/errorsForCallAndAssignmentAreSimilar.types b/tests/baselines/reference/errorsForCallAndAssignmentAreSimilar.types index b241f0b6b241a..2b67e84d19f05 100644 --- a/tests/baselines/reference/errorsForCallAndAssignmentAreSimilar.types +++ b/tests/baselines/reference/errorsForCallAndAssignmentAreSimilar.types @@ -19,7 +19,7 @@ function minimalExample1() { function foo(x: Disc[]) { >foo : (x: ({ kind: "hddvd"; } | { kind: "bluray"; })[]) => void -> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ >x : ({ kind: "hddvd"; } | { kind: "bluray"; })[] > : ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^ } @@ -28,7 +28,7 @@ function minimalExample1() { >foo([ { kind: "bluray", }, { kind: "hdpvd", } ]) : void > : ^^^^ >foo : (x: ({ kind: "hddvd"; } | { kind: "bluray"; })[]) => void -> : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ >[ { kind: "bluray", }, { kind: "hdpvd", } ] : ({ kind: "bluray"; } | { kind: "hdpvd"; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/es2018ObjectAssign.types b/tests/baselines/reference/es2018ObjectAssign.types index 3ae8df0b5c585..eae3d82f857d4 100644 --- a/tests/baselines/reference/es2018ObjectAssign.types +++ b/tests/baselines/reference/es2018ObjectAssign.types @@ -7,11 +7,11 @@ const test = Object.assign({}, { test: true }); >Object.assign({}, { test: true }) : { test: boolean; } > : ^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >{ test: true } : { test: true; } @@ -29,9 +29,9 @@ p.finally(); >p.finally() : Promise > : ^^^^^^^^^^^^^^^ >p.finally : (onfinally?: () => void) => Promise -> : ^ ^^^^^^^^^ ^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^ >finally : (onfinally?: () => void) => Promise -> : ^ ^^^^^^^^^ ^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^ diff --git a/tests/baselines/reference/es5-asyncFunctionLongObjectLiteral.types b/tests/baselines/reference/es5-asyncFunctionLongObjectLiteral.types index f748106248d0e..ce1e82ae53079 100644 --- a/tests/baselines/reference/es5-asyncFunctionLongObjectLiteral.types +++ b/tests/baselines/reference/es5-asyncFunctionLongObjectLiteral.types @@ -21,11 +21,11 @@ const fooShort = async () => { >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ @@ -37,11 +37,11 @@ const fooShort = async () => { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -53,11 +53,11 @@ const fooShort = async () => { >Promise.resolve(2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ @@ -69,11 +69,11 @@ const fooShort = async () => { >Promise.resolve(3) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >3 : 3 > : ^ @@ -85,11 +85,11 @@ const fooShort = async () => { >Promise.resolve(4) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >4 : 4 > : ^ @@ -114,11 +114,11 @@ const fooLong = async () => { >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ @@ -130,11 +130,11 @@ const fooLong = async () => { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -146,11 +146,11 @@ const fooLong = async () => { >Promise.resolve(2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ @@ -162,11 +162,11 @@ const fooLong = async () => { >Promise.resolve(3) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >3 : 3 > : ^ @@ -178,11 +178,11 @@ const fooLong = async () => { >Promise.resolve(4) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >4 : 4 > : ^ @@ -194,11 +194,11 @@ const fooLong = async () => { >Promise.resolve(5) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >5 : 5 > : ^ @@ -210,11 +210,11 @@ const fooLong = async () => { >Promise.resolve(6) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >6 : 6 > : ^ @@ -226,11 +226,11 @@ const fooLong = async () => { >Promise.resolve(7) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >7 : 7 > : ^ @@ -242,11 +242,11 @@ const fooLong = async () => { >Promise.resolve(8) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >8 : 8 > : ^ @@ -258,11 +258,11 @@ const fooLong = async () => { >Promise.resolve(9) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >9 : 9 > : ^ diff --git a/tests/baselines/reference/esDecorators-contextualTypes.2.types b/tests/baselines/reference/esDecorators-contextualTypes.2.types index 6edb24a32891d..53487b0f5b180 100644 --- a/tests/baselines/reference/esDecorators-contextualTypes.2.types +++ b/tests/baselines/reference/esDecorators-contextualTypes.2.types @@ -7,9 +7,9 @@ class C { @boundMethodLogger("Yadda", /*bound*/ true) >boundMethodLogger("Yadda", /*bound*/ true) : (target: (this: C) => void, context: ClassMethodDecoratorContext void>) => ((this: C, ...args: []) => void) -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ +> : ^ ^^^ ^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^ ^ >boundMethodLogger : (source: string, bound?: boolean) => (target: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext Return>) => ((this: This, ...args: Args) => Return) -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >"Yadda" : "Yadda" > : ^^^^^^^ >true : true @@ -53,7 +53,7 @@ export { C }; function boundMethodLogger(source: string, bound = true) { >boundMethodLogger : (source: string, bound?: boolean) => (target: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext Return>) => ((this: This, ...args: Args) => Return) -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >source : string > : ^^^^^^ >bound : boolean diff --git a/tests/baselines/reference/esDecorators-preservesThis.types b/tests/baselines/reference/esDecorators-preservesThis.types index 25ffe8eb53e2b..f7749ee9a6a8a 100644 --- a/tests/baselines/reference/esDecorators-preservesThis.types +++ b/tests/baselines/reference/esDecorators-preservesThis.types @@ -9,7 +9,7 @@ declare class DecoratorProvider { decorate(this: DecoratorProvider, v: T, ctx: DecoratorContext): T; >decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >this : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >v : T @@ -29,11 +29,11 @@ class C { @instance.decorate >instance.decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >instance : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ method1() { } >method1 : () => void @@ -41,9 +41,9 @@ class C { @(instance["decorate"]) >(instance["decorate"]) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >instance["decorate"] : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >instance : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >"decorate" : "decorate" @@ -56,15 +56,15 @@ class C { // even in parens @((instance.decorate)) >((instance.decorate)) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >(instance.decorate) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >instance.decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >instance : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ method3() { } >method3 : () => void @@ -88,13 +88,13 @@ class D extends DecoratorProvider { @(super.decorate) >(super.decorate) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >super.decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >super : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ method1() { } >method1 : () => void @@ -102,9 +102,9 @@ class D extends DecoratorProvider { @(super["decorate"]) >(super["decorate"]) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >super["decorate"] : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >super : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >"decorate" : "decorate" @@ -116,15 +116,15 @@ class D extends DecoratorProvider { @((super.decorate)) >((super.decorate)) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >(super.decorate) : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >super.decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >super : DecoratorProvider > : ^^^^^^^^^^^^^^^^^ >decorate : (this: DecoratorProvider, v: T, ctx: DecoratorContext) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ method3() { } >method3 : () => void diff --git a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types index 2d847c5dc6a3b..4b005cbd77f3b 100644 --- a/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types +++ b/tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types @@ -129,13 +129,13 @@ export class IterableWeakMap implements WeakMap { >this.#weakMap.get(key) : { readonly ref: WeakRef; value: V; } | undefined > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ >this.#weakMap.get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >this.#weakMap : WeakMap; value: V; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ >this : this > : ^^^^ >get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >key : K > : ^ @@ -174,13 +174,13 @@ export class IterableWeakMap implements WeakMap { >this.#weakMap.set(key, { ref, value }) : WeakMap; value: V; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ >this.#weakMap.set : (key: K, value: { readonly ref: WeakRef; value: V; }) => WeakMap; value: V; }> -> : ^ ^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ +> : ^ ^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ >this.#weakMap : WeakMap; value: V; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ >this : this > : ^^^^ >set : (key: K, value: { readonly ref: WeakRef; value: V; }) => WeakMap; value: V; }> -> : ^ ^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ +> : ^ ^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ >key : K > : ^ >{ ref, value } : { ref: WeakRef; value: V; } @@ -194,13 +194,13 @@ export class IterableWeakMap implements WeakMap { >this.#refSet.add(ref) : Set> > : ^^^^^^^^^^^^^^^ >this.#refSet.add : (value: WeakRef) => Set> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >this.#refSet : Set> > : ^^^^^^^^^^^^^^^ >this : this > : ^^^^ >add : (value: WeakRef) => Set> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >ref : WeakRef > : ^^^^^^^^^^ @@ -274,13 +274,13 @@ export class IterableWeakMap implements WeakMap { >this.#weakMap.get(key) : { readonly ref: WeakRef; value: V; } | undefined > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ >this.#weakMap.get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >this.#weakMap : WeakMap; value: V; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ >this : this > : ^^^^ >get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >key : K > : ^ >value : V | undefined @@ -299,13 +299,13 @@ export class IterableWeakMap implements WeakMap { >this.#weakMap.get(key) : { readonly ref: WeakRef; value: V; } | undefined > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ >this.#weakMap.get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >this.#weakMap : WeakMap; value: V; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ >this : this > : ^^^^ >get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >key : K > : ^ @@ -425,13 +425,13 @@ export class IterableWeakMap implements WeakMap { >this.#weakMap.get(key) : { readonly ref: WeakRef; value: V; } | undefined > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^ >this.#weakMap.get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >this.#weakMap : WeakMap; value: V; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^ >this : this > : ^^^^ >get : (key: K) => { readonly ref: WeakRef; value: V; } | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >key : K > : ^ @@ -486,11 +486,11 @@ Object.defineProperties(IterableWeakMap.prototype, { >Object.defineProperties(IterableWeakMap.prototype, { [Symbol.iterator]: { configurable: true, enumerable: false, writable: true, value: Object.getOwnPropertyDescriptor( IterableWeakMap.prototype, "entries", )!.value, }, [Symbol.toStringTag]: { configurable: true, enumerable: false, writable: false, value: "IterableWeakMap", },}) : IterableWeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperties : (o: T, properties: PropertyDescriptorMap & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperties : (o: T, properties: PropertyDescriptorMap & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >IterableWeakMap.prototype : IterableWeakMap > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >IterableWeakMap : typeof IterableWeakMap diff --git a/tests/baselines/reference/eventEmitterPatternWithRecordOfFunction.types b/tests/baselines/reference/eventEmitterPatternWithRecordOfFunction.types index e976f32268f73..415fdd8cb2171 100644 --- a/tests/baselines/reference/eventEmitterPatternWithRecordOfFunction.types +++ b/tests/baselines/reference/eventEmitterPatternWithRecordOfFunction.types @@ -24,7 +24,7 @@ type EventMap = Record; interface B extends A { emit(event: Event, ...args: Args): boolean; >emit : (event: Event, ...args: Args) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >event : Event > : ^^^^^ >args : Args diff --git a/tests/baselines/reference/everyTypeAssignableToAny.types b/tests/baselines/reference/everyTypeAssignableToAny.types index 3cda00c95ba2d..8b1521ceac11d 100644 --- a/tests/baselines/reference/everyTypeAssignableToAny.types +++ b/tests/baselines/reference/everyTypeAssignableToAny.types @@ -92,7 +92,7 @@ var n: { foo: string }; var o: (x: T) => T; >o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -188,10 +188,10 @@ a = m; a = o; >a = o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any >o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ a = p; >a = p : Number @@ -230,7 +230,7 @@ a = ae; function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/evolvingArrayTypeInAssert.types b/tests/baselines/reference/evolvingArrayTypeInAssert.types index de20f43de6cfb..bc8014efdb75b 100644 --- a/tests/baselines/reference/evolvingArrayTypeInAssert.types +++ b/tests/baselines/reference/evolvingArrayTypeInAssert.types @@ -3,7 +3,7 @@ === evolvingArrayTypeInAssert.ts === export function unsafeCast(_value: unknown): asserts _value is T { } >unsafeCast : (_value: unknown) => asserts _value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_value : unknown > : ^^^^^^^ @@ -33,7 +33,7 @@ function yadda() { >unsafeCast(out) : void > : ^^^^ >unsafeCast : (_value: unknown) => asserts _value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >out : number[] > : ^^^^^^^^ diff --git a/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types b/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types index b4f6939427e18..130e512897b08 100644 --- a/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types +++ b/tests/baselines/reference/excessPropertyCheckWithEmptyObject.types @@ -8,11 +8,11 @@ Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false }); >Object.defineProperty(window, "prop", { value: "v1.0.0", readonly: false }) : Window & typeof globalThis > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >window : Window & typeof globalThis > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >"prop" : "prop" diff --git a/tests/baselines/reference/excessPropertyCheckingIntersectionWithConditional.types b/tests/baselines/reference/excessPropertyCheckingIntersectionWithConditional.types index a1e7852421c5d..d17ab5522586c 100644 --- a/tests/baselines/reference/excessPropertyCheckingIntersectionWithConditional.types +++ b/tests/baselines/reference/excessPropertyCheckingIntersectionWithConditional.types @@ -9,9 +9,9 @@ type Foo = K extends unknown ? { a: number } : unknown const createDefaultExample = (x: K): Foo & { x: K; } => { >createDefaultExample : (x: K) => Foo & { x: K; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: K): Foo & { x: K; } => { return { a: 1, x: x }; // okay in TS 4.7.4, error in TS 4.8.2} : (x: K) => Foo & { x: K; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : K > : ^ >x : K diff --git a/tests/baselines/reference/exponentiationOperatorWithTypeParameter.types b/tests/baselines/reference/exponentiationOperatorWithTypeParameter.types index 6baf251bbe260..2e99b232fb24f 100644 --- a/tests/baselines/reference/exponentiationOperatorWithTypeParameter.types +++ b/tests/baselines/reference/exponentiationOperatorWithTypeParameter.types @@ -4,7 +4,7 @@ // type parameter type is not valid for arithmetic operand function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/exportAssignTypes.types b/tests/baselines/reference/exportAssignTypes.types index 370e9e70a7c30..8ebec6f25ad1d 100644 --- a/tests/baselines/reference/exportAssignTypes.types +++ b/tests/baselines/reference/exportAssignTypes.types @@ -61,15 +61,15 @@ var v6 = iAny; import iGeneric = require('./expGeneric'); >iGeneric : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var v7: {(p1: x): x} = iGeneric; >v7 : (p1: x) => x -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p1 : x > : ^ >iGeneric : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ === expString.ts === var x = "test"; @@ -149,7 +149,7 @@ export = x; === expGeneric.ts === function x(a: T){ >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : T > : ^ @@ -159,5 +159,5 @@ function x(a: T){ } export = x; >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ diff --git a/tests/baselines/reference/exportClassExtendingIntersection.types b/tests/baselines/reference/exportClassExtendingIntersection.types index bfda7a0dca2d0..ed048e6edb535 100644 --- a/tests/baselines/reference/exportClassExtendingIntersection.types +++ b/tests/baselines/reference/exportClassExtendingIntersection.types @@ -34,7 +34,7 @@ export interface MyMixin { export function MyMixin>>(base: T): T & Constructor { >MyMixin : >>(base: T) => T & Constructor -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >base : T > : ^ @@ -56,7 +56,7 @@ import { MyBaseClass } from './BaseClass'; import { MyMixin } from './MixinClass'; >MyMixin : >>(base: T) => T & import("BaseClass").Constructor -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ export class MyExtendedClass extends MyMixin(MyBaseClass) { >MyExtendedClass : MyExtendedClass @@ -64,7 +64,7 @@ export class MyExtendedClass extends MyMixin(MyBaseClass) { >MyMixin(MyBaseClass) : MyBaseClass & MyMixin > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MyMixin : >>(base: T) => T & import("BaseClass").Constructor -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ >MyBaseClass : typeof MyBaseClass > : ^^^^^^^^^^^^^^^^^^ @@ -79,7 +79,7 @@ import { MyExtendedClass } from './FinalClass'; import { MyMixin } from './MixinClass'; >MyMixin : >>(base: T) => T & import("BaseClass").Constructor -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ const myExtendedClass = new MyExtendedClass('string'); >myExtendedClass : MyExtendedClass @@ -97,7 +97,7 @@ const AnotherMixedClass = MyMixin(MyExtendedClass); >MyMixin(MyExtendedClass) : typeof MyExtendedClass & import("BaseClass").Constructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >MyMixin : >>(base: T) => T & import("BaseClass").Constructor -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ >MyExtendedClass : typeof MyExtendedClass > : ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/exportDefaultAsyncFunction2.types b/tests/baselines/reference/exportDefaultAsyncFunction2.types index 628e633dc0102..dd5baeb04063c 100644 --- a/tests/baselines/reference/exportDefaultAsyncFunction2.types +++ b/tests/baselines/reference/exportDefaultAsyncFunction2.types @@ -34,11 +34,11 @@ export default async(() => await(Promise.resolve(1))); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/exportTypeMergedWithExportStarAsNamespace.types b/tests/baselines/reference/exportTypeMergedWithExportStarAsNamespace.types index 3b360d3b041a7..08530e86dc9d3 100644 --- a/tests/baselines/reference/exportTypeMergedWithExportStarAsNamespace.types +++ b/tests/baselines/reference/exportTypeMergedWithExportStarAsNamespace.types @@ -11,11 +11,11 @@ export const myValue: Something = Something.of("abc") >Something.of("abc") : import("Something").Something > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Something.of : (value: A) => import("Something").Something -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >Something : typeof import("Something") > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >of : (value: A) => import("Something").Something -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >"abc" : "abc" > : ^^^^^ @@ -40,7 +40,7 @@ export type SubType = { value: A } export declare function of(value: A): Something >of : (value: A) => Something -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : A > : ^ diff --git a/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types b/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types index 935afdee8bc0c..9b67ec01c0586 100644 --- a/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types +++ b/tests/baselines/reference/exportedInterfaceInaccessibleInCallbackInModule.types @@ -28,7 +28,7 @@ export declare class TPromise { // removing this method fixes the error squiggle..... public then(success?: (value:V)=>TPromise, error?: (err:any)=>TPromise, progress?:ProgressCallback): TPromise; >then : (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback) => TPromise -> : ^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >success : (value: V) => TPromise > : ^ ^^ ^^^^^ >value : V diff --git a/tests/baselines/reference/expressionTypeNodeShouldError.types b/tests/baselines/reference/expressionTypeNodeShouldError.types index 5fcf527c1cb29..ab0bdce36bcf6 100644 --- a/tests/baselines/reference/expressionTypeNodeShouldError.types +++ b/tests/baselines/reference/expressionTypeNodeShouldError.types @@ -15,7 +15,7 @@ declare const x: "foo".charCodeAt(0); interface String { typeof(x: T): T; >typeof : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -50,11 +50,11 @@ const nodes = document.getElementsByTagName("li"); >document.getElementsByTagName("li") : HTMLCollectionOf > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >document.getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >"li" : "li" > : ^^^^ @@ -80,7 +80,7 @@ type ItemType = "".typeof(nodes.item(0)); interface Number { typeof(x: T): T; >typeof : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -115,11 +115,11 @@ const nodes2 = document.getElementsByTagName("li"); >document.getElementsByTagName("li") : HTMLCollectionOf > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >document.getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >"li" : "li" > : ^^^^ @@ -145,7 +145,7 @@ type ItemType2 = 4..typeof(nodes.item(0)); interface Boolean { typeof(x: T): T; >typeof : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -182,11 +182,11 @@ const nodes3 = document.getElementsByTagName("li"); >document.getElementsByTagName("li") : HTMLCollectionOf > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >document.getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >"li" : "li" > : ^^^^ diff --git a/tests/baselines/reference/expressionWithJSDocTypeArguments.types b/tests/baselines/reference/expressionWithJSDocTypeArguments.types index 6b41c3a51b85d..325628efade44 100644 --- a/tests/baselines/reference/expressionWithJSDocTypeArguments.types +++ b/tests/baselines/reference/expressionWithJSDocTypeArguments.types @@ -5,7 +5,7 @@ function foo(x: T): T { return x } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -21,59 +21,59 @@ class Bar { constructor(public x: T) { } } const WhatFoo = foo; >WhatFoo : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const HuhFoo = foo; >HuhFoo : (x: string | null) => string | null -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >foo : (x: string | null) => string | null -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const NopeFoo = foo; >NopeFoo : (x: string | null) => string | null -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >foo : (x: string | null) => string | null -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const ComeOnFoo = foo; >ComeOnFoo : (x: string | null) => string | null -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >foo : (x: string | null) => string | null -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type TWhatFoo = typeof foo; >TWhatFoo : typeof foo -> : ^^^^^^^ +> : >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type THuhFoo = typeof foo; >THuhFoo : typeof foo -> : ^^^^^^^ +> : ^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type TNopeFoo = typeof foo; >TNopeFoo : typeof foo -> : ^^^^^^^ +> : ^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type TComeOnFoo = typeof foo; >TComeOnFoo : typeof foo<(string | null) | null> -> : ^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^ ^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const WhatBar = Bar; >WhatBar : { new (x: any): Bar; prototype: Bar; } @@ -109,25 +109,25 @@ const ComeOnBar = Bar; type TWhatBar = typeof Bar; >TWhatBar : typeof Bar -> : ^^^^^^^ +> : >Bar : typeof Bar > : ^^^^^^^^^^ type THuhBar = typeof Bar; >THuhBar : typeof Bar -> : ^^^^^^^ +> : ^^^^ >Bar : typeof Bar > : ^^^^^^^^^^ type TNopeBar = typeof Bar; >TNopeBar : typeof Bar -> : ^^^^^^^ +> : ^^^^ >Bar : typeof Bar > : ^^^^^^^^^^ type TComeOnBar = typeof Bar; >TComeOnBar : typeof Bar<(string | null) | null> -> : ^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^ ^^^^ >Bar : typeof Bar > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType2.types b/tests/baselines/reference/extendAndImplementTheSameBaseType2.types index e552629d89b20..2e2c7e3e00dde 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType2.types +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType2.types @@ -61,11 +61,11 @@ var r3: string = d.bar(); >d.bar() : string > : ^^^^^^ >d.bar : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >d : D > : ^ >bar : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ var r4: number = d.bar(); >r4 : number @@ -73,9 +73,9 @@ var r4: number = d.bar(); >d.bar() : string > : ^^^^^^ >d.bar : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >d : D > : ^ >bar : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ diff --git a/tests/baselines/reference/extendBooleanInterface.types b/tests/baselines/reference/extendBooleanInterface.types index b8f5fa1c48e02..b3c50b1e0f86b 100644 --- a/tests/baselines/reference/extendBooleanInterface.types +++ b/tests/baselines/reference/extendBooleanInterface.types @@ -8,7 +8,7 @@ interface Boolean { doOtherStuff(x: T): T; >doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -37,11 +37,11 @@ var b: string = x.doOtherStuff('hm'); >x.doOtherStuff('hm') : "hm" > : ^^^^ >x.doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : true > : ^^^^ >doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'hm' : "hm" > : ^^^^ @@ -63,7 +63,7 @@ var d: string = x['doOtherStuff']('hm'); >x['doOtherStuff']('hm') : "hm" > : ^^^^ >x['doOtherStuff'] : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : true > : ^^^^ >'doOtherStuff' : "doOtherStuff" diff --git a/tests/baselines/reference/extendGenericArray.types b/tests/baselines/reference/extendGenericArray.types index 94bc01a159786..9a8b0c4c43cbd 100644 --- a/tests/baselines/reference/extendGenericArray.types +++ b/tests/baselines/reference/extendGenericArray.types @@ -19,9 +19,9 @@ var x: number = arr.foo(); >arr.foo() : string > : ^^^^^^ >arr.foo : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >arr : string[] > : ^^^^^^^^ >foo : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ diff --git a/tests/baselines/reference/extendNumberInterface.types b/tests/baselines/reference/extendNumberInterface.types index b1c87d9f425b9..9edd1bbefe59b 100644 --- a/tests/baselines/reference/extendNumberInterface.types +++ b/tests/baselines/reference/extendNumberInterface.types @@ -8,7 +8,7 @@ interface Number { doOtherStuff(x:T): T; >doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -37,11 +37,11 @@ var b: string = x.doOtherStuff('hm'); >x.doOtherStuff('hm') : "hm" > : ^^^^ >x.doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : number > : ^^^^^^ >doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'hm' : "hm" > : ^^^^ @@ -63,7 +63,7 @@ var d: string = x['doOtherStuff']('hm'); >x['doOtherStuff']('hm') : "hm" > : ^^^^ >x['doOtherStuff'] : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : number > : ^^^^^^ >'doOtherStuff' : "doOtherStuff" diff --git a/tests/baselines/reference/extendStringInterface.types b/tests/baselines/reference/extendStringInterface.types index 86b84fd97e146..00646117492a4 100644 --- a/tests/baselines/reference/extendStringInterface.types +++ b/tests/baselines/reference/extendStringInterface.types @@ -8,7 +8,7 @@ interface String { doOtherStuff(x:T): T; >doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -37,11 +37,11 @@ var b: string = x.doOtherStuff('hm'); >x.doOtherStuff('hm') : "hm" > : ^^^^ >x.doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string > : ^^^^^^ >doOtherStuff : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'hm' : "hm" > : ^^^^ @@ -63,7 +63,7 @@ var d: string = x['doOtherStuff']('hm'); >x['doOtherStuff']('hm') : "hm" > : ^^^^ >x['doOtherStuff'] : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string > : ^^^^^^ >'doOtherStuff' : "doOtherStuff" diff --git a/tests/baselines/reference/extendedInterfaceGenericType.types b/tests/baselines/reference/extendedInterfaceGenericType.types index 2120e0cbde776..e27af4e20f93e 100644 --- a/tests/baselines/reference/extendedInterfaceGenericType.types +++ b/tests/baselines/reference/extendedInterfaceGenericType.types @@ -35,11 +35,11 @@ betaOfNumber.takesArgOfT(5); >betaOfNumber.takesArgOfT(5) : Alpha > : ^^^^^^^^^^^^^ >betaOfNumber.takesArgOfT : (arg: number) => Alpha -> : ^ ^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^ >betaOfNumber : Beta > : ^^^^^^^^^^^^ >takesArgOfT : (arg: number) => Alpha -> : ^ ^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^ >5 : 5 > : ^ diff --git a/tests/baselines/reference/extractInferenceImprovement.types b/tests/baselines/reference/extractInferenceImprovement.types index 2441dca933850..3c345e7907b1b 100644 --- a/tests/baselines/reference/extractInferenceImprovement.types +++ b/tests/baselines/reference/extractInferenceImprovement.types @@ -4,7 +4,7 @@ // repro mostly from https://github.com/Microsoft/TypeScript/issues/25065 function getProperty2(obj: T, key: Extract): T[K] { >getProperty2 : (obj: T, key: Extract) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >key : Extract @@ -21,7 +21,7 @@ function getProperty2(obj: T, key: Extract): T[ function getProperty3>(obj: T, key: K): T[K] { >getProperty3 : >(obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >key : K @@ -80,7 +80,7 @@ prop = getProperty2(obj, 'first'); >getProperty2(obj, 'first') : string > : ^^^^^^ >getProperty2 : (obj: T, key: Extract) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : StrNum > : ^^^^^^ >'first' : "first" @@ -94,7 +94,7 @@ prop = getProperty3(obj, 'first'); >getProperty3(obj, 'first') : string > : ^^^^^^ >getProperty3 : >(obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : StrNum > : ^^^^^^ >'first' : "first" @@ -109,7 +109,7 @@ prop = getProperty2(obj, s); >getProperty2(obj, s) : string > : ^^^^^^ >getProperty2 : (obj: T, key: Extract) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : StrNum > : ^^^^^^ >s : unique symbol @@ -123,7 +123,7 @@ prop = getProperty3(obj, s); >getProperty3(obj, s) : string | number > : ^^^^^^^^^^^^^^^ >getProperty3 : >(obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : StrNum > : ^^^^^^ >s : unique symbol diff --git a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types index 0cfa1f1a314f1..01d9c3bb63f10 100644 --- a/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types +++ b/tests/baselines/reference/fallbackToBindingPatternForTypeInference.types @@ -3,7 +3,7 @@ === fallbackToBindingPatternForTypeInference.ts === declare function trans(f: (x: T) => string): number; >trans : (f: (x: T) => string) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (x: T) => string > : ^ ^^ ^^^^^ >x : T @@ -13,7 +13,7 @@ trans(({a}) => a); >trans(({a}) => a) : number > : ^^^^^^ >trans : (f: (x: T) => string) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >({a}) => a : ({ a }: { a: any; }) => any > : ^ ^^^^^^^^^^^^^^^^^^^^^ >a : any @@ -24,7 +24,7 @@ trans(([b,c]) => 'foo'); >trans(([b,c]) => 'foo') : number > : ^^^^^^ >trans : (f: (x: T) => string) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >([b,c]) => 'foo' : ([b, c]: [any, any]) => string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >b : any @@ -38,7 +38,7 @@ trans(({d: [e,f]}) => 'foo'); >trans(({d: [e,f]}) => 'foo') : number > : ^^^^^^ >trans : (f: (x: T) => string) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >({d: [e,f]}) => 'foo' : ({ d: [e, f] }: { d: [any, any]; }) => string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >d : any @@ -54,7 +54,7 @@ trans(([{g},{h}]) => 'foo'); >trans(([{g},{h}]) => 'foo') : number > : ^^^^^^ >trans : (f: (x: T) => string) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >([{g},{h}]) => 'foo' : ([{ g }, { h }]: [{ g: any; }, { h: any; }]) => string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >g : any @@ -68,7 +68,7 @@ trans(({a, b = 10}) => a); >trans(({a, b = 10}) => a) : number > : ^^^^^^ >trans : (f: (x: T) => string) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >({a, b = 10}) => a : ({ a, b }: { a: any; b?: number; }) => any > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : any diff --git a/tests/baselines/reference/fatArrowfunctionAsType.types b/tests/baselines/reference/fatArrowfunctionAsType.types index b095f13ff5093..6dbbc2694feac 100644 --- a/tests/baselines/reference/fatArrowfunctionAsType.types +++ b/tests/baselines/reference/fatArrowfunctionAsType.types @@ -3,17 +3,17 @@ === fatArrowfunctionAsType.ts === declare var b: (x: T) => void ; >b : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var c: (x: T) => void = function (x: T) { return 42; } >c : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >function (x: T) { return 42; } : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >42 : 42 @@ -21,9 +21,9 @@ var c: (x: T) => void = function (x: T) { return 42; } b = c; >b = c : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/findLast(target=esnext).types b/tests/baselines/reference/findLast(target=esnext).types index ca1821e75576b..ac783c3bfda80 100644 --- a/tests/baselines/reference/findLast(target=esnext).types +++ b/tests/baselines/reference/findLast(target=esnext).types @@ -7,13 +7,13 @@ const itemNumber: number | undefined = [0].findLast((item) => item === 0); >[0].findLast((item) => item === 0) : 0 > : ^ >[0].findLast : { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >[0] : number[] > : ^^^^^^^^ >0 : 0 > : ^ >findLast : { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -31,13 +31,13 @@ const itemString: string | undefined = ["string"].findLast((item) => item === "s >["string"].findLast((item) => item === "string") : "string" > : ^^^^^^^^ >["string"].findLast : { (predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >["string"] : string[] > : ^^^^^^^^ >"string" : "string" > : ^^^^^^^^ >findLast : { (predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >(item) => item === "string" : (item: string) => item is "string" > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >item : string diff --git a/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.types b/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.types index 06c516ecfb112..b57ee3d71faf1 100644 --- a/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.types +++ b/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.types @@ -3,7 +3,7 @@ === fixTypeParameterInSignatureWithRestParameters.ts === function bar(item1: T, item2: T) { } >bar : (item1: T, item2: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >item1 : T > : ^ >item2 : T @@ -13,7 +13,7 @@ bar(1, ""); // Should be ok >bar(1, "") : void > : ^^^^ >bar : (item1: T, item2: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >"" : "" diff --git a/tests/baselines/reference/fixingTypeParametersRepeatedly1.types b/tests/baselines/reference/fixingTypeParametersRepeatedly1.types index fc89accd73972..247935cfe44de 100644 --- a/tests/baselines/reference/fixingTypeParametersRepeatedly1.types +++ b/tests/baselines/reference/fixingTypeParametersRepeatedly1.types @@ -3,7 +3,7 @@ === fixingTypeParametersRepeatedly1.ts === declare function f(x: T, y: (p: T) => T, z: (p: T) => T): T; >f : (x: T, y: (p: T) => T, z: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : (p: T) => T @@ -19,7 +19,7 @@ f("", x => null, x => x.toLowerCase()); >f("", x => null, x => x.toLowerCase()) : string > : ^^^^^^ >f : (x: T, y: (p: T) => T, z: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >x => null : (x: string) => any @@ -42,7 +42,7 @@ f("", x => null, x => x.toLowerCase()); // First overload of g should type check just like f declare function g(x: T, y: (p: T) => T, z: (p: T) => T): T; >g : { (x: T, y: (p: T) => T, z: (p: T) => T): T; (): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ >x : T > : ^ >y : (p: T) => T @@ -56,12 +56,12 @@ declare function g(x: T, y: (p: T) => T, z: (p: T) => T): T; declare function g(); >g : { (x: T, y: (p: T) => T, z: (p: T) => T): T; (): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ g("", x => null, x => x.toLowerCase()); >g("", x => null, x => x.toLowerCase()) : any >g : { (x: T, y: (p: T) => T, z: (p: T) => T): T; (): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ >"" : "" > : ^^ >x => null : (x: string) => any diff --git a/tests/baselines/reference/fixingTypeParametersRepeatedly2.types b/tests/baselines/reference/fixingTypeParametersRepeatedly2.types index ccd1ef74e84ff..1552b08427b41 100644 --- a/tests/baselines/reference/fixingTypeParametersRepeatedly2.types +++ b/tests/baselines/reference/fixingTypeParametersRepeatedly2.types @@ -18,7 +18,7 @@ var derived: Derived; declare function foo(x: T, func: (p: T) => T): T; >foo : (x: T, func: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >func : (p: T) => T @@ -32,7 +32,7 @@ var result = foo(derived, d => d.toBase()); >foo(derived, d => d.toBase()) : Derived > : ^^^^^^^ >foo : (x: T, func: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >derived : Derived > : ^^^^^^^ >d => d.toBase() : (d: Derived) => Base @@ -52,7 +52,7 @@ var result = foo(derived, d => d.toBase()); // The same error should be observed in both cases. declare function bar(x: T, func: (p: T) => T): T; >bar : { (x: T, func: (p: T) => T): T; (x: T_1, func: (p: T_1) => T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >func : (p: T) => T @@ -62,7 +62,7 @@ declare function bar(x: T, func: (p: T) => T): T; declare function bar(x: T, func: (p: T) => T): T; >bar : { (x: T_1, func: (p: T_1) => T_1): T_1; (x: T, func: (p: T) => T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >func : (p: T) => T @@ -76,7 +76,7 @@ var result = bar(derived, d => d.toBase()); >bar(derived, d => d.toBase()) : Base > : ^^^^ >bar : { (x: T, func: (p: T) => T): T; (x: T, func: (p: T) => T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >derived : Derived > : ^^^^^^^ >d => d.toBase() : (d: Derived) => Base diff --git a/tests/baselines/reference/fixingTypeParametersRepeatedly3.types b/tests/baselines/reference/fixingTypeParametersRepeatedly3.types index ec2c2277a6e65..8891459a1ecdc 100644 --- a/tests/baselines/reference/fixingTypeParametersRepeatedly3.types +++ b/tests/baselines/reference/fixingTypeParametersRepeatedly3.types @@ -17,7 +17,7 @@ var derived: Derived; declare function foo(x: T, func: (p: T) => T): T; >foo : (x: T, func: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >func : (p: T) => T @@ -31,7 +31,7 @@ var result = foo(derived, d => d.toBase()); >foo(derived, d => d.toBase()) : Derived > : ^^^^^^^ >foo : (x: T, func: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >derived : Derived > : ^^^^^^^ >d => d.toBase() : (d: Derived) => Base @@ -51,7 +51,7 @@ var result = foo(derived, d => d.toBase()); // result2 should have the same type as result declare function bar(x: T, func: (p: T) => T): T; >bar : { (x: T, func: (p: T) => T): T; (x: T_1, func: (p: T_1) => T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >func : (p: T) => T @@ -61,7 +61,7 @@ declare function bar(x: T, func: (p: T) => T): T; declare function bar(x: T, func: (p: T) => T): T; >bar : { (x: T_1, func: (p: T_1) => T_1): T_1; (x: T, func: (p: T) => T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >func : (p: T) => T @@ -75,7 +75,7 @@ var result2 = bar(derived, d => d.toBase()); >bar(derived, d => d.toBase()) : Base > : ^^^^ >bar : { (x: T, func: (p: T) => T): T; (x: T, func: (p: T) => T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >derived : Derived > : ^^^^^^^ >d => d.toBase() : (d: Derived) => Base diff --git a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types index aacf7075f7f00..bc8c5cfec7112 100644 --- a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types +++ b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types @@ -91,7 +91,7 @@ const repro_43249 = (value: unknown) => { function f(x: FlatArray, y: FlatArray) { >f : (x: FlatArray, y: FlatArray) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : FlatArray > : ^^^^^^^^^^^^^^^^^^^ >y : FlatArray diff --git a/tests/baselines/reference/for-inStatements.types b/tests/baselines/reference/for-inStatements.types index da400d9d5a23e..4757cfbdb1cd0 100644 --- a/tests/baselines/reference/for-inStatements.types +++ b/tests/baselines/reference/for-inStatements.types @@ -163,9 +163,9 @@ for (var x in ((x: T) => x)) { } >x : string > : ^^^^^^ >((x: T) => x) : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/for-inStatementsInvalid.types b/tests/baselines/reference/for-inStatementsInvalid.types index ea0ed3308dbee..628dc975f0581 100644 --- a/tests/baselines/reference/for-inStatementsInvalid.types +++ b/tests/baselines/reference/for-inStatementsInvalid.types @@ -137,9 +137,9 @@ for (var x in ((x: T) => x)) { } >x : string > : ^^^^^^ >((x: T) => x) : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/for-of12.types b/tests/baselines/reference/for-of12.types index 3fb732d6952e5..47275f5ccf10a 100644 --- a/tests/baselines/reference/for-of12.types +++ b/tests/baselines/reference/for-of12.types @@ -11,7 +11,7 @@ for (v of [0, ""].values()) { } >[0, ""].values() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[0, ""].values : () => IterableIterator -> : ^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^ ^^^^^^ >[0, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >0 : 0 @@ -19,5 +19,5 @@ for (v of [0, ""].values()) { } >"" : "" > : ^^ >values : () => IterableIterator -> : ^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^ ^^^^^^ diff --git a/tests/baselines/reference/for-of13.types b/tests/baselines/reference/for-of13.types index 2f9ea908034d3..f6f28334e9610 100644 --- a/tests/baselines/reference/for-of13.types +++ b/tests/baselines/reference/for-of13.types @@ -11,11 +11,11 @@ for (v of [""].values()) { } >[""].values() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >[""].values : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >[""] : string[] > : ^^^^^^^^ >"" : "" > : ^^ >values : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ diff --git a/tests/baselines/reference/forAwaitForUnion.types b/tests/baselines/reference/forAwaitForUnion.types index b2e965b0e2a0d..d4d89670f18a2 100644 --- a/tests/baselines/reference/forAwaitForUnion.types +++ b/tests/baselines/reference/forAwaitForUnion.types @@ -3,7 +3,7 @@ === forAwaitForUnion.ts === async function f(source: Iterable | AsyncIterable) { >f : (source: Iterable | AsyncIterable) => Promise -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >source : Iterable | AsyncIterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/forOfTransformsExpression.types b/tests/baselines/reference/forOfTransformsExpression.types index d647229fbf080..fb61d66f9cc35 100644 --- a/tests/baselines/reference/forOfTransformsExpression.types +++ b/tests/baselines/reference/forOfTransformsExpression.types @@ -32,11 +32,11 @@ for (var item of items.sort((a, b) => a.name.localeCompare(b.name))) { >items.sort((a, b) => a.name.localeCompare(b.name)) : { name: string; }[] > : ^^^^^^^^^^^^^^^^^^^ >items.sort : (compareFn?: (a: { name: string; }, b: { name: string; }) => number) => { name: string; }[] -> : ^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >items : { name: string; }[] > : ^^^^^^^^^^^^^^^^^^^ >sort : (compareFn?: (a: { name: string; }, b: { name: string; }) => number) => { name: string; }[] -> : ^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >(a, b) => a.name.localeCompare(b.name) : (a: { name: string; }, b: { name: string; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : { name: string; } diff --git a/tests/baselines/reference/freshLiteralInference.types b/tests/baselines/reference/freshLiteralInference.types index 4414f96e12c39..c7048701a03d4 100644 --- a/tests/baselines/reference/freshLiteralInference.types +++ b/tests/baselines/reference/freshLiteralInference.types @@ -3,7 +3,7 @@ === freshLiteralInference.ts === declare function f1(x: T): T; >f1 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -13,7 +13,7 @@ const value = f1("1"); // regular "1" >f1("1") : "1" > : ^^^ >f1 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"1" : "1" > : ^^^ @@ -25,7 +25,7 @@ let x1 = value; // regular "1" declare function f2(x: { value: T }): { value: T }; >f2 : (x: { value: T; }) => { value: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { value: T; } > : ^^^^^^^^^ ^^^ >value : T @@ -39,7 +39,7 @@ const obj2 = f2({ value: "1" }); // { value: regular "1" } >f2({ value: "1" }) : { value: "1"; } > : ^^^^^^^^^^^^^^^ >f2 : (x: { value: T; }) => { value: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ value: "1" } : { value: "1"; } > : ^^^^^^^^^^^^^^^ >value : "1" @@ -59,7 +59,7 @@ let x2 = obj2.value; // regular "1" declare function f3(obj: T): T; >f3 : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : "1" | "2" | "3" > : ^^^^^^^^^^^^^^^ >obj : T @@ -71,7 +71,7 @@ const obj3 = f3({ value: "1" }); // before: { value: fresh "1" } >f3({ value: "1" }) : { value: "1"; } > : ^^^^^^^^^^^^^^^ >f3 : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ value: "1" } : { value: "1"; } > : ^^^^^^^^^^^^^^^ >value : "1" diff --git a/tests/baselines/reference/freshLiteralTypesInIntersections.types b/tests/baselines/reference/freshLiteralTypesInIntersections.types index 8cd65a4b36dde..1a0675715e445 100644 --- a/tests/baselines/reference/freshLiteralTypesInIntersections.types +++ b/tests/baselines/reference/freshLiteralTypesInIntersections.types @@ -5,7 +5,7 @@ declare function func(a: A, b: B[]): (ab: A & B) => void; >func : (a: A, b: B[]) => (ab: A & B) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B[] @@ -19,7 +19,7 @@ const q = func("x" as "x" | "y", ["x"]); >func("x" as "x" | "y", ["x"]) : (ab: "x") => void > : ^ ^^^^^^^^^^ >func : (a: A, b: B[]) => (ab: A & B) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"x" as "x" | "y" : "x" | "y" > : ^^^^^^^^^ >"x" : "x" diff --git a/tests/baselines/reference/functionCall18.types b/tests/baselines/reference/functionCall18.types index 3b2a153d13a32..06661164eae71 100644 --- a/tests/baselines/reference/functionCall18.types +++ b/tests/baselines/reference/functionCall18.types @@ -4,7 +4,7 @@ // Repro from #26835 declare function foo(a: T, b: T); >foo : { (a: T, b: T): any; (a: {}): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : T @@ -12,7 +12,7 @@ declare function foo(a: T, b: T); declare function foo(a: {}); >foo : { (a: T, b: T): any; (a: {}): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >a : {} > : ^^ @@ -20,7 +20,7 @@ foo("hello"); >foo("hello") : any > : ^^^ >foo : { (a: T, b: T): any; (a: {}): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >"hello" : "hello" > : ^^^^^^^ diff --git a/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types b/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types index 2ac93d292c1c8..26a5fd7acdf9e 100644 --- a/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types +++ b/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types @@ -47,7 +47,7 @@ function call0(p: A | B) { function callN(p: T) { >callN : (p: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >p : T > : ^ diff --git a/tests/baselines/reference/functionConstraintSatisfaction.types b/tests/baselines/reference/functionConstraintSatisfaction.types index de2179a9865b8..eaf5339bf4ddd 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction.types +++ b/tests/baselines/reference/functionConstraintSatisfaction.types @@ -5,7 +5,7 @@ function foo(x: T): T { return x; } >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -46,7 +46,7 @@ var r = foo(new Function()); >foo(new Function()) : Function > : ^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >new Function() : Function > : ^^^^^^^^ >Function : FunctionConstructor @@ -58,7 +58,7 @@ var r1 = foo((x) => x); >foo((x) => x) : (x: any) => any > : ^ ^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x) => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -70,7 +70,7 @@ var r2 = foo((x: string[]) => x); >foo((x: string[]) => x) : (x: string[]) => string[] > : ^ ^^ ^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: string[]) => x : (x: string[]) => string[] > : ^ ^^ ^^^^^^^^^^^^^ >x : string[] @@ -84,7 +84,7 @@ var r3 = foo(function (x) { return x }); >foo(function (x) { return x }) : (x: any) => any > : ^ ^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (x) { return x } : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -96,7 +96,7 @@ var r4 = foo(function (x: string[]) { return x }); >foo(function (x: string[]) { return x }) : (x: string[]) => string[] > : ^ ^^ ^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (x: string[]) { return x } : (x: string[]) => string[] > : ^ ^^ ^^^^^^^^^^^^^ >x : string[] @@ -110,7 +110,7 @@ var r5 = foo(i); >foo(i) : I > : ^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >i : I > : ^ @@ -120,7 +120,7 @@ var r6 = foo(C); >foo(C) : typeof C > : ^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ @@ -130,7 +130,7 @@ var r7 = foo(b); >foo(b) : new () => string > : ^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : new () => string > : ^^^^^^^^^^ @@ -140,7 +140,7 @@ var r8 = foo(c); >foo(c) : { (): string; (x: any): string; } > : ^^^^^^ ^^^ ^^^^^^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >c : { (): string; (x: any): string; } > : ^^^^^^ ^^^ ^^^^^^^^ ^^^ @@ -164,19 +164,19 @@ class C2 { var a2: { (x: T): T }; >a2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var b2: { new (x: T): T }; >b2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var c2: { (x: T): T; (x: T, y: T): T }; >c2 : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >x : T @@ -186,13 +186,13 @@ var c2: { (x: T): T; (x: T, y: T): T }; var r9 = foo((x: U) => x); >r9 : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo((x: U) => x) : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U) => x : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -200,13 +200,13 @@ var r9 = foo((x: U) => x); var r10 = foo(function (x: U) { return x; }); >r10 : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo(function (x: U) { return x; }) : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (x: U) { return x; } : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -214,13 +214,13 @@ var r10 = foo(function (x: U) { return x; }); var r11 = foo((x: U) => x); >r11 : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >foo((x: U) => x) : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U) => x : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -228,13 +228,13 @@ var r11 = foo((x: U) => x); var r12 = foo((x: U, y: V) => x); >r12 : (x: U, y: V) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >foo((x: U, y: V) => x) : (x: U, y: V) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U, y: V) => x : (x: U, y: V) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : U > : ^ >y : V @@ -248,7 +248,7 @@ var r13 = foo(i2); >foo(i2) : I2 > : ^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >i2 : I2 > : ^^^^^^^^^^ @@ -258,29 +258,29 @@ var r14 = foo(C2); >foo(C2) : typeof C2 > : ^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >C2 : typeof C2 > : ^^^^^^^^^ var r15 = foo(b2); >r15 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >foo(b2) : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r16 = foo(c2); >r16 : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >foo(c2) : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >c2 : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ interface F2 extends Function { foo: string; } >foo : string @@ -296,13 +296,13 @@ var r17 = foo(f2); >foo(f2) : F2 > : ^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >f2 : F2 > : ^^ function foo2(x: T, y: U) { >foo2 : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -312,7 +312,7 @@ function foo2(x: T, y: U) { >foo(x) : T > : ^ >foo : (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -320,7 +320,7 @@ function foo2(x: T, y: U) { >foo(y) : U > : ^ >foo : (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : U > : ^ } diff --git a/tests/baselines/reference/functionConstraintSatisfaction2.types b/tests/baselines/reference/functionConstraintSatisfaction2.types index dd98441b95c23..e0f25090702cd 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction2.types +++ b/tests/baselines/reference/functionConstraintSatisfaction2.types @@ -5,7 +5,7 @@ function foo(x: T): T { return x; } >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -15,7 +15,7 @@ foo(1); >foo(1) : Function > : ^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -23,7 +23,7 @@ foo(() => { }, 1); >foo(() => { }, 1) : () => void > : ^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >() => { } : () => void > : ^^^^^^^^^^ >1 : 1 @@ -33,7 +33,7 @@ foo(1, () => { }); >foo(1, () => { }) : Function > : ^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >() => { } : () => void @@ -41,7 +41,7 @@ foo(1, () => { }); function foo2 string>(x: T): T { return x; } >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ >x : T @@ -75,7 +75,7 @@ class C2 { var b2: { new (x: T): T }; >b2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -85,7 +85,7 @@ var r = foo2(new Function()); >foo2(new Function()) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >new Function() : Function > : ^^^^^^^^ >Function : FunctionConstructor @@ -97,7 +97,7 @@ var r2 = foo2((x: string[]) => x); >foo2((x: string[]) => x) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: string[]) => x : (x: string[]) => string[] > : ^ ^^ ^^^^^^^^^^^^^ >x : string[] @@ -111,7 +111,7 @@ var r6 = foo2(C); >foo2(C) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ @@ -121,19 +121,19 @@ var r7 = foo2(b); >foo2(b) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : new (x: string) => string > : ^^^^^ ^^ ^^^^^ var r8 = foo2((x: U) => x); // no error expected >r8 : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo2((x: U) => x) : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U) => x : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -145,9 +145,9 @@ var r11 = foo2((x: U, y: V) => x); >foo2((x: U, y: V) => x) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U, y: V) => x : (x: U, y: V) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : U > : ^ >y : V @@ -161,7 +161,7 @@ var r13 = foo2(C2); >foo2(C2) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >C2 : typeof C2 > : ^^^^^^^^^ @@ -171,9 +171,9 @@ var r14 = foo2(b2); >foo2(b2) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ interface F2 extends Function { foo: string; } >foo : string @@ -189,13 +189,13 @@ var r16 = foo2(f2); >foo2(f2) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >f2 : F2 > : ^^ function fff(x: T, y: U) { >fff : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -205,7 +205,7 @@ function fff(x: T, y: U) { >foo2(x) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -213,7 +213,7 @@ function fff(x: T, y: U) { >foo2(y) : (x: string) => string > : ^ ^^ ^^^^^ >foo2 : string>(x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >y : U > : ^ } diff --git a/tests/baselines/reference/functionConstraintSatisfaction3.types b/tests/baselines/reference/functionConstraintSatisfaction3.types index c7b3e425e1a78..3c8f3272dbf72 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction3.types +++ b/tests/baselines/reference/functionConstraintSatisfaction3.types @@ -5,7 +5,7 @@ function foo string>(x: T): T { return x; } >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ >x : T @@ -48,7 +48,7 @@ var r1 = foo((x) => x); >foo((x) => x) : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x) => x : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string @@ -62,7 +62,7 @@ var r2 = foo((x: string) => x); >foo((x: string) => x) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: string) => x : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >x : string @@ -76,7 +76,7 @@ var r3 = foo(function (x) { return x }); >foo(function (x) { return x }) : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (x) { return x } : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string @@ -90,7 +90,7 @@ var r4 = foo(function (x: string) { return x }); >foo(function (x: string) { return x }) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (x: string) { return x } : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >x : string @@ -104,7 +104,7 @@ var r5 = foo(i); >foo(i) : I > : ^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >i : I > : ^ @@ -114,7 +114,7 @@ var r8 = foo(c); >foo(c) : { (): string; (x: any): string; } > : ^^^^^^ ^^^ ^^^^^^^^ ^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >c : { (): string; (x: any): string; } > : ^^^^^^ ^^^ ^^^^^^^^ ^^^ @@ -138,19 +138,19 @@ class C2 { var a2: { (x: T): T }; >a2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var b2: { new (x: T): T }; >b2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var c2: { (x: T): T; (x: T, y: T): T }; >c2 : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >x : T @@ -160,13 +160,13 @@ var c2: { (x: T): T; (x: T, y: T): T }; var r9 = foo(function (x: U) { return x; }); >r9 : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo(function (x: U) { return x; }) : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (x: U) { return x; } : (x: U) => U -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -174,13 +174,13 @@ var r9 = foo(function (x: U) { return x; }); var r10 = foo((x: U) => x); >r10 : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >foo((x: U) => x) : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U) => x : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -192,17 +192,17 @@ var r12 = foo(i2); >foo(i2) : I2 > : ^^^^^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >i2 : I2 > : ^^^^^^^^^^ var r15 = foo(c2); >r15 : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >foo(c2) : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >c2 : { (x: T): T; (x: T, y: T): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/functionExpressionContextualTyping3.types b/tests/baselines/reference/functionExpressionContextualTyping3.types index d5e1d7620f0ca..eb9d6a8689d28 100644 --- a/tests/baselines/reference/functionExpressionContextualTyping3.types +++ b/tests/baselines/reference/functionExpressionContextualTyping3.types @@ -4,7 +4,7 @@ // #31114 declare function f(value: T | number): void; >f : (value: T | number) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : number | T > : ^^^^^^^^^^ @@ -12,7 +12,7 @@ f((a: any) => "") >f((a: any) => "") : void > : ^^^^ >f : (value: T | number) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(a: any) => "" : (a: any) => "" > : ^ ^^ ^^^^^^^ >a : any diff --git a/tests/baselines/reference/functionImplementations.types b/tests/baselines/reference/functionImplementations.types index c07a8e17303ab..f44976d7d9d8c 100644 --- a/tests/baselines/reference/functionImplementations.types +++ b/tests/baselines/reference/functionImplementations.types @@ -198,7 +198,7 @@ var n = function (x: T) { >function (x: T) { return x;} (4) : 4 > : ^ >function (x: T) { return x;} : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -217,7 +217,7 @@ var n = function (x: T) { >function (x: T) { return x;} (4) : 4 > : ^ >function (x: T) { return x;} : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/functionLiteral.types b/tests/baselines/reference/functionLiteral.types index be48f2a854b12..59ec7062e1a1e 100644 --- a/tests/baselines/reference/functionLiteral.types +++ b/tests/baselines/reference/functionLiteral.types @@ -32,11 +32,11 @@ var y: (x: string) => string; var y2: { (x: T): T; } = (x: T) => x >y2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/functionLiteralForOverloads.types b/tests/baselines/reference/functionLiteralForOverloads.types index 343dc25052f17..aa014a703cd30 100644 --- a/tests/baselines/reference/functionLiteralForOverloads.types +++ b/tests/baselines/reference/functionLiteralForOverloads.types @@ -41,7 +41,7 @@ var f2: { var f3: { >f3 : { (x: T): string; (x: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: T): string; >x : T @@ -59,7 +59,7 @@ var f3: { var f4: { >f4 : { (x: string): T; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: string): T; >x : string diff --git a/tests/baselines/reference/functionLiteralForOverloads2.types b/tests/baselines/reference/functionLiteralForOverloads2.types index e566bc11e3e63..9d142559ebed7 100644 --- a/tests/baselines/reference/functionLiteralForOverloads2.types +++ b/tests/baselines/reference/functionLiteralForOverloads2.types @@ -69,7 +69,7 @@ var f2: { var f3: { >f3 : { new (x: string): D; new (x: number): D; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ new(x: string): D; >x : string diff --git a/tests/baselines/reference/functionLiterals.types b/tests/baselines/reference/functionLiterals.types index c8bb7691979ef..fedb189263cbf 100644 --- a/tests/baselines/reference/functionLiterals.types +++ b/tests/baselines/reference/functionLiterals.types @@ -190,23 +190,23 @@ c.func5 = c.func4; // generic versions var b2: { >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ func1(x: T): number; // Method signature >func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ func2: (x: T) => number; // Function type literal >func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ func3: { (x: T): number }; // Object type literal >func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -214,119 +214,119 @@ var b2: { // no errors b2.func1 = b2.func2; >b2.func1 = b2.func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2.func1 = b2.func3; >b2.func1 = b2.func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2.func2 = b2.func1; >b2.func2 = b2.func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2.func2 = b2.func3; >b2.func2 = b2.func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2.func3 = b2.func1; >b2.func3 = b2.func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func1 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ b2.func3 = b2.func2; >b2.func3 = b2.func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func3 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2.func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { func1(x: T): number; func2: (x: T) => number; func3: { (x: T): number; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ >func2 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var c2: { >c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ func4(x: T): number; >func4 : { (x: T): number; (s: T_1): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ func4(s: T): string; >func4 : { (x: T_1): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >s : T > : ^ func5: { >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: T): number; >x : T @@ -342,33 +342,33 @@ var c2: { // no errors c2.func4 = c2.func5; >c2.func4 = c2.func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ >func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ c2.func5 = c2.func4; >c2.func5 = c2.func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4(x: T): number; func4(s: T): string; func5: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ >func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/functionOverloadErrors.types b/tests/baselines/reference/functionOverloadErrors.types index 081e7289cb098..8bee31f7fb843 100644 --- a/tests/baselines/reference/functionOverloadErrors.types +++ b/tests/baselines/reference/functionOverloadErrors.types @@ -123,19 +123,19 @@ function fn8() { } //Function overloads that differ only by type parameter name when used in parameter type annotations function fn9(n: T); >fn9 : { (n: T): any; (n: S): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >n : T > : ^ function fn9(n: S); >fn9 : { (n: T): any; (n: S): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >n : S > : ^ function fn9() { } >fn9 : { (n: T): any; (n: S): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ //Function overloads that differ only by type parameter constraints function fn10(); @@ -326,15 +326,15 @@ function fn14() { //Function overloads where return types are different infinitely recursive type reference function fn15>>(): T; >fn15 : { >>(): T; >(): T_1; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^ ^^^^^ ^^^ function fn15>(): T; >fn15 : { >>(): T_1; >(): T; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^ ^^^ function fn15() { >fn15 : { >>(): T; >(): T; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^ ^^^ return undefined; >undefined : undefined diff --git a/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types b/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types index b28b6c84b3803..f229e5421943f 100644 --- a/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types +++ b/tests/baselines/reference/functionOverloadsRecursiveGenericReturnType.types @@ -21,19 +21,19 @@ class A{ function Choice(args: T[]): A; >Choice : { (args: T[]): A; (...v_args: T_1[]): A; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >args : T[] > : ^^^ function Choice(...v_args: T[]): A; >Choice : { (args: T_1[]): A; (...v_args: T[]): A; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >v_args : T[] > : ^^^ function Choice(...v_args: any[]): A{ >Choice : { (args: T_1[]): A; (...v_args: T_1[]): A; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >v_args : any[] > : ^^^^^ diff --git a/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types b/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types index 960baedc5fe05..1a03a3810cbe2 100644 --- a/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types +++ b/tests/baselines/reference/functionTypeArgumentAssignmentCompat.types @@ -3,7 +3,7 @@ === functionTypeArgumentAssignmentCompat.ts === var f : { >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ (x:T): T; >x : T @@ -12,7 +12,7 @@ var f : { var g : { >g : () => S[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ () : S[]; } = () => []; @@ -23,11 +23,11 @@ var g : { f = g; >f = g : () => S[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : () => S[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ var s = f("str").toUpperCase(); >s : string @@ -39,7 +39,7 @@ var s = f("str").toUpperCase(); >f("str") : "str" > : ^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"str" : "str" > : ^^^^^ >toUpperCase : () => string diff --git a/tests/baselines/reference/functionWithMultipleReturnStatements.types b/tests/baselines/reference/functionWithMultipleReturnStatements.types index df2788141d906..922116ec86c36 100644 --- a/tests/baselines/reference/functionWithMultipleReturnStatements.types +++ b/tests/baselines/reference/functionWithMultipleReturnStatements.types @@ -103,7 +103,7 @@ function f5() { function f6(x: T, y:U) { >f6 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >x : T > : ^ >y : U @@ -126,7 +126,7 @@ function f6(x: T, y:U) { function f8(x: T, y: U) { >f8 : (x: T, y: U) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/functionWithMultipleReturnStatements2.types b/tests/baselines/reference/functionWithMultipleReturnStatements2.types index a6c3495ae7a5d..6bae67ffd88f3 100644 --- a/tests/baselines/reference/functionWithMultipleReturnStatements2.types +++ b/tests/baselines/reference/functionWithMultipleReturnStatements2.types @@ -85,7 +85,7 @@ function f5() { function f6(x: T) { >f6 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/funduleUsedAcrossFileBoundary.types b/tests/baselines/reference/funduleUsedAcrossFileBoundary.types index a60bb4b8be909..b1cc8e081232f 100644 --- a/tests/baselines/reference/funduleUsedAcrossFileBoundary.types +++ b/tests/baselines/reference/funduleUsedAcrossFileBoundary.types @@ -24,7 +24,7 @@ declare module Q { === funduleUsedAcrossFileBoundary_file2.ts === function promiseWithCancellation(promise: Q.Promise) { >promiseWithCancellation : (promise: Q.Promise) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >promise : Q.Promise > : ^^^^^^^^^^^^ >Q : any diff --git a/tests/baselines/reference/generatorImplicitAny.types b/tests/baselines/reference/generatorImplicitAny.types index 1a668f43fa2bc..2782ee9ec7021 100644 --- a/tests/baselines/reference/generatorImplicitAny.types +++ b/tests/baselines/reference/generatorImplicitAny.types @@ -12,7 +12,7 @@ declare function noop(): void; declare function f(value: T): void; >f : (value: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -121,7 +121,7 @@ function* g5() { >f(yield) : void > : ^^^^ >f : (value: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >yield : any > : ^^^ } @@ -134,7 +134,7 @@ function* g6() { >f(yield) : void > : ^^^^ >f : (value: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >yield : any > : ^^^ } diff --git a/tests/baselines/reference/generatorReturnContextualType.types b/tests/baselines/reference/generatorReturnContextualType.types index 392d859ed65b0..082c6d87aa98d 100644 --- a/tests/baselines/reference/generatorReturnContextualType.types +++ b/tests/baselines/reference/generatorReturnContextualType.types @@ -73,11 +73,11 @@ async function* f3(): AsyncGenerator { >Promise.resolve({ x: 'x' }) : Promise<{ x: "x"; }> > : ^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ x: 'x' } : { x: "x"; } > : ^^^^^^^^^^^ >x : "x" @@ -96,11 +96,11 @@ async function* g3(): AsyncIterator { >Promise.resolve({ x: 'x' }) : Promise<{ x: "x"; }> > : ^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ x: 'x' } : { x: "x"; } > : ^^^^^^^^^^^ >x : "x" @@ -129,11 +129,11 @@ async function* f4(): AsyncGenerator { >Promise.resolve(ret) : Promise<{ x: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >ret : { x: string; } > : ^^^^^^^^^^^^^^ } @@ -158,11 +158,11 @@ async function* g4(): AsyncIterator { >Promise.resolve(ret) : Promise<{ x: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >ret : { x: string; } > : ^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/generatorReturnTypeInference.types b/tests/baselines/reference/generatorReturnTypeInference.types index a56a6c9a3df14..a7f00ca41b113 100644 --- a/tests/baselines/reference/generatorReturnTypeInference.types +++ b/tests/baselines/reference/generatorReturnTypeInference.types @@ -208,7 +208,7 @@ function* g203() { // Generator declare function f2(x: T): T; >f2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -222,7 +222,7 @@ function* g204() { // Generator >f2(yield 1) : any > : ^^^ >f2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >yield 1 : any > : ^^^ >1 : 1 @@ -360,7 +360,7 @@ function* g307() { // Generator function* g308(x: T) { // Generator >g308 : (x: T) => Generator -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -379,7 +379,7 @@ function* g308(x: T) { // Generator function* g309(x: T, y: U) { // Generator >g309 : (x: T, y: U) => Generator -> : ^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types b/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types index 81e3e7bac2cb9..391193c2a97e1 100644 --- a/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types +++ b/tests/baselines/reference/generatorReturnTypeInferenceNonStrict.types @@ -210,7 +210,7 @@ function* g203() { // Generator declare function f2(x: T): T; >f2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -224,7 +224,7 @@ function* g204() { // Generator >f2(yield 1) : any > : ^^^ >f2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >yield 1 : any > : ^^^ >1 : 1 @@ -362,7 +362,7 @@ function* g307() { // Generator function* g308(x: T) { // Generator >g308 : (x: T) => Generator -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -381,7 +381,7 @@ function* g308(x: T) { // Generator function* g309(x: T, y: U) { // Generator >g309 : (x: T, y: U) => Generator -> : ^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/generatorTypeCheck45.types b/tests/baselines/reference/generatorTypeCheck45.types index d8577d007c9f7..252ab39c5461d 100644 --- a/tests/baselines/reference/generatorTypeCheck45.types +++ b/tests/baselines/reference/generatorTypeCheck45.types @@ -3,7 +3,7 @@ === generatorTypeCheck45.ts === declare function foo(x: T, fun: () => Iterator<(x: T) => U>, fun2: (y: U) => T): T; >foo : (x: T, fun: () => Iterator<(x: T) => U>, fun2: (y: U) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >fun : () => Iterator<(x: T) => U> @@ -19,7 +19,7 @@ foo("", function* () { yield x => x.length }, p => undefined); // T is fixed, sh >foo("", function* () { yield x => x.length }, p => undefined) : string > : ^^^^^^ >foo : (x: T, fun: () => Iterator<(x: T) => U>, fun2: (y: U) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >function* () { yield x => x.length } : () => Generator<(x: string) => number, void, undefined> diff --git a/tests/baselines/reference/generatorTypeCheck46.types b/tests/baselines/reference/generatorTypeCheck46.types index 681fe2cb930c8..92a81994f462d 100644 --- a/tests/baselines/reference/generatorTypeCheck46.types +++ b/tests/baselines/reference/generatorTypeCheck46.types @@ -3,7 +3,7 @@ === generatorTypeCheck46.ts === declare function foo(x: T, fun: () => Iterable<(x: T) => U>, fun2: (y: U) => T): T; >foo : (x: T, fun: () => Iterable<(x: T) => U>, fun2: (y: U) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >fun : () => Iterable<(x: T) => U> @@ -19,7 +19,7 @@ foo("", function* () { >foo("", function* () { yield* { *[Symbol.iterator]() { yield x => x.length } }}, p => undefined) : string > : ^^^^^^ >foo : (x: T, fun: () => Iterable<(x: T) => U>, fun2: (y: U) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >function* () { yield* { *[Symbol.iterator]() { yield x => x.length } }} : () => Generator<(x: string) => number, void, undefined> diff --git a/tests/baselines/reference/generatorTypeCheck62.types b/tests/baselines/reference/generatorTypeCheck62.types index 5513f11c30875..0831c3fa393b6 100644 --- a/tests/baselines/reference/generatorTypeCheck62.types +++ b/tests/baselines/reference/generatorTypeCheck62.types @@ -9,7 +9,7 @@ export interface StrategicState { export function strategy(stratName: string, gen: (a: T) => IterableIterator): (a: T) => IterableIterator { >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >stratName : string > : ^^^^^^ >gen : (a: T) => IterableIterator @@ -78,7 +78,7 @@ export const Nothing1: Strategy = strategy("Nothing", function*(state: St >strategy("Nothing", function*(state: State) { return state;}) : (a: State) => IterableIterator > : ^ ^^^^^^^^^^^^ ^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function*(state: State) { return state;} : (state: State) => Generator @@ -98,7 +98,7 @@ export const Nothing2: Strategy = strategy("Nothing", function*(state: St >strategy("Nothing", function*(state: State) { yield state;}) : (a: State) => IterableIterator > : ^ ^^^^^^^^^^^^ ^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function*(state: State) { yield state;} : (state: State) => Generator @@ -118,9 +118,9 @@ export const Nothing3: Strategy = strategy("Nothing", function* (state: S >Nothing3 : Strategy > : ^^^^^^^^^^^^^^^ >strategy("Nothing", function* (state: State) { yield ; return state;}) : (a: any) => IterableIterator -> : ^ ^^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function* (state: State) { yield ; return state;} : (state: State) => Generator diff --git a/tests/baselines/reference/generatorTypeCheck63.types b/tests/baselines/reference/generatorTypeCheck63.types index fb2f3c8c49a07..d93991c447bac 100644 --- a/tests/baselines/reference/generatorTypeCheck63.types +++ b/tests/baselines/reference/generatorTypeCheck63.types @@ -9,7 +9,7 @@ export interface StrategicState { export function strategy(stratName: string, gen: (a: T) => IterableIterator): (a: T) => IterableIterator { >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >stratName : string > : ^^^^^^ >gen : (a: T) => IterableIterator @@ -78,7 +78,7 @@ export const Nothing: Strategy = strategy("Nothing", function* (state: St >strategy("Nothing", function* (state: State) { yield 1; return state;}) : (a: State) => IterableIterator > : ^ ^^^^^^^^^^^^ ^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function* (state: State) { yield 1; return state;} : (state: State) => Generator @@ -104,7 +104,7 @@ export const Nothing1: Strategy = strategy("Nothing", function* (state: S >strategy("Nothing", function* (state: State) {}) : (a: State) => IterableIterator > : ^ ^^^^^^^^^^^^ ^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function* (state: State) {} : (state: State) => Generator @@ -120,7 +120,7 @@ export const Nothing2: Strategy = strategy("Nothing", function* (state: S >strategy("Nothing", function* (state: State) { return 1;}) : (a: State) => IterableIterator > : ^ ^^^^^^^^^^^^ ^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function* (state: State) { return 1;} : (state: State) => Generator @@ -140,7 +140,7 @@ export const Nothing3: Strategy = strategy("Nothing", function* (state: S >strategy("Nothing", function* (state: State) { yield state; return 1;}) : (a: State) => IterableIterator > : ^ ^^^^^^^^^^^^ ^^^^^ >strategy : (stratName: string, gen: (a: T) => IterableIterator) => (a: T) => IterableIterator -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"Nothing" : "Nothing" > : ^^^^^^^^^ >function* (state: State) { yield state; return 1;} : (state: State) => Generator diff --git a/tests/baselines/reference/generatorYieldContextualType.types b/tests/baselines/reference/generatorYieldContextualType.types index 70ee0b52e5cf8..376fa6573a798 100644 --- a/tests/baselines/reference/generatorYieldContextualType.types +++ b/tests/baselines/reference/generatorYieldContextualType.types @@ -3,7 +3,7 @@ === generatorYieldContextualType.ts === declare function f1(gen: () => Generator): void; >f1 : (gen: () => Generator) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >gen : () => Generator > : ^^^^^^ @@ -11,7 +11,7 @@ f1<0, 0, 1>(function* () { >f1<0, 0, 1>(function* () { const a = yield 0; return 0;}) : void > : ^^^^ >f1 : (gen: () => Generator) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >function* () { const a = yield 0; return 0;} : () => Generator<0, 0, 1> > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -31,7 +31,7 @@ f1<0, 0, 1>(function* () { declare function f2(gen: () => Generator | AsyncGenerator): void; >f2 : (gen: () => Generator | AsyncGenerator) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >gen : () => Generator | AsyncGenerator > : ^^^^^^ @@ -39,7 +39,7 @@ f2<0, 0, 1>(async function* () { >f2<0, 0, 1>(async function* () { const a = yield 0; return 0;}) : void > : ^^^^ >f2 : (gen: () => Generator | AsyncGenerator) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >async function* () { const a = yield 0; return 0;} : () => AsyncGenerator<0, 0, 1> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -85,7 +85,7 @@ namespace Directive { export function is(value: Directive | T): value is Directive { >is : (value: Directive | T) => value is Directive -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T | Directive > : ^^^^^^^^^^^^^ @@ -259,7 +259,7 @@ type StepState> = T & { function canPickStepContinue( >canPickStepContinue : (_step: T, _state: PartialStepState, _selection: StepItemType | Directive) => _selection is StepItemType -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ _step: T, >_step : T @@ -281,7 +281,7 @@ function canPickStepContinue( function createPickStep( >createPickStep : (step: QuickPickStep) => QuickPickStep -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ step: QuickPickStep >step : QuickPickStep @@ -295,7 +295,7 @@ function createPickStep( function* showStep< >showStep : (state: State, _context: Context) => StepResultGenerator -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ State extends PartialStepState & { repo: any }, >repo : any @@ -319,7 +319,7 @@ function* showStep< >createPickStep({ title: "", placeholder: "", }) : QuickPickStep > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createPickStep : (step: QuickPickStep) => QuickPickStep -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ title: "", placeholder: "", } : { title: string; placeholder: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -351,7 +351,7 @@ function* showStep< >canPickStepContinue(step, state, selection) : boolean > : ^^^^^^^ >canPickStepContinue : (_step: T, _state: PartialStepState, _selection: StepItemType | Directive) => _selection is StepItemType -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >step : QuickPickStep > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >state : State diff --git a/tests/baselines/reference/genericAndNonGenericInheritedSignature1.types b/tests/baselines/reference/genericAndNonGenericInheritedSignature1.types index a5724d76ebd64..caf396419db06 100644 --- a/tests/baselines/reference/genericAndNonGenericInheritedSignature1.types +++ b/tests/baselines/reference/genericAndNonGenericInheritedSignature1.types @@ -11,7 +11,7 @@ interface Foo { interface Bar { f(x: T): T; >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/genericAndNonGenericInheritedSignature2.types b/tests/baselines/reference/genericAndNonGenericInheritedSignature2.types index 2167c9b593669..6332be075abbe 100644 --- a/tests/baselines/reference/genericAndNonGenericInheritedSignature2.types +++ b/tests/baselines/reference/genericAndNonGenericInheritedSignature2.types @@ -11,7 +11,7 @@ interface Foo { interface Bar { f(x: T): T; >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types index 5628d1aacf8d2..07e0fbcc0775e 100644 --- a/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types +++ b/tests/baselines/reference/genericArgumentCallSigAssignmentCompat.types @@ -15,7 +15,7 @@ module Underscore { export interface Static { all(list: T[], iterator?: Iterator, context?: any): boolean; >all : (list: T[], iterator?: Iterator, context?: any) => boolean -> : ^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >list : T[] > : ^^^ >iterator : Iterator @@ -25,7 +25,7 @@ module Underscore { identity(value: T): T; >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ } @@ -43,11 +43,11 @@ _.all([true, 1, null, 'yes'], _.identity); >_.all([true, 1, null, 'yes'], _.identity) : boolean > : ^^^^^^^ >_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >[true, 1, null, 'yes'] : (string | number | true)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >true : true @@ -57,30 +57,30 @@ _.all([true, 1, null, 'yes'], _.identity); >'yes' : "yes" > : ^^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // Ok, because fixing makes us infer boolean for T _.all([true], _.identity); >_.all([true], _.identity) : boolean > : ^^^^^^^ >_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : (list: T[], iterator?: Underscore.Iterator, context?: any) => boolean -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >[true] : true[] > : ^^^^^^ >true : true > : ^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/genericArrayExtenstions.types b/tests/baselines/reference/genericArrayExtenstions.types index fcd3c86757c0a..e936600bbe7fa 100644 --- a/tests/baselines/reference/genericArrayExtenstions.types +++ b/tests/baselines/reference/genericArrayExtenstions.types @@ -7,13 +7,13 @@ export declare class ObservableArray implements Array { // MS.Entertainmen concat(...items: U[]): T[]; >concat : { (...items: U[]): T[]; (...items: T[]): T[]; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >items : U[] > : ^^^ concat(...items: T[]): T[]; >concat : { (...items: U[]): T[]; (...items: T[]): T[]; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >items : T[] > : ^^^ } diff --git a/tests/baselines/reference/genericArrayMethods1.types b/tests/baselines/reference/genericArrayMethods1.types index 0921c33834f00..ace611fd07cf1 100644 --- a/tests/baselines/reference/genericArrayMethods1.types +++ b/tests/baselines/reference/genericArrayMethods1.types @@ -7,7 +7,7 @@ var x:string[] = [0,1].slice(0); // this should be an error >[0,1].slice(0) : number[] > : ^^^^^^^^ >[0,1].slice : (start?: number, end?: number) => number[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >[0,1] : number[] > : ^^^^^^^^ >0 : 0 @@ -15,7 +15,7 @@ var x:string[] = [0,1].slice(0); // this should be an error >1 : 1 > : ^ >slice : (start?: number, end?: number) => number[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.types b/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.types index e7dbfff0b1dff..938ac20c43efc 100644 --- a/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.types +++ b/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.types @@ -3,11 +3,11 @@ === genericAssignmentCompatOfFunctionSignatures1.ts === var x1 = function foo3(x: T, z: U) { } >x1 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >function foo3(x: T, z: U) { } : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo3 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : string @@ -19,11 +19,11 @@ var x1 = function foo3(x: T, z: U) { } var x2 = function foo3(x: T, z: U) { } >x2 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >function foo3(x: T, z: U) { } : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo3 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : number @@ -35,17 +35,17 @@ var x2 = function foo3(x: T, z: U) { } x1 = x2; >x1 = x2 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x1 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x2 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ x2 = x1; >x2 = x1 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x2 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x1 : (x: T, z: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ diff --git a/tests/baselines/reference/genericBaseClassLiteralProperty.types b/tests/baselines/reference/genericBaseClassLiteralProperty.types index 18d27e72e2aab..9bbbba84855f6 100644 --- a/tests/baselines/reference/genericBaseClassLiteralProperty.types +++ b/tests/baselines/reference/genericBaseClassLiteralProperty.types @@ -30,11 +30,11 @@ class SubClass extends BaseClass { >this._getValue1() : number > : ^^^^^^ >this._getValue1 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >this : this > : ^^^^ >_getValue1 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ var y : number = this._getValue2(); >y : number @@ -42,10 +42,10 @@ class SubClass extends BaseClass { >this._getValue2() : number > : ^^^^^^ >this._getValue2 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >this : this > : ^^^^ >_getValue2 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ } } diff --git a/tests/baselines/reference/genericCallInferenceWithGenericLocalFunction.types b/tests/baselines/reference/genericCallInferenceWithGenericLocalFunction.types index f93262e5408c8..6382c7cd3a764 100644 --- a/tests/baselines/reference/genericCallInferenceWithGenericLocalFunction.types +++ b/tests/baselines/reference/genericCallInferenceWithGenericLocalFunction.types @@ -5,9 +5,9 @@ const createTransform = (tr: (from: I) => O) => tr; >createTransform : (tr: (from: I) => O) => (from: I) => O -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >(tr: (from: I) => O) => tr : (tr: (from: I) => O) => (from: I) => O -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >tr : (from: I) => O > : ^ ^^ ^^^^^ >from : I @@ -17,15 +17,15 @@ const createTransform = (tr: (from: I) => O) => tr; function withP2

(p: P) { >withP2 :

(p: P) => (from: I) => I & P -> : ^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^ >p : P > : ^ const m = (from: I) => ({ ...from, ...p }); >m : (from: I) => I & P -> : ^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ >(from: I) => ({ ...from, ...p }) : (from: I) => I & P -> : ^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ >from : I > : ^ >({ ...from, ...p }) : I & P @@ -39,11 +39,11 @@ function withP2

(p: P) { return createTransform(m); >createTransform(m) : (from: I) => I & P -> : ^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^ ^ >createTransform : (tr: (from: I) => O) => (from: I) => O -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >m : (from: I) => I & P -> : ^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ } const addP2 = withP2({ foo: 1 }); @@ -52,7 +52,7 @@ const addP2 = withP2({ foo: 1 }); >withP2({ foo: 1 }) : (from: I) => I & { foo: number; } > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >withP2 :

(p: P) => (from: I) => I & P -> : ^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^ >{ foo: 1 } : { foo: number; } > : ^^^^^^^^^^^^^^^^ >foo : number diff --git a/tests/baselines/reference/genericCallOnMemberReturningClosedOverObject.types b/tests/baselines/reference/genericCallOnMemberReturningClosedOverObject.types index e34decbe031ff..1843d0413cd2b 100644 --- a/tests/baselines/reference/genericCallOnMemberReturningClosedOverObject.types +++ b/tests/baselines/reference/genericCallOnMemberReturningClosedOverObject.types @@ -5,38 +5,38 @@ function example() { >example : () => { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ let x = { >x : { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >{ foo: (t2: T2) => x, bar: (t1: T1) => x, } : { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ foo: (t2: T2) => x, >foo : (t2: T2) => { foo: any; bar: (t1: T1) => any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >(t2: T2) => x : (t2: T2) => { foo: any; bar: (t1: T1) => any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >t2 : T2 > : ^^ >x : { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ bar: (t1: T1) => x, >bar : (t1: T1) => { foo: (t2: T2) => any; bar: any; } -> : ^ ^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >(t1: T1) => x : (t1: T1) => { foo: (t2: T2) => any; bar: any; } -> : ^ ^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >t1 : T1 > : ^^ >x : { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ }; return x; >x : { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ } example().foo("hello").bar(1); @@ -51,7 +51,7 @@ example().foo("hello").bar(1); >example() : { foo: (t2: T2) => any; bar: (t1: number) => any; } > : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >example : () => { foo: (t2: T2) => any; bar: (t1: T1) => any; } -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >foo : (t2: T2) => { foo: any; bar: (t1: number) => any; } > : ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >"hello" : "hello" diff --git a/tests/baselines/reference/genericCallSpecializedToTypeArg.types b/tests/baselines/reference/genericCallSpecializedToTypeArg.types index d483dae1a82bb..400bf3c20f517 100644 --- a/tests/baselines/reference/genericCallSpecializedToTypeArg.types +++ b/tests/baselines/reference/genericCallSpecializedToTypeArg.types @@ -3,7 +3,7 @@ === genericCallSpecializedToTypeArg.ts === function dupe(x: T): T { >dupe : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -13,7 +13,7 @@ function dupe(x: T): T { } function dupeAndGetDist(x: U): U { >dupeAndGetDist : (x: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : U > : ^ @@ -23,7 +23,7 @@ function dupeAndGetDist(x: U): U { >dupe(x) : U > : ^ >dupe : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : U > : ^ diff --git a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.types b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.types index 2d031b1695cf2..18f678edf4e24 100644 --- a/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.types +++ b/tests/baselines/reference/genericCallToOverloadedMethodWithOverloadedArguments.types @@ -8,7 +8,7 @@ module m1 { interface Promise { then(cb: (x: T) => Promise): Promise; >then : (cb: (x: T) => Promise) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -49,7 +49,7 @@ module m2 { interface Promise { then(cb: (x: T) => Promise): Promise; >then : (cb: (x: T) => Promise) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -96,7 +96,7 @@ module m3 { interface Promise { then(cb: (x: T) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -104,7 +104,7 @@ module m3 { then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -149,7 +149,7 @@ module m4 { interface Promise { then(cb: (x: T) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -157,7 +157,7 @@ module m4 { then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -208,7 +208,7 @@ module m5 { interface Promise { then(cb: (x: T) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => U_1, progress?: (preservation: any) => void): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -216,7 +216,7 @@ module m5 { then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => U_1, progress?: (preservation: any) => void): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -228,7 +228,7 @@ module m5 { then(cb: (x: T) => Promise, error?: (error: any) => U, progress?: (preservation: any) => void): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => U, progress?: (preservation: any) => void): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -283,7 +283,7 @@ module m6 { interface Promise { then(cb: (x: T) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -291,7 +291,7 @@ module m6 { then(cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; >then : { (cb: (x: T) => Promise): Promise; (cb: (x: T) => Promise, error?: (error: any) => Promise): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T diff --git a/tests/baselines/reference/genericCallTypeArgumentInference.types b/tests/baselines/reference/genericCallTypeArgumentInference.types index 47119b2fd49cf..7bb6afde6a7dc 100644 --- a/tests/baselines/reference/genericCallTypeArgumentInference.types +++ b/tests/baselines/reference/genericCallTypeArgumentInference.types @@ -5,7 +5,7 @@ function foo(t: T) { >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >t : T > : ^ @@ -20,13 +20,13 @@ var r = foo(''); // string >foo('') : "" > : ^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >'' : "" > : ^^ function foo2(t: T, u: U) { >foo2 : (t: T, u: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -39,7 +39,7 @@ function foo2(t: T, u: U) { function foo2b(u: U) { >foo2b : (u: U) => T -> : ^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >u : U > : ^ @@ -58,7 +58,7 @@ var r2 = foo2('', 1); // number >foo2('', 1) : 1 > : ^ >foo2 : (t: T, u: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >'' : "" > : ^^ >1 : 1 @@ -70,7 +70,7 @@ var r3 = foo2b(1); // {} >foo2b(1) : unknown > : ^^^^^^^ >foo2b : (u: U) => T -> : ^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >1 : 1 > : ^ @@ -113,7 +113,7 @@ class C { foo3(t: T, u: U) { >foo3 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -126,7 +126,7 @@ class C { foo4(t: T, u: U) { >foo4 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -139,7 +139,7 @@ class C { foo5(t: T, u: U) { >foo5 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -165,7 +165,7 @@ class C { foo7(u: U) { >foo7 : (u: U) => T -> : ^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >u : U > : ^ @@ -347,7 +347,7 @@ interface I { foo3(t: T, u: U): T; >foo3 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -355,7 +355,7 @@ interface I { foo4(t: T, u: U): T; >foo4 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -363,7 +363,7 @@ interface I { foo5(t: T, u: U): T; >foo5 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -371,17 +371,17 @@ interface I { foo6(): T; >foo6 : () => T -> : ^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^ foo7(u: U): T; >foo7 : (u: U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >u : U > : ^ foo8(): T; >foo8 : () => T -> : ^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^ } var i: I; @@ -394,11 +394,11 @@ var r4 = i.foo('', 1); // string >i.foo('', 1) : string > : ^^^^^^ >i.foo : (t: string, u: number) => string -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo : (t: string, u: number) => string -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >'' : "" > : ^^ >1 : 1 @@ -410,11 +410,11 @@ var r5 = i.foo2('', 1); // number >i.foo2('', 1) : number > : ^^^^^^ >i.foo2 : (t: string, u: number) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo2 : (t: string, u: number) => number -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^ >'' : "" > : ^^ >1 : 1 @@ -442,11 +442,11 @@ var r7 = i.foo4('', true); // string >i.foo4('', true) : string > : ^^^^^^ >i.foo4 : (t: string, u: U) => string -> : ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^ ^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo4 : (t: string, u: U) => string -> : ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^ ^^^^^^^^ >'' : "" > : ^^ >true : true @@ -458,11 +458,11 @@ var r8 = i.foo5(true, 1); // boolean >i.foo5(true, 1) : true > : ^^^^ >i.foo5 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo5 : (t: T, u: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >true : true > : ^^^^ >1 : 1 @@ -474,11 +474,11 @@ var r9 = i.foo6(); // {} >i.foo6() : unknown > : ^^^^^^^ >i.foo6 : () => T -> : ^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo6 : () => T -> : ^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^ var r10 = i.foo7(''); // {} >r10 : unknown @@ -486,11 +486,11 @@ var r10 = i.foo7(''); // {} >i.foo7('') : unknown > : ^^^^^^^ >i.foo7 : (u: U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo7 : (u: U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >'' : "" > : ^^ @@ -500,9 +500,9 @@ var r11 = i.foo8(); // {} >i.foo8() : unknown > : ^^^^^^^ >i.foo8 : () => T -> : ^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^^ >foo8 : () => T -> : ^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithArrayLiteralArgs.types b/tests/baselines/reference/genericCallWithArrayLiteralArgs.types index f5e5a03e445bd..52e57b112d004 100644 --- a/tests/baselines/reference/genericCallWithArrayLiteralArgs.types +++ b/tests/baselines/reference/genericCallWithArrayLiteralArgs.types @@ -3,7 +3,7 @@ === genericCallWithArrayLiteralArgs.ts === function foo(t: T) { >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >t : T > : ^ @@ -18,7 +18,7 @@ var r = foo([1, 2]); // number[] >foo([1, 2]) : number[] > : ^^^^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[1, 2] : number[] > : ^^^^^^^^ >1 : 1 @@ -32,7 +32,7 @@ var r = foo([1, 2]); // number[] >foo([1, 2]) : number[] > : ^^^^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[1, 2] : number[] > : ^^^^^^^^ >1 : 1 @@ -46,7 +46,7 @@ var ra = foo([1, 2]); // any[] >foo([1, 2]) : any[] > : ^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[1, 2] : number[] > : ^^^^^^^^ >1 : 1 @@ -60,7 +60,7 @@ var r2 = foo([]); // any[] >foo([]) : any[] > : ^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -70,7 +70,7 @@ var r3 = foo([]); // number[] >foo([]) : number[] > : ^^^^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -80,7 +80,7 @@ var r4 = foo([1, '']); // {}[] >foo([1, '']) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[1, ''] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -94,7 +94,7 @@ var r5 = foo([1, '']); // any[] >foo([1, '']) : any[] > : ^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[1, ''] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -108,7 +108,7 @@ var r6 = foo([1, '']); // Object[] >foo([1, '']) : Object[] > : ^^^^^^^^ >foo : (t: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >[1, ''] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types index da2bbf9d789e4..4d5e33e328f82 100644 --- a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types +++ b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types @@ -39,7 +39,7 @@ var d2: Derived2; function foo(t: T) { >foo : (t: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >t : T > : ^ @@ -54,7 +54,7 @@ var r = foo(b); // Base >foo(b) : Base > : ^^^^ >foo : (t: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >b : Base > : ^^^^ @@ -64,13 +64,13 @@ var r2 = foo(d1); // Derived >foo(d1) : Derived > : ^^^^^^^ >foo : (t: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >d1 : Derived > : ^^^^^^^ function foo2(t: T, u: U) { >foo2 : (t: T, u: U) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -83,7 +83,7 @@ function foo2(t: T, u: U) { function foo2b(u: U) { >foo2b : (u: U) => T -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >u : U > : ^ @@ -115,7 +115,7 @@ var r3 = foo2b(d1); // Base >foo2b(d1) : Base > : ^^^^ >foo2b : (u: U) => T -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >d1 : Derived > : ^^^^^^^ @@ -166,7 +166,7 @@ class C { foo3(t: T, u: U) { >foo3 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -179,7 +179,7 @@ class C { foo4(t: T, u: U) { >foo4 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -192,7 +192,7 @@ class C { foo5(t: T, u: U) { >foo5 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : T > : ^ >u : U @@ -218,7 +218,7 @@ class C { foo7(u: U) { >foo7 : (u: U) => T -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >u : U > : ^ @@ -416,7 +416,7 @@ interface I { foo3(t: T, u: U): T; >foo3 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -424,7 +424,7 @@ interface I { foo4(t: T, u: U): T; >foo4 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -432,7 +432,7 @@ interface I { foo5(t: T, u: U): T; >foo5 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -440,17 +440,17 @@ interface I { foo6(): T; >foo6 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ foo7(u: U): T; >foo7 : (u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >u : U > : ^ foo8(): T; >foo8 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ } var i: I; @@ -527,11 +527,11 @@ var r8 = i.foo5(d1, d2); // Derived >i.foo5(d1, d2) : Derived > : ^^^^^^^ >i.foo5 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo5 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >d1 : Derived > : ^^^^^^^ >d2 : Derived2 @@ -543,11 +543,11 @@ var r8b = i.foo5(d2, d2); // Derived2 >i.foo5(d2, d2) : Derived2 > : ^^^^^^^^ >i.foo5 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo5 : (t: T, u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >d2 : Derived2 > : ^^^^^^^^ >d2 : Derived2 @@ -559,11 +559,11 @@ var r9 = i.foo6(); // Derived >i.foo6() : Derived > : ^^^^^^^ >i.foo6 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo6 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ var r10 = i.foo7(d1); // Base >r10 : Base @@ -571,11 +571,11 @@ var r10 = i.foo7(d1); // Base >i.foo7(d1) : Base > : ^^^^ >i.foo7 : (u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo7 : (u: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >d1 : Derived > : ^^^^^^^ @@ -585,9 +585,9 @@ var r11 = i.foo8(); // Base >i.foo8() : Base > : ^^^^ >i.foo8 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo8 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.types b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.types index c034b76f16adc..4ed6474165dd1 100644 --- a/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.types +++ b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference2.types @@ -5,7 +5,7 @@ function foo(t: T) { >foo : (t: T) => U -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >t : T > : ^ @@ -24,7 +24,7 @@ var r = foo(1); // ok >foo(1) : number > : ^^^^^^ >foo : (t: T) => U -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ @@ -34,7 +34,7 @@ var r2 = foo(null); // {} >foo(null) : any > : ^^^ >foo : (t: T) => U -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ var r3 = foo(new Object()); // {} >r3 : Object @@ -42,7 +42,7 @@ var r3 = foo(new Object()); // {} >foo(new Object()) : Object > : ^^^^^^ >foo : (t: T) => U -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >new Object() : Object > : ^^^^^^ >Object : ObjectConstructor @@ -54,7 +54,7 @@ var r4 = foo(1); // error >foo(1) : Date > : ^^^^ >foo : (t: T) => U -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ @@ -64,7 +64,7 @@ var r5 = foo(new Date()); // no error >foo(new Date()) : Date > : ^^^^ >foo : (t: T) => U -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >new Date() : Date > : ^^^^ >Date : DateConstructor diff --git a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.types b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.types index 2220e844528eb..30bb10b507887 100644 --- a/tests/baselines/reference/genericCallWithConstructorTypedArguments5.types +++ b/tests/baselines/reference/genericCallWithConstructorTypedArguments5.types @@ -5,7 +5,7 @@ function foo(arg: { cb: new(t: T) => U }) { >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: new (t: T) => U; } > : ^^^^^^ ^^^ >cb : new (t: T) => U @@ -28,7 +28,7 @@ var arg: { cb: new(x: T) => string }; >arg : { cb: new (x: T) => string; } > : ^^^^^^ ^^^ >cb : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -38,7 +38,7 @@ var r = foo(arg); // {} >foo(arg) : string > : ^^^^^^ >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: new (x: T) => string; } > : ^^^^^^ ^^^ @@ -47,7 +47,7 @@ var arg2: { cb: new (x: T, y: T) => string }; >arg2 : { cb: new (x: T, y: T) => string; } > : ^^^^^^ ^^^ >cb : new (x: T, y: T) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -59,7 +59,7 @@ var r2 = foo(arg2); // error >foo(arg2) : string > : ^^^^^^ >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg2 : { cb: new (x: T, y: T) => string; } > : ^^^^^^ ^^^ @@ -79,13 +79,13 @@ var r3 = foo(arg3); // error >foo(arg3) : string > : ^^^^^^ >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg3 : { cb: new (x: string, y: number) => string; } > : ^^^^^^ ^^^ function foo2(arg: { cb: new(t: T, t2: T) => U }) { >foo2 : (arg: { cb: new (t: T, t2: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: new (t: T, t2: T) => U; } > : ^^^^^^ ^^^ >cb : new (t: T, t2: T) => U @@ -113,7 +113,7 @@ var r4 = foo(arg); // {} >foo(arg) : string > : ^^^^^^ >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: new (x: T) => string; } > : ^^^^^^ ^^^ @@ -131,7 +131,7 @@ var r6 = foo(arg4); // string >foo(arg4) : string > : ^^^^^^ >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg4 : { cb: new (x: string) => string; } > : ^^^^^^ ^^^ @@ -147,7 +147,7 @@ var r7 = foo(arg5); // string >foo(arg5) : string > : ^^^^^^ >foo : (arg: { cb: new (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg5 : { cb: new () => string; } > : ^^^^^^ ^^^ diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments.types index 351f95b2e325f..23a332907a3f7 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments.types @@ -6,7 +6,7 @@ function foo(x: (a: T) => T) { >foo : (x: (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -25,9 +25,9 @@ var r = foo((x: U) => ''); // {} >foo((x: U) => '') : unknown > : ^^^^^^^ >foo : (x: (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: U) => '' : (x: U) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : U > : ^ >'' : "" @@ -39,9 +39,9 @@ var r2 = foo((x: U) => ''); // string >foo((x: U) => '') : string > : ^^^^^^ >foo : (x: (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: U) => '' : (x: U) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : U > : ^ >'' : "" @@ -53,7 +53,7 @@ var r3 = foo(x => ''); // {} >foo(x => '') : unknown > : ^^^^^^^ >foo : (x: (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x => '' : (x: unknown) => string > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : unknown @@ -63,7 +63,7 @@ var r3 = foo(x => ''); // {} function foo2(x: T, cb: (a: T) => U) { >foo2 : (x: T, cb: (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >cb : (a: T) => U @@ -86,11 +86,11 @@ var r4 = foo2(1, function (a: Z) { return '' }); // string, contextual signat >foo2(1, function (a: Z) { return '' }) : string > : ^^^^^^ >foo2 : (x: T, cb: (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >function (a: Z) { return '' } : (a: Z) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : Z > : ^ >'' : "" @@ -102,7 +102,7 @@ var r5 = foo2(1, (a) => ''); // string >foo2(1, (a) => '') : string > : ^^^^^^ >foo2 : (x: T, cb: (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >(a) => '' : (a: number) => string @@ -118,11 +118,11 @@ var r6 = foo2('', (a: Z) => 1); >foo2('', (a: Z) => 1) : number > : ^^^^^^ >foo2 : (x: T, cb: (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >'' : "" > : ^^ >(a: Z) => 1 : (a: Z) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : Z > : ^ >1 : 1 @@ -130,7 +130,7 @@ var r6 = foo2('', (a: Z) => 1); function foo3(x: T, cb: (a: T) => U, y: U) { >foo3 : (x: T, cb: (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >cb : (a: T) => U @@ -155,11 +155,11 @@ var r7 = foo3(1, (a: Z) => '', ''); // string >foo3(1, (a: Z) => '', '') : string > : ^^^^^^ >foo3 : (x: T, cb: (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >(a: Z) => '' : (a: Z) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : Z > : ^ >'' : "" @@ -173,7 +173,7 @@ var r8 = foo3(1, function (a) { return '' }, 1); // error >foo3(1, function (a) { return '' }, 1) : 1 > : ^ >foo3 : (x: T, cb: (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >function (a) { return '' } : (a: number) => string @@ -191,7 +191,7 @@ var r9 = foo3(1, (a) => '', ''); // string >foo3(1, (a) => '', '') : string > : ^^^^^^ >foo3 : (x: T, cb: (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >(a) => '' : (a: number) => string @@ -205,7 +205,7 @@ var r9 = foo3(1, (a) => '', ''); // string function other(t: T, u: U) { >other : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -217,7 +217,7 @@ function other(t: T, u: U) { >foo2(1, (x: T) => '') : string > : ^^^^^^ >foo2 : (x: T_1, cb: (a: T_1) => U_1) => U_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >1 : 1 > : ^ >(x: T) => '' : (x: T) => string @@ -233,7 +233,7 @@ function other(t: T, u: U) { >foo2(1, (x) => '') : string > : ^^^^^^ >foo2 : (x: T_1, cb: (a: T_1) => U_1) => U_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >1 : 1 > : ^ >(x) => '' : (x: number) => string @@ -249,7 +249,7 @@ function other(t: T, u: U) { >foo3(1, (x: T) => '', '') : string > : ^^^^^^ >foo3 : (x: T_1, cb: (a: T_1) => U_1, y: U_1) => U_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >1 : 1 > : ^ >(x: T) => '' : (x: T) => string @@ -267,7 +267,7 @@ function other(t: T, u: U) { >foo3(1, (x: T) => '', 1) : string > : ^^^^^^ >foo3 : (x: T_1, cb: (a: T_1) => U_1, y: U_1) => U_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >1 : 1 > : ^ >(x: T) => '' : (x: T) => string @@ -285,7 +285,7 @@ function other(t: T, u: U) { >foo3(1, function (a) { return '' }, 1) : 1 > : ^ >foo3 : (x: T_1, cb: (a: T_1) => U_1, y: U_1) => U_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >1 : 1 > : ^ >function (a) { return '' } : (a: number) => string diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments2.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments2.types index 05e4e0bd0dda1..02437528f0764 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments2.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments2.types @@ -6,7 +6,7 @@ function foo(x: new(a: T) => T) { >foo : (x: new (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -39,7 +39,7 @@ var i2: I2; var a: { >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ new (x: T): T; >x : T @@ -52,7 +52,7 @@ var r = foo(i); // any >foo(i) : unknown > : ^^^^^^^ >foo : (x: new (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >i : I > : ^ @@ -62,7 +62,7 @@ var r2 = foo(i); // string >foo(i) : string > : ^^^^^^ >foo : (x: new (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >i : I > : ^ @@ -72,7 +72,7 @@ var r3 = foo(i2); // string >foo(i2) : string > : ^^^^^^ >foo : (x: new (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >i2 : I2 > : ^^^^^^^^^^ @@ -82,13 +82,13 @@ var r3b = foo(a); // any >foo(a) : unknown > : ^^^^^^^ >foo : (x: new (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo2(x: T, cb: new(a: T) => U) { >foo2 : (x: T, cb: new (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >cb : new (a: T) => U @@ -111,7 +111,7 @@ var r4 = foo2(1, i2); // error >foo2(1, i2) : string > : ^^^^^^ >foo2 : (x: T, cb: new (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >i2 : I2 @@ -123,11 +123,11 @@ var r4b = foo2(1, a); // any >foo2(1, a) : number > : ^^^^^^ >foo2 : (x: T, cb: new (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r5 = foo2(1, i); // any >r5 : number @@ -135,7 +135,7 @@ var r5 = foo2(1, i); // any >foo2(1, i) : number > : ^^^^^^ >foo2 : (x: T, cb: new (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >i : I @@ -147,7 +147,7 @@ var r6 = foo2('', i2); // string >foo2('', i2) : string > : ^^^^^^ >foo2 : (x: T, cb: new (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >'' : "" > : ^^ >i2 : I2 @@ -155,7 +155,7 @@ var r6 = foo2('', i2); // string function foo3(x: T, cb: new(a: T) => U, y: U) { >foo3 : (x: T, cb: new (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >cb : new (a: T) => U @@ -180,7 +180,7 @@ var r7 = foo3(null, i, ''); // any >foo3(null, i, '') : any > : ^^^ >foo3 : (x: T, cb: new (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >i : I > : ^ >'' : "" @@ -192,9 +192,9 @@ var r7b = foo3(null, a, ''); // any >foo3(null, a, '') : any > : ^^^ >foo3 : (x: T, cb: new (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >'' : "" > : ^^ @@ -204,7 +204,7 @@ var r8 = foo3(1, i2, 1); // error >foo3(1, i2, 1) : string > : ^^^^^^ >foo3 : (x: T, cb: new (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >i2 : I2 @@ -218,7 +218,7 @@ var r9 = foo3('', i2, ''); // string >foo3('', i2, '') : string > : ^^^^^^ >foo3 : (x: T, cb: new (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >'' : "" > : ^^ >i2 : I2 diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types index ab90f25098cf6..bd88542847bb6 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments3.types @@ -18,7 +18,7 @@ var a: { function foo4(cb: (x: T) => U) { >foo4 : (cb: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >cb : (x: T) => U > : ^ ^^ ^^^^^ >x : T @@ -37,13 +37,13 @@ var r = foo4(a); // T is {} (candidates boolean and string), U is any (candidate >r : any >foo4(a) : any >foo4 : (cb: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >a : { (x: boolean): boolean; (x: string): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ var b: { >b : { (x: boolean): T; (x: T): any; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: boolean): T; >x : boolean @@ -58,7 +58,7 @@ var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates a >r2 : any >foo4(b) : any >foo4 : (cb: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >b : { (x: boolean): T; (x: T): any; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types index 8ebc073251405..2faadde5d614f 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments4.types @@ -30,7 +30,7 @@ var a: { function foo4(cb: new(x: T) => U) { >foo4 : (cb: new (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >cb : new (x: T) => U > : ^^^^^ ^^ ^^^^^ >x : T @@ -51,13 +51,13 @@ var r = foo4(a); // T is {} (candidates boolean and string), U is {} (candidates >foo4(a) : D > : ^ >foo4 : (cb: new (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >a : { new (x: boolean): C; new (x: string): D; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ var b: { >b : { new (x: boolean): T; new (x: T): any; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ new(x: boolean): T; >x : boolean @@ -72,7 +72,7 @@ var r2 = foo4(b); // T is {} (candidates boolean and {}), U is any (candidates a >r2 : any >foo4(b) : any >foo4 : (cb: new (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >b : { new (x: boolean): T; new (x: T): any; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/genericCallWithFunctionTypedArguments5.types b/tests/baselines/reference/genericCallWithFunctionTypedArguments5.types index a513880423170..6b89e600d5ad1 100644 --- a/tests/baselines/reference/genericCallWithFunctionTypedArguments5.types +++ b/tests/baselines/reference/genericCallWithFunctionTypedArguments5.types @@ -5,7 +5,7 @@ function foo(arg: { cb: (t: T) => U }) { >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: (t: T) => U; } > : ^^^^^^ ^^^ >cb : (t: T) => U @@ -26,13 +26,13 @@ function foo(arg: { cb: (t: T) => U }) { var arg = { cb: (x: T) => '' }; >arg : { cb: (x: T) => string; } -> : ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >{ cb: (x: T) => '' } : { cb: (x: T) => string; } -> : ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >cb : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -44,9 +44,9 @@ var r = foo(arg); // {} >foo(arg) : string > : ^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: (x: T) => string; } -> : ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ // more args not allowed var r2 = foo({ cb: (x: T, y: T) => '' }); // error @@ -55,13 +55,13 @@ var r2 = foo({ cb: (x: T, y: T) => '' }); // error >foo({ cb: (x: T, y: T) => '' }) : unknown > : ^^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >{ cb: (x: T, y: T) => '' } : { cb: (x: T, y: T) => string; } -> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >cb : (x: T, y: T) => string -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >(x: T, y: T) => '' : (x: T, y: T) => string -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : T @@ -75,7 +75,7 @@ var r3 = foo({ cb: (x: string, y: number) => '' }); // error >foo({ cb: (x: string, y: number) => '' }) : string > : ^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >{ cb: (x: string, y: number) => '' } : { cb: (x: string, y: number) => string; } > : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >cb : (x: string, y: number) => string @@ -91,7 +91,7 @@ var r3 = foo({ cb: (x: string, y: number) => '' }); // error function foo2(arg: { cb: (t: T, t2: T) => U }) { >foo2 : (arg: { cb: (t: T, t2: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: (t: T, t2: T) => U; } > : ^^^^^^ ^^^ >cb : (t: T, t2: T) => U @@ -119,9 +119,9 @@ var r4 = foo(arg); // {} >foo(arg) : string > : ^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >arg : { cb: (x: T) => string; } -> : ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ var r5 = foo({ cb: (x: T) => '' }); // {} >r5 : string @@ -129,13 +129,13 @@ var r5 = foo({ cb: (x: T) => '' }); // {} >foo({ cb: (x: T) => '' }) : string > : ^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >{ cb: (x: T) => '' } : { cb: (x: T) => string; } -> : ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >cb : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -147,7 +147,7 @@ var r6 = foo({ cb: (x: string) => '' }); // string >foo({ cb: (x: string) => '' }) : string > : ^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >{ cb: (x: string) => '' } : { cb: (x: string) => string; } > : ^^^^^^^ ^^ ^^^^^^^^^^^^^^ >cb : (x: string) => string @@ -165,7 +165,7 @@ var r7 = foo({ cb: () => '' }); // string >foo({ cb: () => '' }) : string > : ^^^^^^ >foo : (arg: { cb: (t: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >{ cb: () => '' } : { cb: () => string; } > : ^^^^^^^^^^^^^^^^^^^^^ >cb : () => string diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments.types b/tests/baselines/reference/genericCallWithGenericSignatureArguments.types index e612b8ac17e76..431be82bd9cb8 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments.types @@ -6,7 +6,7 @@ function foo(a: (x: T) => T, b: (x: T) => T) { >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >a : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -30,11 +30,11 @@ function foo(a: (x: T) => T, b: (x: T) => T) { //var r1 = foo((x: number) => 1, (x: string) => ''); // error var r1b = foo((x) => 1, (x) => ''); // {} => {} >r1b : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >foo((x) => 1, (x) => '') : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x) => 1 : (x: unknown) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : unknown @@ -50,11 +50,11 @@ var r1b = foo((x) => 1, (x) => ''); // {} => {} var r2 = foo((x: Object) => null, (x: string) => ''); // Object => Object >r2 : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo((x: Object) => null, (x: string) => '') : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: Object) => null : (x: Object) => any > : ^ ^^ ^^^^^^^^ >x : Object @@ -68,11 +68,11 @@ var r2 = foo((x: Object) => null, (x: string) => ''); // Object => Object var r3 = foo((x: number) => 1, (x: Object) => null); // number => number >r3 : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo((x: number) => 1, (x: Object) => null) : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: number) => 1 : (x: number) => number > : ^ ^^ ^^^^^^^^^^^ >x : number @@ -86,11 +86,11 @@ var r3 = foo((x: number) => 1, (x: Object) => null); // number => number var r3ii = foo((x: number) => 1, (x: number) => 1); // number => number >r3ii : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo((x: number) => 1, (x: number) => 1) : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: number) => 1 : (x: number) => number > : ^ ^^ ^^^^^^^^^^^ >x : number @@ -122,11 +122,11 @@ var b: { x: number; z?: number; }; var r4 = foo((x: typeof a) => a, (x: typeof b) => b); // typeof a => typeof a >r4 : (x: { x: number; y?: number; }) => { x: number; y?: number; } -> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ ^ ^^^^ ^ >foo((x: typeof a) => a, (x: typeof b) => b) : (x: { x: number; y?: number; }) => { x: number; y?: number; } -> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ ^ ^^^^ ^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: typeof a) => a : (x: typeof a) => { x: number; y?: number; } > : ^ ^^ ^^^^^^^^^^ ^^^^^^ ^^^ >x : { x: number; y?: number; } @@ -146,11 +146,11 @@ var r4 = foo((x: typeof a) => a, (x: typeof b) => b); // typeof a => typeof a var r5 = foo((x: typeof b) => b, (x: typeof a) => a); // typeof b => typeof b >r5 : (x: { x: number; z?: number; }) => { x: number; z?: number; } -> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ ^ ^^^^ ^ >foo((x: typeof b) => b, (x: typeof a) => a) : (x: { x: number; z?: number; }) => { x: number; z?: number; } -> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^ +> : ^ ^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^ ^ ^^^^ ^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: typeof b) => b : (x: typeof b) => { x: number; z?: number; } > : ^ ^^ ^^^^^^^^^^ ^^^^^^ ^^^ >x : { x: number; z?: number; } @@ -170,7 +170,7 @@ var r5 = foo((x: typeof b) => b, (x: typeof a) => a); // typeof b => typeof b function other(x: T) { >other : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -180,7 +180,7 @@ function other(x: T) { >foo((a: T) => a, (b: T) => b) : (x: T) => T > : ^ ^^^^^^^^^ >foo : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: T) => a : (a: T) => T > : ^ ^^ ^^^^^^ >a : T @@ -196,11 +196,11 @@ function other(x: T) { var r6b = foo((a) => a, (b) => b); // {} => {} >r6b : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >foo((a) => a, (b) => b) : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >foo : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a) => a : (a: unknown) => unknown > : ^ ^^^^^^^^^^^^^^^^^^^^^ >a : unknown @@ -217,7 +217,7 @@ function other(x: T) { function other2(x: T) { >other2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -227,7 +227,7 @@ function other2(x: T) { >foo((a: T) => a, (b: T) => b) : (x: T) => T > : ^ ^^^^^^^^^ >foo : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: T) => a : (a: T) => T > : ^ ^^ ^^^^^^ >a : T @@ -243,11 +243,11 @@ function other2(x: T) { var r7b = foo((a) => a, (b) => b); // {} => {} >r7b : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >foo((a) => a, (b) => b) : (x: unknown) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^ >foo : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a) => a : (a: unknown) => unknown > : ^ ^^^^^^^^^^^^^^^^^^^^^ >a : unknown @@ -276,7 +276,7 @@ function other2(x: T) { function foo2(a: (x: T) => T, b: (x: T) => T) { >foo2 : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >a : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -299,7 +299,7 @@ function foo2(a: (x: T) => T, b: (x: T) => T) { function other3(x: T) { >other3 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -309,7 +309,7 @@ function other3(x: T) { >foo2((a: Date) => a, (b: Date) => b) : (x: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >foo2 : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: Date) => a : (a: Date) => Date > : ^ ^^ ^^^^^^^^^ >a : Date diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types index 5a80c00ffbea2..9cf19a4a6c5a1 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types @@ -10,7 +10,7 @@ module onlyT { function foo(a: (x: T) => T, b: (x: T) => T) { >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >a : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -37,9 +37,9 @@ module onlyT { >x : {} > : ^^ >foo((x: number) => 1, (x: string) => '') : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: number) => 1 : (x: number) => number > : ^ ^^ ^^^^^^^^^^^ >x : number @@ -55,7 +55,7 @@ module onlyT { function other2(x: T) { >other2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -65,7 +65,7 @@ module onlyT { >foo((a: T) => a, (b: T) => b) : (x: T) => T > : ^ ^^^^^^^^^ >foo : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: T) => a : (a: T) => T > : ^ ^^ ^^^^^^ >a : T @@ -105,7 +105,7 @@ module onlyT { function foo2(a: (x: T) => T, b: (x: T) => T) { >foo2 : (a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >a : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -128,7 +128,7 @@ module onlyT { function other3(x: T) { >other3 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -138,7 +138,7 @@ module onlyT { >foo2((a: T) => a, (b: T) => b) : (x: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >foo2 : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: T) => a : (a: T) => T > : ^ ^^ ^^^^^^ >a : T @@ -158,7 +158,7 @@ module onlyT { >foo2((a) => a, (b) => b) : (x: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >foo2 : (a: (x: T_1) => T_1, b: (x: T_1) => T_1) => (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a) => a : (a: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >a : Date @@ -187,7 +187,7 @@ module onlyT { function foo3(x: T, a: (x: T) => T, b: (x: T) => T) { >foo3 : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : T > : ^ >a : (x: T) => T @@ -216,7 +216,7 @@ module onlyT { >foo3(E.A, (x) => E.A, (x) => F.A) : (x: E) => E > : ^ ^^^^^^^^^ >foo3 : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >E.A : E > : ^ >E : typeof E @@ -251,7 +251,7 @@ module TU { function foo(a: (x: T) => T, b: (x: U) => U) { >foo : (a: (x: T) => T, b: (x: U) => U) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >a : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -278,9 +278,9 @@ module TU { >x : {} > : ^^ >foo((x: number) => 1, (x: string) => '') : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo : (a: (x: T) => T, b: (x: U) => U) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: number) => 1 : (x: number) => number > : ^ ^^ ^^^^^^^^^^^ >x : number @@ -296,7 +296,7 @@ module TU { function other2(x: T) { >other2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -306,7 +306,7 @@ module TU { >foo((a: T) => a, (b: T) => b) : (x: T) => T > : ^ ^^^^^^^^^ >foo : (a: (x: T_1) => T_1, b: (x: U) => U) => (x: T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: T) => a : (a: T) => T > : ^ ^^ ^^^^^^ >a : T @@ -345,7 +345,7 @@ module TU { function foo2(a: (x: T) => T, b: (x: U) => U) { >foo2 : (a: (x: T) => T, b: (x: U) => U) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >a : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -368,7 +368,7 @@ module TU { function other3(x: T) { >other3 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -378,7 +378,7 @@ module TU { >foo2((a: T) => a, (b: T) => b) : (x: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >foo2 : (a: (x: T_1) => T_1, b: (x: U) => U) => (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a: T) => a : (a: T) => T > : ^ ^^ ^^^^^^ >a : T @@ -398,7 +398,7 @@ module TU { >foo2((a) => a, (b) => b) : (x: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >foo2 : (a: (x: T_1) => T_1, b: (x: U) => U) => (x: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(a) => a : (a: Date) => Date > : ^ ^^^^^^^^^^^^^^^ >a : Date @@ -427,7 +427,7 @@ module TU { function foo3(x: T, a: (x: T) => T, b: (x: U) => U) { >foo3 : (x: T, a: (x: T) => T, b: (x: U) => U) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : T > : ^ >a : (x: T) => T @@ -456,7 +456,7 @@ module TU { >foo3(E.A, (x) => E.A, (x) => F.A) : (x: E) => E > : ^ ^^^^^^^^^ >foo3 : (x: T, a: (x: T) => T, b: (x: U) => U) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >E.A : E > : ^ >E : typeof E diff --git a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.types b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.types index cb753a16d6098..a80f6553abc4b 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments3.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments3.types @@ -6,7 +6,7 @@ function foo(x: T, a: (x: T) => T, b: (x: T) => T) { >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : T > : ^ >a : (x: T) => T @@ -31,11 +31,11 @@ function foo(x: T, a: (x: T) => T, b: (x: T) => T) { var r1 = foo('', (x: string) => '', (x: Object) => null); // any => any >r1 : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo('', (x: string) => '', (x: Object) => null) : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >'' : "" > : ^^ >(x: string) => '' : (x: string) => string @@ -51,11 +51,11 @@ var r1 = foo('', (x: string) => '', (x: Object) => null); // any => any var r1ii = foo('', (x) => '', (x) => null); // string => string >r1ii : (x: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo('', (x) => '', (x) => null) : (x: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >'' : "" > : ^^ >(x) => '' : (x: string) => string @@ -75,7 +75,7 @@ var r2 = foo('', (x: string) => '', (x: Object) => ''); // string => string >foo('', (x: string) => '', (x: Object) => '') : (x: Object) => Object > : ^ ^^^^^^^^^^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >'' : "" > : ^^ >(x: string) => '' : (x: string) => string @@ -97,7 +97,7 @@ var r3 = foo(null, (x: Object) => '', (x: string) => ''); // Object => Object >foo(null, (x: Object) => '', (x: string) => '') : (x: Object) => Object > : ^ ^^^^^^^^^^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: Object) => '' : (x: Object) => string > : ^ ^^ ^^^^^^^^^^^ >x : Object @@ -113,11 +113,11 @@ var r3 = foo(null, (x: Object) => '', (x: string) => ''); // Object => Object var r4 = foo(null, (x) => '', (x) => ''); // any => any >r4 : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo(null, (x) => '', (x) => '') : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x) => '' : (x: any) => string > : ^ ^^^^^^^^^^^^^^^^ >x : any @@ -137,7 +137,7 @@ var r5 = foo(new Object(), (x) => '', (x) => ''); // Object => Object >foo(new Object(), (x) => '', (x) => '') : (x: Object) => Object > : ^ ^^^^^^^^^^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >new Object() : Object > : ^^^^^^ >Object : ObjectConstructor @@ -169,11 +169,11 @@ enum F { A } var r6 = foo(E.A, (x: number) => E.A, (x: F) => F.A); // number => number >r6 : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo(E.A, (x: number) => E.A, (x: F) => F.A) : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo : (x: T, a: (x: T) => T, b: (x: T) => T) => (x: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >E.A : E > : ^ >E : typeof E @@ -204,7 +204,7 @@ var r6 = foo(E.A, (x: number) => E.A, (x: F) => F.A); // number => number function foo2(x: T, a: (x: T) => U, b: (x: T) => U) { >foo2 : (x: T, a: (x: T) => U, b: (x: T) => U) => (x: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : T > : ^ >a : (x: T) => U @@ -229,11 +229,11 @@ function foo2(x: T, a: (x: T) => U, b: (x: T) => U) { var r8 = foo2('', (x) => '', (x) => null); // string => string >r8 : (x: string) => any -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo2('', (x) => '', (x) => null) : (x: string) => any -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo2 : (x: T, a: (x: T) => U, b: (x: T) => U) => (x: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >'' : "" > : ^^ >(x) => '' : (x: string) => string @@ -249,11 +249,11 @@ var r8 = foo2('', (x) => '', (x) => null); // string => string var r9 = foo2(null, (x) => '', (x) => ''); // any => any >r9 : (x: any) => string -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo2(null, (x) => '', (x) => '') : (x: any) => string -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >foo2 : (x: T, a: (x: T) => U, b: (x: T) => U) => (x: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x) => '' : (x: any) => string > : ^ ^^^^^^^^^^^^^^^^ >x : any @@ -269,11 +269,11 @@ var r9 = foo2(null, (x) => '', (x) => ''); // any => any var r10 = foo2(null, (x: Object) => '', (x: string) => ''); // Object => Object >r10 : (x: Object) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo2(null, (x: Object) => '', (x: string) => '') : (x: Object) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >foo2 : (x: T, a: (x: T) => U, b: (x: T) => U) => (x: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: Object) => '' : (x: Object) => string > : ^ ^^ ^^^^^^^^^^^ >x : Object @@ -295,11 +295,11 @@ var x: (a: string) => boolean; var r11 = foo2(x, (a1: (y: string) => string) => (n: Object) => 1, (a2: (z: string) => string) => 2); // error >r11 : (x: (a: string) => boolean) => (n: Object) => 1 -> : ^ ^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^ +> : ^ ^^^ ^^ ^^^^^ ^^^^^ ^^ ^ >foo2(x, (a1: (y: string) => string) => (n: Object) => 1, (a2: (z: string) => string) => 2) : (x: (a: string) => boolean) => (n: Object) => 1 -> : ^ ^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^ +> : ^ ^^^ ^^ ^^^^^ ^^^^^ ^^ ^ >foo2 : (x: T, a: (x: T) => U, b: (x: T) => U) => (x: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (a: string) => boolean > : ^ ^^ ^^^^^ >(a1: (y: string) => string) => (n: Object) => 1 : (a1: (y: string) => string) => (n: Object) => 1 @@ -325,11 +325,11 @@ var r11 = foo2(x, (a1: (y: string) => string) => (n: Object) => 1, (a2: (z: stri var r12 = foo2(x, (a1: (y: string) => boolean) => (n: Object) => 1, (a2: (z: string) => boolean) => 2); // error >r12 : (x: (z: string) => boolean) => (n: Object) => 1 -> : ^ ^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^ +> : ^ ^^^ ^^ ^^^^^ ^^^^^ ^^ ^ >foo2(x, (a1: (y: string) => boolean) => (n: Object) => 1, (a2: (z: string) => boolean) => 2) : (x: (z: string) => boolean) => (n: Object) => 1 -> : ^ ^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^ +> : ^ ^^^ ^^ ^^^^^ ^^^^^ ^^ ^ >foo2 : (x: T, a: (x: T) => U, b: (x: T) => U) => (x: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (a: string) => boolean > : ^ ^^ ^^^^^ >(a1: (y: string) => boolean) => (n: Object) => 1 : (a1: (y: string) => boolean) => (n: Object) => 1 diff --git a/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.types b/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.types index a72679daf0819..9f99a493c7372 100644 --- a/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.types +++ b/tests/baselines/reference/genericCallWithNonSymmetricSubtypes.types @@ -6,7 +6,7 @@ function foo(x: T, y: T) { >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : T @@ -43,7 +43,7 @@ var r = foo(a, b); // { x: number; y?: number; }; >foo(a, b) : { x: number; y?: number; } > : ^^^^^ ^^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >a : { x: number; y?: number; } > : ^^^^^ ^^^^^^ ^^^ >b : { x: number; z?: number; } @@ -55,7 +55,7 @@ var r2 = foo(b, a); // { x: number; z?: number; }; >foo(b, a) : { x: number; z?: number; } > : ^^^^^ ^^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >b : { x: number; z?: number; } > : ^^^^^ ^^^^^^ ^^^ >a : { x: number; y?: number; } @@ -79,7 +79,7 @@ var r3 = foo(a, x); // { x: number; y?: number; }; >foo(a, x) : { x: number; } > : ^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >a : { x: number; y?: number; } > : ^^^^^ ^^^^^^ ^^^ >x : { x: number; } @@ -91,7 +91,7 @@ var r4 = foo(x, a); // { x: number; }; >foo(x, a) : { x: number; } > : ^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >x : { x: number; } > : ^^^^^ ^^^ >a : { x: number; y?: number; } @@ -103,7 +103,7 @@ var r5 = foo(a, y); // { x?: number; }; >foo(a, y) : { x?: number; } > : ^^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >a : { x: number; y?: number; } > : ^^^^^ ^^^^^^ ^^^ >y : { x?: number; } @@ -115,7 +115,7 @@ var r5 = foo(y, a); // { x?: number; }; >foo(y, a) : { x?: number; } > : ^^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >y : { x?: number; } > : ^^^^^^ ^^^ >a : { x: number; y?: number; } @@ -127,7 +127,7 @@ var r6 = foo(x, y); // { x?: number; }; >foo(x, y) : { x?: number; } > : ^^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >x : { x: number; } > : ^^^^^ ^^^ >y : { x?: number; } @@ -139,7 +139,7 @@ var r6 = foo(y, x); // { x?: number; }; >foo(y, x) : { x?: number; } > : ^^^^^^ ^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >y : { x?: number; } > : ^^^^^^ ^^^ >x : { x: number; } @@ -163,7 +163,7 @@ var r7 = foo(s1, s2); // (x: Object) => string; >foo(s1, s2) : (x: string) => string > : ^ ^^ ^^^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >s1 : (x: Object) => string > : ^ ^^ ^^^^^ >s2 : (x: string) => string @@ -175,7 +175,7 @@ var r8 = foo(s2, s1); // (x: string) => string; >foo(s2, s1) : (x: Object) => string > : ^ ^^ ^^^^^ >foo : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >s2 : (x: string) => string > : ^ ^^ ^^^^^ >s1 : (x: Object) => string diff --git a/tests/baselines/reference/genericCallWithObjectLiteralArgs.types b/tests/baselines/reference/genericCallWithObjectLiteralArgs.types index fc7a32d46610f..40815098e5c7b 100644 --- a/tests/baselines/reference/genericCallWithObjectLiteralArgs.types +++ b/tests/baselines/reference/genericCallWithObjectLiteralArgs.types @@ -3,7 +3,7 @@ === genericCallWithObjectLiteralArgs.ts === function foo(x: { bar: T; baz: T }) { >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >x : { bar: T; baz: T; } > : ^^^^^^^ ^^^^^^^ ^^^ >bar : T @@ -22,7 +22,7 @@ var r = foo({ bar: 1, baz: '' }); // error >foo({ bar: 1, baz: '' }) : { bar: number; baz: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >{ bar: 1, baz: '' } : { bar: number; baz: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : number @@ -40,7 +40,7 @@ var r2 = foo({ bar: 1, baz: 1 }); // T = number >foo({ bar: 1, baz: 1 }) : { bar: number; baz: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >{ bar: 1, baz: 1 } : { bar: number; baz: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : number @@ -54,21 +54,21 @@ var r2 = foo({ bar: 1, baz: 1 }); // T = number var r3 = foo({ bar: foo, baz: foo }); // T = typeof foo >r3 : { bar: (x: { bar: T; baz: T; }) => { bar: T; baz: T; }; baz: (x: { bar: T; baz: T; }) => { bar: T; baz: T; }; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ >foo({ bar: foo, baz: foo }) : { bar: (x: { bar: T; baz: T; }) => { bar: T; baz: T; }; baz: (x: { bar: T; baz: T; }) => { bar: T; baz: T; }; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >{ bar: foo, baz: foo } : { bar: (x: { bar: T; baz: T; }) => { bar: T; baz: T; }; baz: (x: { bar: T; baz: T; }) => { bar: T; baz: T; }; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ >bar : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >baz : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ var r4 = foo({ bar: 1, baz: '' }); // T = Object >r4 : { bar: Object; baz: Object; } @@ -76,7 +76,7 @@ var r4 = foo({ bar: 1, baz: '' }); // T = Object >foo({ bar: 1, baz: '' }) : { bar: Object; baz: Object; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: { bar: T; baz: T; }) => { bar: T; baz: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^ >{ bar: 1, baz: '' } : { bar: number; baz: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : number diff --git a/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types b/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types index 14050295343b5..d9ab81d967b9f 100644 --- a/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types +++ b/tests/baselines/reference/genericCallWithObjectLiteralArguments1.types @@ -3,7 +3,7 @@ === genericCallWithObjectLiteralArguments1.ts === function foo(n: { x: T; y: T }, m: T) { return m; } >foo : (n: { x: T; y: T; }, m: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >n : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -22,7 +22,7 @@ var x = foo({ x: 3, y: "" }, 4); >foo({ x: 3, y: "" }, 4) : number > : ^^^^^^ >foo : (n: { x: T; y: T; }, m: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >{ x: 3, y: "" } : { x: number; y: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -42,7 +42,7 @@ var x2 = foo({ x: 3, y: "" }, 4); >foo({ x: 3, y: "" }, 4) : number > : ^^^^^^ >foo : (n: { x: T; y: T; }, m: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >{ x: 3, y: "" } : { x: number; y: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -62,7 +62,7 @@ var x3 = foo({ x: 3, y: "" }, 4); >foo({ x: 3, y: "" }, 4) : string > : ^^^^^^ >foo : (n: { x: T; y: T; }, m: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >{ x: 3, y: "" } : { x: number; y: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -82,7 +82,7 @@ var x4 = foo({ x: "", y: 4 }, ""); >foo({ x: "", y: 4 }, "") : number > : ^^^^^^ >foo : (n: { x: T; y: T; }, m: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >{ x: "", y: 4 } : { x: string; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string @@ -102,7 +102,7 @@ var x5 = foo({ x: "", y: 4 }, ""); >foo({ x: "", y: 4 }, "") : string > : ^^^^^^ >foo : (n: { x: T; y: T; }, m: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >{ x: "", y: 4 } : { x: string; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs.types b/tests/baselines/reference/genericCallWithObjectTypeArgs.types index 7c2552afbe6b7..17f23869103a9 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgs.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgs.types @@ -30,7 +30,7 @@ class X { function foo(t: X, t2: X) { >foo : (t: X, t2: X) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >t : X > : ^^^^ >t2 : X @@ -67,7 +67,7 @@ var r = foo(c1, d1); // error >foo(c1, d1) : C > : ^ >foo : (t: X, t2: X) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >c1 : X > : ^^^^ >d1 : X @@ -79,7 +79,7 @@ var r2 = foo(c1, c1); // ok >foo(c1, c1) : C > : ^ >foo : (t: X, t2: X) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >c1 : X > : ^^^^ >c1 : X diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types index 4d2825da3dd2a..b8bd55d228780 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types @@ -33,7 +33,7 @@ class Derived2 extends Base { // returns {}[] function f(a: { x: T; y: U }) { >f : (a: { x: T; y: U; }) => (T | U)[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >a : { x: T; y: U; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -64,7 +64,7 @@ var r = f({ x: new Derived(), y: new Derived2() }); // {}[] >f({ x: new Derived(), y: new Derived2() }) : (Derived | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^^^^ >f : (a: { x: T; y: U; }) => (T | U)[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Derived @@ -86,7 +86,7 @@ var r2 = f({ x: new Base(), y: new Derived2() }); // {}[] >f({ x: new Base(), y: new Derived2() }) : (Base | Derived2)[] > : ^^^^^^^^^^^^^^^^^^^ >f : (a: { x: T; y: U; }) => (T | U)[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >{ x: new Base(), y: new Derived2() } : { x: Base; y: Derived2; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Base @@ -105,7 +105,7 @@ var r2 = f({ x: new Base(), y: new Derived2() }); // {}[] function f2(a: { x: T; y: U }) { >f2 : (a: { x: T; y: U; }) => (x: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >a : { x: T; y: U; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -132,7 +132,7 @@ var r3 = f2({ x: new Derived(), y: new Derived2() }); // Derived => Derived2 >f2({ x: new Derived(), y: new Derived2() }) : (x: Derived) => Derived2 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >f2 : (a: { x: T; y: U; }) => (x: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Derived @@ -168,7 +168,7 @@ var r4 = f2(i); // Base => Derived >f2(i) : (x: Base) => Derived > : ^ ^^^^^^^^^^^^^^^^^^ >f2 : (a: { x: T; y: U; }) => (x: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types index 9ae1727521f8c..3dfb2acda5e63 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints.types @@ -37,7 +37,7 @@ class X { function foo(t: X, t2: X) { >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : string > : ^^^^^^ >t : X @@ -76,7 +76,7 @@ var r = foo(c1, d1); >foo(c1, d1) : C > : ^ >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >c1 : X > : ^^^^ >d1 : X @@ -88,7 +88,7 @@ var r2 = foo(c1, c1); >foo(c1, c1) : C > : ^ >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >c1 : X > : ^^^^ >c1 : X @@ -96,7 +96,7 @@ var r2 = foo(c1, c1); function foo2(t: X, t2: X) { >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : X > : ^^^^ >t2 : X @@ -117,7 +117,7 @@ var r = foo2(c1, d1); >foo2(c1, d1) : C > : ^ >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >c1 : X > : ^^^^ >d1 : X @@ -129,7 +129,7 @@ var r2 = foo2(c1, c1); >foo2(c1, c1) : C > : ^ >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >c1 : X > : ^^^^ >c1 : X diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types index 03bf9f9d8b98e..94b568c904b2e 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints2.types @@ -25,7 +25,7 @@ class Derived extends Base { function f(x: { foo: T; bar: T }) { >f : (x: { foo: T; bar: T; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : { foo: T; bar: T; } > : ^^^^^^^ ^^^^^^^ ^^^ >foo : T @@ -47,7 +47,7 @@ var r = f({ foo: new Base(), bar: new Derived() }); >f({ foo: new Base(), bar: new Derived() }) : Base > : ^^^^ >f : (x: { foo: T; bar: T; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ foo: new Base(), bar: new Derived() } : { foo: Base; bar: Derived; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : Base @@ -69,7 +69,7 @@ var r2 = f({ foo: new Derived(), bar: new Derived() }); >f({ foo: new Derived(), bar: new Derived() }) : Derived > : ^^^^^^^ >f : (x: { foo: T; bar: T; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ foo: new Derived(), bar: new Derived() } : { foo: Derived; bar: Derived; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : Derived @@ -93,7 +93,7 @@ interface I { } function f2(x: I) { >f2 : (x: I) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : I > : ^^^^ @@ -115,14 +115,14 @@ var r3 = f2(i); >f2(i) : Derived > : ^^^^^^^ >f2 : (x: I) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >i : I > : ^^^^^^^^^^ function f3(x: T, y: (a: T) => T) { >f3 : (x: T, y: (a: T) => T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : (a: T) => T @@ -142,7 +142,7 @@ var r4 = f3(new Base(), x => x); >f3(new Base(), x => x) : Base > : ^^^^ >f3 : (x: T, y: (a: T) => T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >new Base() : Base > : ^^^^ >Base : typeof Base @@ -160,7 +160,7 @@ var r5 = f3(new Derived(), x => x); >f3(new Derived(), x => x) : Derived > : ^^^^^^^ >f3 : (x: T, y: (a: T) => T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >new Derived() : Derived > : ^^^^^^^ >Derived : typeof Derived @@ -176,13 +176,13 @@ var r6 = f3(null, null); // any >r6 : any >f3(null, null) : any >f3 : (x: T, y: (a: T) => T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r7 = f3(null, x => x); // any >r7 : any >f3(null, x => x) : any >f3 : (x: T, y: (a: T) => T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types index 7c56096b2fb23..b07bcdcd70205 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints3.types @@ -34,7 +34,7 @@ class Derived2 extends Base { function f(a: { x: T; y: T }) { >f : (a: { x: T; y: T; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >a : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -57,7 +57,7 @@ var r1 = f({ x: new Derived(), y: new Derived2() }); // error because neither is >f({ x: new Derived(), y: new Derived2() }) : Derived > : ^^^^^^^ >f : (a: { x: T; y: T; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Derived @@ -75,7 +75,7 @@ var r1 = f({ x: new Derived(), y: new Derived2() }); // error because neither is function f2(a: U) { >f2 : (a: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : T @@ -98,7 +98,7 @@ var r2 = f2({ x: new Derived(), y: new Derived2() }); // ok >f2({ x: new Derived(), y: new Derived2() }) : Base > : ^^^^ >f2 : (a: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Derived @@ -120,7 +120,7 @@ var r3 = f2({ x: new Derived(), y: new Derived2() }); // ok >f2({ x: new Derived(), y: new Derived2() }) : Base > : ^^^^ >f2 : (a: U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ x: new Derived(), y: new Derived2() } : { x: Derived; y: Derived2; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Derived @@ -139,7 +139,7 @@ var r3 = f2({ x: new Derived(), y: new Derived2() }); // ok function f3(y: (a: T) => T, x: T) { >f3 : (y: (a: T) => T, x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >y : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -161,7 +161,7 @@ var r4 = f3(x => x, new Base()); >f3(x => x, new Base()) : Base > : ^^^^ >f3 : (y: (a: T) => T, x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x => x : (x: Base) => Base > : ^ ^^^^^^^^^^^^^^^ >x : Base @@ -179,7 +179,7 @@ var r5 = f3(x => x, new Derived()); >f3(x => x, new Derived()) : Derived > : ^^^^^^^ >f3 : (y: (a: T) => T, x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x => x : (x: Derived) => Derived > : ^ ^^^^^^^^^^^^^^^^^^^^^ >x : Derived @@ -197,7 +197,7 @@ var r6 = f3(x => x, null); >f3(x => x, null) : any > : ^^^ >f3 : (y: (a: T) => T, x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.types index 0ce908833d273..1c19dc4bedec6 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.types @@ -27,7 +27,7 @@ class D { function foo(t: T, t2: U) { >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >t : T > : ^ >t2 : U @@ -56,7 +56,7 @@ var r = foo(c, d); >foo(c, d) : (x: C) => D > : ^ ^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >c : C > : ^ >d : D @@ -68,7 +68,7 @@ var r2 = foo(d, c); // error because C does not extend D >foo(d, c) : (x: D) => D > : ^ ^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >d : D > : ^ >c : C @@ -80,7 +80,7 @@ var r3 = foo(c, { x: '', foo: c }); >foo(c, { x: '', foo: c }) : (x: C) => { x: string; foo: C; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >c : C > : ^ >{ x: '', foo: c } : { x: string; foo: C; } @@ -100,7 +100,7 @@ var r4 = foo(null, null); >foo(null, null) : (x: any) => any > : ^ ^^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ var r5 = foo({}, null); >r5 : (x: {}) => any @@ -108,7 +108,7 @@ var r5 = foo({}, null); >foo({}, null) : (x: {}) => any > : ^ ^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >{} : {} > : ^^ @@ -118,7 +118,7 @@ var r6 = foo(null, {}); >foo(null, {}) : (x: any) => {} > : ^ ^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >{} : {} > : ^^ @@ -128,7 +128,7 @@ var r7 = foo({}, {}); >foo({}, {}) : (x: {}) => {} > : ^ ^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >{} : {} > : ^^ >{} : {} @@ -140,7 +140,7 @@ var r8 = foo(() => { }, () => { }); >foo(() => { }, () => { }) : (x: () => void) => () => void > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >() => { } : () => void > : ^^^^^^^^^^ >() => { } : () => void @@ -152,7 +152,7 @@ var r9 = foo(() => { }, () => 1); >foo(() => { }, () => 1) : (x: () => void) => () => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >() => { } : () => void > : ^^^^^^^^^^ >() => 1 : () => number @@ -162,7 +162,7 @@ var r9 = foo(() => { }, () => 1); function other() { >other : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var r4 = foo(c, d); >r4 : (x: C) => D @@ -170,7 +170,7 @@ function other() { >foo(c, d) : (x: C) => D > : ^ ^^^^^^^^^ >foo : (t: T_1, t2: U_1) => (x: T_1) => U_1 -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >c : C > : ^ >d : D @@ -182,7 +182,7 @@ function other() { >foo(c, d) : (x: T) => U > : ^ ^^^^^^^^^ >foo : (t: T_1, t2: U_1) => (x: T_1) => U_1 -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >c : C > : ^ >d : D diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.types index 68e2d93969126..8167f3c17237a 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.types @@ -27,7 +27,7 @@ class D { function foo(t: T, t2: U) { >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >t : T > : ^ >t2 : U @@ -56,7 +56,7 @@ var r2 = foo(d, c); // the constraints are self-referencing, no downstream error >foo(d, c) : (x: D) => D > : ^ ^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >d : D > : ^ >c : C @@ -68,7 +68,7 @@ var r9 = foo(() => 1, () => { }); // the constraints are self-referencing, no do >foo(() => 1, () => { }) : (x: () => number) => () => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (t: T, t2: U) => (x: T) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ >() => 1 : () => number > : ^^^^^^^^^^^^ >1 : 1 @@ -78,7 +78,7 @@ var r9 = foo(() => 1, () => { }); // the constraints are self-referencing, no do function other() { >other : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var r5 = foo(c, d); // error >r5 : (x: T) => U @@ -86,7 +86,7 @@ function other() { >foo(c, d) : (x: T) => U > : ^ ^^^^^^^^^ >foo : (t: T_1, t2: U_1) => (x: T_1) => U_1 -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >c : C > : ^ >d : D diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types index 5c86d6decca34..b286a32a8fb4b 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types @@ -5,7 +5,7 @@ function foo(x: T) { >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -33,13 +33,13 @@ var r = foo(a); >foo(a) : { [x: string]: Object; [x: number]: Date; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : { [x: string]: Object; [x: number]: Date; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function other(arg: T) { >other : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -62,7 +62,7 @@ function other(arg: T) { >foo(b) : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types index c7189c67556b1..8d484aafb5cb4 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types @@ -5,7 +5,7 @@ function foo(x: T) { >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -16,7 +16,7 @@ function foo(x: T) { function other(arg: T) { >other : (arg: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -39,14 +39,14 @@ function other(arg: T) { >foo(b) : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function other3(arg: T) { >other3 : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -69,7 +69,7 @@ function other3(arg: T) { >foo(b) : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: string]: Object; [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types index 02413c04bfac7..506f819ad2db1 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types @@ -5,7 +5,7 @@ function foo(x: T = null) { return x; } // ok >foo : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^ >x : T > : ^ >x : T @@ -13,7 +13,7 @@ function foo(x: T = null) { return x; } // ok function foo2(x: T = undefined) { return x; } // ok >foo2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^ >x : T > : ^ >undefined : undefined @@ -23,7 +23,7 @@ function foo2(x: T = undefined) { return x; } // ok function foo3(x: T = 1) { } // error >foo3 : (x?: T) => void -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ >x : T > : ^ >1 : 1 @@ -31,7 +31,7 @@ function foo3(x: T = 1) { } // error function foo4(x: T, y: U = x) { } // error >foo4 : (x: T, y?: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -41,7 +41,7 @@ function foo4(x: T, y: U = x) { } // error function foo5(x: U, y: T = x) { } // ok >foo5 : (x: U, y?: T) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >x : U > : ^ >y : T @@ -51,7 +51,7 @@ function foo5(x: U, y: T = x) { } // ok function foo6(x: T, y: U, z: V = y) { } // error >foo6 : (x: T, y: U, z?: V) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -63,7 +63,7 @@ function foo6(x: T, y: U, z: V = y) { } // error function foo7(x: V, y: U = x) { } // should be ok >foo7 : (x: V, y?: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >x : V > : ^ >y : U diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types index 65c6fb0c1a17d..ddc6dcb3b6b34 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types @@ -5,7 +5,7 @@ function foo(x: T) { >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -26,13 +26,13 @@ var r = foo(a); >foo(a) : { [x: number]: Date; } > : ^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : { [x: number]: Date; } > : ^^^^^^^^^^^^^^^^^^^^^^ function other(arg: T) { >other : (arg: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -48,14 +48,14 @@ function other(arg: T) { >foo(b) : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ } function other2(arg: T) { >other2 : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -71,7 +71,7 @@ function other2(arg: T) { >foo(b) : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ @@ -88,7 +88,7 @@ function other2(arg: T) { function other3(arg: T) { >other3 : (arg: T) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -104,7 +104,7 @@ function other3(arg: T) { >foo(b) : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types index 53001c07b07ab..2e4d783567036 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types @@ -5,7 +5,7 @@ function foo(x: T) { >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -26,13 +26,13 @@ var r = foo(a); >foo(a) : { [x: string]: Date; } > : ^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : { [x: string]: Date; } > : ^^^^^^^^^^^^^^^^^^^^^^ function other(arg: T) { >other : (arg: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -48,14 +48,14 @@ function other(arg: T) { >foo(b) : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ } function other2(arg: T) { >other2 : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -71,7 +71,7 @@ function other2(arg: T) { >foo(b) : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ @@ -88,7 +88,7 @@ function other2(arg: T) { function other3(arg: T) { >other3 : (arg: T) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -104,7 +104,7 @@ function other3(arg: T) { >foo(b) : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types index 0575cf67290aa..48a714f4c493f 100644 --- a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types +++ b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments.types @@ -48,7 +48,7 @@ module NonGenericParameter { var b: { new (x: T): T }; >b : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -60,7 +60,7 @@ module NonGenericParameter { >foo4 : (cb: typeof a) => boolean > : ^ ^^ ^^^^^^^^^^^^ >b : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ } module GenericParameter { @@ -69,7 +69,7 @@ module GenericParameter { function foo5(cb: { new(x: T): string; new(x: number): T }) { >foo5 : (cb: { new (x: T): string; new (x: number): T; }) => { new (x: T): string; new (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >cb : { new (x: T): string; new (x: number): T; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >x : T @@ -96,17 +96,17 @@ module GenericParameter { } var r5 = foo5(a); // new{} => string; new(x:number) => {} >r5 : { new (x: boolean): string; new (x: number): boolean; } -> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >foo5(a) : { new (x: boolean): string; new (x: number): boolean; } -> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >foo5 : (cb: { new (x: T): string; new (x: number): T; }) => { new (x: T): string; new (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >a : { new (x: boolean): string; new (x: number): boolean; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ var b: { new(x: T): string; new(x: number): T; } >b : { new (x: T): string; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -114,17 +114,17 @@ module GenericParameter { var r7 = foo5(b); // new any => string; new(x:number) => any >r7 : { new (x: unknown): string; new (x: number): unknown; } -> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >foo5(b) : { new (x: unknown): string; new (x: number): unknown; } -> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >foo5 : (cb: { new (x: T): string; new (x: number): T; }) => { new (x: T): string; new (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b : { new (x: T): string; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ function foo6(cb: { new(x: T): string; new(x: T, y?: T): string }) { >foo6 : (cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : { new (x: T): string; new (x: T, y?: T): string; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T @@ -145,7 +145,7 @@ module GenericParameter { >foo6(a) : { new (x: boolean): string; new (x: boolean, y?: boolean): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo6 : (cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { new (x: boolean): string; new (x: number): boolean; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ @@ -155,13 +155,13 @@ module GenericParameter { >foo6(b) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo6 : (cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >b : { new (x: T): string; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ function foo7(x:T, cb: { new(x: T): string; new(x: T, y?: T): string }) { >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T > : ^ >cb : { new (x: T): string; new (x: T, y?: T): string; } @@ -184,15 +184,15 @@ module GenericParameter { >foo7(1, b) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >b : { new (x: T): string; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ var c: { new (x: T): string; (x: number): T; } >c : { (x: number): T; new (x: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -200,7 +200,7 @@ module GenericParameter { var c2: { new (x: T): string; new(x: number): T; } >c2 : { new (x: T): string; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -212,11 +212,11 @@ module GenericParameter { >foo7(1, c) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >c : { (x: number): T; new (x: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ var r15 = foo7(1, c2); // new any => string; new(x:any, y?:any) => string >r15 : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } @@ -224,9 +224,9 @@ module GenericParameter { >foo7(1, c2) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >c2 : { new (x: T): string; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ } diff --git a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types index 64199177e33c8..5d234f8f0c1fa 100644 --- a/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types +++ b/tests/baselines/reference/genericCallWithOverloadedConstructorTypedArguments2.types @@ -36,7 +36,7 @@ module NonGenericParameter { var b: { new (x: T): U } >b : new (x: T) => U -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -48,7 +48,7 @@ module NonGenericParameter { >foo4 : (cb: typeof a) => { new (x: boolean): boolean; new (x: string): string; } > : ^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >b : new (x: T) => U -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ } module GenericParameter { @@ -57,7 +57,7 @@ module GenericParameter { function foo5(cb: { new(x: T): string; new(x: number): T }) { >foo5 : (cb: { new (x: T): string; new (x: number): T; }) => { new (x: T): string; new (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >cb : { new (x: T): string; new (x: number): T; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >x : T @@ -72,23 +72,23 @@ module GenericParameter { var a: { new (x: T): T }; >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var r6 = foo5(a); // ok >r6 : { new (x: unknown): string; new (x: number): unknown; } -> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >foo5(a) : { new (x: unknown): string; new (x: number): unknown; } -> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >foo5 : (cb: { new (x: T): string; new (x: number): T; }) => { new (x: T): string; new (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo6(cb: { new(x: T): string; new(x: T, y?: T): string }) { >foo6 : (cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : { new (x: T): string; new (x: T, y?: T): string; } > : ^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T @@ -105,7 +105,7 @@ module GenericParameter { var b: { new (x: T, y: T): string }; >b : new (x: T, y: T) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -117,13 +117,13 @@ module GenericParameter { >foo6(b) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo6 : (cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >b : new (x: T, y: T) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ function foo7(x:T, cb: { new(x: T): string; new(x: T, y?: T): string }) { >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T > : ^ >cb : { new (x: T): string; new (x: T, y?: T): string; } @@ -146,15 +146,15 @@ module GenericParameter { >foo7(1, a) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var c: { new(x: T): number; new(x: number): T; } >c : { new (x: T): number; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -166,9 +166,9 @@ module GenericParameter { >foo7(1, c) : { new (x: unknown): string; new (x: unknown, y?: unknown): string; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { new (x: T): string; new (x: T, y?: T): string; }) => { new (x: T): string; new (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >c : { new (x: T): number; new (x: number): T; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ } diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types index 896f081b5c833..1ec86b300b265 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments.types @@ -52,7 +52,7 @@ module NonGenericParameter { >foo4 : (cb: typeof a) => { (x: boolean): boolean; (x: string): string; } > : ^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -77,7 +77,7 @@ module GenericParameter { function foo5(cb: { (x: T): string; (x: number): T }) { >foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >cb : { (x: T): string; (x: number): T; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : T @@ -92,11 +92,11 @@ module GenericParameter { var r5 = foo5(x => x); // any => string (+1 overload) [inferences are made for T, but lambda not contextually typed]. T is any >r5 : { (x: any): string; (x: number): any; } -> : ^^^ ^^^^^^^^ ^^^ ^^ ^^^^^^^^^ +> : ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ >foo5(x => x) : { (x: any): string; (x: number): any; } -> : ^^^ ^^^^^^^^ ^^^ ^^ ^^^^^^^^^ +> : ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ >foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -104,7 +104,7 @@ module GenericParameter { var a: { (x: T): string; (x: number): T; } >a : { (x: T): string; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -112,17 +112,17 @@ module GenericParameter { var r7 = foo5(a); // any => string (+1 overload) >r7 : { (x: unknown): string; (x: number): unknown; } -> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ >foo5(a) : { (x: unknown): string; (x: number): unknown; } -> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ >foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a : { (x: T): string; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ function foo6(cb: { (x: T): string; (x: T, y?: T): string }) { >foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : { (x: T): string; (x: T, y?: T): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T @@ -143,7 +143,7 @@ module GenericParameter { >foo6(x => x) : { (x: any): string; (x: any, y?: any): string; } > : ^^^ ^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ >foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -155,9 +155,9 @@ module GenericParameter { >foo6((x: T) => '') : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -169,9 +169,9 @@ module GenericParameter { >foo6((x: T, y?: T) => '') : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >(x: T, y?: T) => '' : (x: T, y?: T) => string -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^ >x : T > : ^ >y : T @@ -181,7 +181,7 @@ module GenericParameter { function foo7(x:T, cb: { (x: T): string; (x: T, y?: T): string }) { >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T > : ^ >cb : { (x: T): string; (x: T, y?: T): string; } @@ -204,7 +204,7 @@ module GenericParameter { >foo7(1, (x) => x) : { (x: any): string; (x: any, y?: any): string; } > : ^^^ ^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >(x) => x : (x: any) => any @@ -218,11 +218,11 @@ module GenericParameter { >foo7(1, (x: T) => '') : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -230,7 +230,7 @@ module GenericParameter { var a: { (x: T): string; (x: number): T; } >a : { (x: T): string; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -242,9 +242,9 @@ module GenericParameter { >foo7(1, a) : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >a : { (x: T): string; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ } diff --git a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types index bc9696de2c31d..1516255ba9804 100644 --- a/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types +++ b/tests/baselines/reference/genericCallWithOverloadedFunctionTypedArguments2.types @@ -42,7 +42,7 @@ module NonGenericParameter { >foo4 : (cb: typeof a) => { (x: boolean): boolean; (x: string): string; } > : ^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >(x: T) => { var r: U; return r } : (x: T) => U -> : ^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >x : T > : ^ >r : U @@ -57,7 +57,7 @@ module GenericParameter { function foo5(cb: { (x: T): string; (x: number): T }) { >foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >cb : { (x: T): string; (x: number): T; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : T @@ -72,13 +72,13 @@ module GenericParameter { var r6 = foo5((x: T) => x); // ok >r6 : { (x: unknown): string; (x: number): unknown; } -> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ >foo5((x: T) => x) : { (x: unknown): string; (x: number): unknown; } -> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ >foo5 : (cb: { (x: T): string; (x: number): T; }) => { (x: T): string; (x: number): T; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -86,7 +86,7 @@ module GenericParameter { function foo6(cb: { (x: T): string; (x: T, y?: T): string }) { >foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >cb : { (x: T): string; (x: T, y?: T): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T @@ -107,9 +107,9 @@ module GenericParameter { >foo6((x: T, y: T) => '') : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo6 : (cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >(x: T, y: T) => '' : (x: T, y: T) => string -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : T @@ -119,7 +119,7 @@ module GenericParameter { function foo7(x:T, cb: { (x: T): string; (x: T, y?: T): string }) { >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >x : T > : ^ >cb : { (x: T): string; (x: T, y?: T): string; } @@ -142,11 +142,11 @@ module GenericParameter { >foo7(1, (x: T) => x) : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -154,7 +154,7 @@ module GenericParameter { var a: { (x: T): number; (x: number): T; } >a : { (x: T): number; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >x : number @@ -166,9 +166,9 @@ module GenericParameter { >foo7(1, a) : { (x: unknown): string; (x: unknown, y?: unknown): string; } > : ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >foo7 : (x: T, cb: { (x: T): string; (x: T, y?: T): string; }) => { (x: T): string; (x: T, y?: T): string; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >1 : 1 > : ^ >a : { (x: T): number; (x: number): T; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ } diff --git a/tests/baselines/reference/genericCallWithinOwnBodyCastTypeParameterIdentity.types b/tests/baselines/reference/genericCallWithinOwnBodyCastTypeParameterIdentity.types index b0537862ac990..7ca9f0fcb6839 100644 --- a/tests/baselines/reference/genericCallWithinOwnBodyCastTypeParameterIdentity.types +++ b/tests/baselines/reference/genericCallWithinOwnBodyCastTypeParameterIdentity.types @@ -4,7 +4,7 @@ interface Thenable { then( >then : (onFulfilled: (value: Value) => V | Thenable) => Thenable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ onFulfilled: (value: Value) => V | Thenable, >onFulfilled : (value: Value) => V | Thenable @@ -17,9 +17,9 @@ interface Thenable { const toThenable = (fn: (input: Input) => Result | Thenable) => >toThenable : (fn: (input: Input) => Result | Thenable) => (input: Input) => Thenable -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >(fn: (input: Input) => Result | Thenable) => (input: Input): Thenable => { const result = fn(input) return { then(onFulfilled: (value: Result) => V | Thenable) { return toThenable(onFulfilled)(result as Result) } }; } : (fn: (input: Input) => Result | Thenable) => (input: Input) => Thenable -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >fn : (input: Input) => Result | Thenable > : ^ ^^ ^^^^^ >input : Input @@ -43,11 +43,11 @@ const toThenable = (fn: (input: Input) => Result | Thenable{ then(onFulfilled: (value: Result) => V | Thenable) { return toThenable(onFulfilled)(result as Result) } } : { then(onFulfilled: (value: Result) => V | Thenable): Thenable; } -> : ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ then(onFulfilled: (value: Result) => V | Thenable) { >then : (onFulfilled: (value: Result) => V | Thenable) => Thenable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >onFulfilled : (value: Result) => V | Thenable > : ^ ^^ ^^^^^ >value : Result @@ -59,7 +59,7 @@ const toThenable = (fn: (input: Input) => Result | ThenabletoThenable(onFulfilled) : (input: Result) => Thenable > : ^ ^^^^^^^^^^^^^ ^ >toThenable : (fn: (input: Input) => Result | Thenable) => (input: Input) => Thenable -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >onFulfilled : (value: Result) => V | Thenable > : ^ ^^ ^^^^^ >result as Result : Result @@ -72,9 +72,9 @@ const toThenable = (fn: (input: Input) => Result | Thenable(fn: (input: Input) => Result | Thenable) => >toThenableInferred : (fn: (input: Input) => Result | Thenable) => (input: Input) => Thenable -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >(fn: (input: Input) => Result | Thenable) => (input: Input): Thenable => { const result = fn(input) return { then(onFulfilled) { return toThenableInferred(onFulfilled)(result as Result) } }; } : (fn: (input: Input) => Result | Thenable) => (input: Input) => Thenable -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >fn : (input: Input) => Result | Thenable > : ^ ^^ ^^^^^ >input : Input @@ -112,7 +112,7 @@ const toThenableInferred = (fn: (input: Input) => Result | Thenab >toThenableInferred(onFulfilled) : (input: Result) => Thenable > : ^ ^^^^^^^^^^^^^ ^ >toThenableInferred : (fn: (input: Input) => Result | Thenable) => (input: Input) => Thenable -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^ >onFulfilled : (value: Result) => V | Thenable > : ^ ^^^^^^^^^^^^^^ ^ >result as Result : Result diff --git a/tests/baselines/reference/genericCallWithoutArgs.types b/tests/baselines/reference/genericCallWithoutArgs.types index 5cc71ee577575..15e0f635a04eb 100644 --- a/tests/baselines/reference/genericCallWithoutArgs.types +++ b/tests/baselines/reference/genericCallWithoutArgs.types @@ -3,7 +3,7 @@ === genericCallWithoutArgs.ts === function f(x: X, y: Y) { >f : (x: X, y: Y) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : X > : ^ >y : Y @@ -16,7 +16,7 @@ f. >f : (x: number, y: string) => void > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ >f : (x: X, y: Y) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ > : any > : ^^^ diff --git a/tests/baselines/reference/genericCallbackInvokedInsideItsContainingFunction1.types b/tests/baselines/reference/genericCallbackInvokedInsideItsContainingFunction1.types index d13273039ed52..e677a16311a62 100644 --- a/tests/baselines/reference/genericCallbackInvokedInsideItsContainingFunction1.types +++ b/tests/baselines/reference/genericCallbackInvokedInsideItsContainingFunction1.types @@ -3,7 +3,7 @@ === genericCallbackInvokedInsideItsContainingFunction1.ts === function foo(x:T, y:U, f: (v: T) => U) { >foo : (x: T, y: U, f: (v: T) => U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/genericCapturingFunctionNarrowing.types b/tests/baselines/reference/genericCapturingFunctionNarrowing.types index a668a4ced463c..1646d61f99436 100644 --- a/tests/baselines/reference/genericCapturingFunctionNarrowing.types +++ b/tests/baselines/reference/genericCapturingFunctionNarrowing.types @@ -3,7 +3,7 @@ === genericCapturingFunctionNarrowing.ts === function needsToNarrowTheType(thing: First | SubFirst | SubFirstMore | Second) { >needsToNarrowTheType : (thing: First | SubFirst | SubFirstMore | Second) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >foo : string > : ^^^^^^ >bar : string diff --git a/tests/baselines/reference/genericChainedCalls.types b/tests/baselines/reference/genericChainedCalls.types index c6d5741571c44..10cba7da2c45a 100644 --- a/tests/baselines/reference/genericChainedCalls.types +++ b/tests/baselines/reference/genericChainedCalls.types @@ -4,7 +4,7 @@ interface I1 { func(callback: (value: T) => U): I1; >func : (callback: (value: T) => U) => I1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -21,19 +21,19 @@ var r1 = v1.func(num => num.toString()) >v1.func(num => num.toString()) .func(str => str.length) // error, number doesn't have a length .func(num => num.toString()) : I1 > : ^^^^^^^^^^ >v1.func(num => num.toString()) .func(str => str.length) // error, number doesn't have a length .func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >v1.func(num => num.toString()) .func(str => str.length) : I1 > : ^^^^^^^^^^ >v1.func(num => num.toString()) .func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >v1.func(num => num.toString()) : I1 > : ^^^^^^^^^^ >v1.func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >v1 : I1 > : ^^^^^^^^^^ >func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >num => num.toString() : (num: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >num : number @@ -49,7 +49,7 @@ var r1 = v1.func(num => num.toString()) .func(str => str.length) // error, number doesn't have a length >func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >str => str.length : (str: number) => any > : ^ ^^^^^^^^^^^^^^^^ >str : number @@ -63,7 +63,7 @@ var r1 = v1.func(num => num.toString()) .func(num => num.toString()) >func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >num => num.toString() : (num: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >num : number @@ -83,11 +83,11 @@ var s1 = v1.func(num => num.toString()) >v1.func(num => num.toString()) : I1 > : ^^^^^^^^^^ >v1.func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >v1 : I1 > : ^^^^^^^^^^ >func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >num => num.toString() : (num: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >num : number @@ -107,11 +107,11 @@ var s2 = s1.func(str => str.length) // should also error >s1.func(str => str.length) : I1 > : ^^^^^^^^^^ >s1.func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >s1 : I1 > : ^^^^^^^^^^ >func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >str => str.length : (str: number) => any > : ^ ^^^^^^^^^^^^^^^^ >str : number @@ -129,11 +129,11 @@ var s3 = s2.func(num => num.toString()) >s2.func(num => num.toString()) : I1 > : ^^^^^^^^^^ >s2.func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >s2 : I1 > : ^^^^^^^^^^ >func : (callback: (value: number) => U) => I1 -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ >num => num.toString() : (num: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >num : number diff --git a/tests/baselines/reference/genericClassWithFunctionTypedMemberArguments.types b/tests/baselines/reference/genericClassWithFunctionTypedMemberArguments.types index 5007c05352a37..2ae85c7807a63 100644 --- a/tests/baselines/reference/genericClassWithFunctionTypedMemberArguments.types +++ b/tests/baselines/reference/genericClassWithFunctionTypedMemberArguments.types @@ -14,7 +14,7 @@ module ImmediatelyFix { foo(x: (a: T) => T) { >foo : (x: (a: T) => T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -48,7 +48,7 @@ module ImmediatelyFix { >foo : (x: (a: T) => T) => T > : ^^^^ ^^^ ^^^^^^^^^^^^^^^ >(x: U) => '' : (x: U) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : U > : ^ >'' : "" @@ -66,7 +66,7 @@ module ImmediatelyFix { >foo : (x: (a: T) => T) => T > : ^^^^ ^^^ ^^^^^^^^^^^^^^^ >(x: U) => '' : (x: U) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : U > : ^ >'' : "" @@ -124,13 +124,13 @@ module ImmediatelyFix { >c2.foo((x: U) => 1) : number > : ^^^^^^ >c2.foo : (x: (a: number) => number) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ >c2 : C2 > : ^^^^^^^^^^ >foo : (x: (a: number) => number) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ >(x: U) => 1 : (x: U) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : U > : ^ >1 : 1 @@ -142,11 +142,11 @@ module ImmediatelyFix { >c2.foo(x => 1) : number > : ^^^^^^ >c2.foo : (x: (a: number) => number) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ >c2 : C2 > : ^^^^^^^^^^ >foo : (x: (a: number) => number) => number -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ >x => 1 : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -165,7 +165,7 @@ module WithCandidates { foo2(x: T, cb: (a: T) => U) { >foo2 : (x: T, cb: (a: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >cb : (a: T) => U @@ -201,7 +201,7 @@ module WithCandidates { >1 : 1 > : ^ >function (a: Z) { return '' } : (a: Z) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : Z > : ^ >'' : "" @@ -241,7 +241,7 @@ module WithCandidates { >'' : "" > : ^^ >(a: Z) => 1 : (a: Z) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : Z > : ^ >1 : 1 @@ -283,15 +283,15 @@ module WithCandidates { >c2.foo3(1, (a: Z) => '', '') : string > : ^^^^^^ >c2.foo3 : (x: number, cb: (a: number) => string, y: string) => string -> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >c2 : C2 > : ^^^^^^^^^^^^^^^^^^ >foo3 : (x: number, cb: (a: number) => string, y: string) => string -> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >(a: Z) => '' : (a: Z) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : Z > : ^ >'' : "" @@ -305,11 +305,11 @@ module WithCandidates { >c2.foo3(1, function (a) { return '' }, '') : string > : ^^^^^^ >c2.foo3 : (x: number, cb: (a: number) => string, y: string) => string -> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >c2 : C2 > : ^^^^^^^^^^^^^^^^^^ >foo3 : (x: number, cb: (a: number) => string, y: string) => string -> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >function (a) { return '' } : (a: number) => string @@ -327,7 +327,7 @@ module WithCandidates { foo3(x: T, cb: (a: T) => U, y: U) { >foo3 : (x: T, cb: (a: T) => U, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >cb : (a: T) => U @@ -352,7 +352,7 @@ module WithCandidates { function other(t: T, u: U) { >other : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types index 6939c6ba441ca..7ad675a5d2026 100644 --- a/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types +++ b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types @@ -47,7 +47,7 @@ module Class { foo(t: X, t2: X) { >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : string > : ^^^^^^ >t : X @@ -127,7 +127,7 @@ module Class { foo2(t: X, t2: X) { >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : X > : ^^^^ >t2 : X @@ -189,7 +189,7 @@ module Interface { foo(t: X, t2: X): T; >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ >t : X @@ -228,11 +228,11 @@ module Interface { >g.foo(c1, d1) : C > : ^ >g.foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g : G<{ x: string; y: string; }> > : ^^^^^^^ ^^^^^ ^^^^ >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >c1 : X > : ^^^^ >d1 : X @@ -244,11 +244,11 @@ module Interface { >g.foo(c1, c1) : C > : ^ >g.foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g : G<{ x: string; y: string; }> > : ^^^^^^^ ^^^^^ ^^^^ >foo : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >c1 : X > : ^^^^ >c1 : X @@ -257,7 +257,7 @@ module Interface { interface G2 { foo2(t: X, t2: X): T; >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : X > : ^^^^ >t2 : X @@ -274,11 +274,11 @@ module Interface { >g2.foo2(c1, d1) : C > : ^ >g2.foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g2 : G2 > : ^^^^^ >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >c1 : X > : ^^^^ >d1 : X @@ -290,11 +290,11 @@ module Interface { >g2.foo2(c1, c1) : C > : ^ >g2.foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g2 : G2 > : ^^^^^ >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >c1 : X > : ^^^^ >c1 : X diff --git a/tests/baselines/reference/genericClassWithStaticFactory.types b/tests/baselines/reference/genericClassWithStaticFactory.types index 129d154997155..434e8bdd0cf69 100644 --- a/tests/baselines/reference/genericClassWithStaticFactory.types +++ b/tests/baselines/reference/genericClassWithStaticFactory.types @@ -55,7 +55,7 @@ module Editor { >this.listFactory.MakeEntry(data) : List > : ^^^^^^^ >this.listFactory.MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >this.listFactory : ListFactory > : ^^^^^^^^^^^^^^ >this : this @@ -63,7 +63,7 @@ module Editor { >listFactory : ListFactory > : ^^^^^^^^^^^^^^ >MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >data : T > : ^ @@ -331,7 +331,7 @@ module Editor { >this.listFactory.MakeEntry(data) : List > : ^^^^^^^ >this.listFactory.MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >this.listFactory : ListFactory > : ^^^^^^^^^^^^^^ >this : this @@ -339,7 +339,7 @@ module Editor { >listFactory : ListFactory > : ^^^^^^^^^^^^^^ >MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >data : T > : ^ @@ -449,7 +449,7 @@ module Editor { >this.listFactory.RemoveEntry(this.next) : List > : ^^^^^^^ >this.listFactory.RemoveEntry : (entry: List) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >this.listFactory : ListFactory > : ^^^^^^^^^^^^^^ >this : this @@ -457,7 +457,7 @@ module Editor { >listFactory : ListFactory > : ^^^^^^^^^^^^^^ >RemoveEntry : (entry: List) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >this.next : List > : ^^^^^^^ >this : this @@ -558,7 +558,7 @@ module Editor { >this.listFactory.MakeEntry(data) : List > : ^^^^^^^ >this.listFactory.MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >this.listFactory : ListFactory > : ^^^^^^^^^^^^^^ >this : this @@ -566,7 +566,7 @@ module Editor { >listFactory : ListFactory > : ^^^^^^^^^^^^^^ >MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >data : T > : ^ @@ -710,7 +710,7 @@ module Editor { >this.listFactory.MakeEntry(data) : List > : ^^^^^^^ >this.listFactory.MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >this.listFactory : ListFactory > : ^^^^^^^^^^^^^^ >this : this @@ -718,7 +718,7 @@ module Editor { >listFactory : ListFactory > : ^^^^^^^^^^^^^^ >MakeEntry : (data: T_1) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >data : T > : ^ @@ -742,7 +742,7 @@ module Editor { public MakeHead(): List { >MakeHead : () => List -> : ^ ^^^^^^^ +> : ^^^^^^^^^ var entry: List = new List(true, null); >entry : List @@ -785,7 +785,7 @@ module Editor { public MakeEntry(data: T): List { >MakeEntry : (data: T) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : T > : ^ @@ -832,7 +832,7 @@ module Editor { public RemoveEntry(entry: List): List { >RemoveEntry : (entry: List) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >entry : List > : ^^^^^^^ diff --git a/tests/baselines/reference/genericClasses4.types b/tests/baselines/reference/genericClasses4.types index 49a7acc95c1ba..b7ff03ff8ee58 100644 --- a/tests/baselines/reference/genericClasses4.types +++ b/tests/baselines/reference/genericClasses4.types @@ -14,7 +14,7 @@ class Vec2_T fmap(f: (a: A) => B): Vec2_T { >fmap : (f: (a: A) => B) => Vec2_T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -66,7 +66,7 @@ class Vec2_T } apply(f: Vec2_T<(a: A) => B>): Vec2_T { >apply : (f: Vec2_T<(a: A) => B>) => Vec2_T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : Vec2_T<(a: A) => B> > : ^^^^^^^^ ^^ ^^^^^ ^ >a : A diff --git a/tests/baselines/reference/genericClassesRedeclaration.types b/tests/baselines/reference/genericClassesRedeclaration.types index 844d9f296c112..ab442bde8e243 100644 --- a/tests/baselines/reference/genericClassesRedeclaration.types +++ b/tests/baselines/reference/genericClassesRedeclaration.types @@ -12,7 +12,7 @@ declare module TypeScript { } function createIntrinsicsObject(): IIndexable; >createIntrinsicsObject : { (): IIndexable; (): IIndexable; } -> : ^^^ ^^^^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^^ ^^^ interface IHashTable { getAllKeys(): string[]; @@ -264,7 +264,7 @@ declare module TypeScript { } function createIntrinsicsObject(): IIndexable; >createIntrinsicsObject : { (): IIndexable; (): IIndexable; } -> : ^^^ ^^^^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ interface IHashTable { getAllKeys(): string[]; diff --git a/tests/baselines/reference/genericCombinators2.types b/tests/baselines/reference/genericCombinators2.types index e5e3170a82bb2..22b5c97e9e146 100644 --- a/tests/baselines/reference/genericCombinators2.types +++ b/tests/baselines/reference/genericCombinators2.types @@ -26,7 +26,7 @@ interface Collection { interface Combinators { map(c: Collection, f: (x: T, y: U) => any): Collection; >map : { (c: Collection, f: (x: T, y: U) => any): Collection; (c: Collection, f: (x: T_1, y: U_1) => V): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c : Collection > : ^^^^^^^^^^^^^^^^ >f : (x: T, y: U) => any @@ -38,7 +38,7 @@ interface Combinators { map(c: Collection, f: (x: T, y: U) => V): Collection; >map : { (c: Collection, f: (x: T_1, y: U_1) => any): Collection; (c: Collection, f: (x: T, y: U) => V): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c : Collection > : ^^^^^^^^^^^^^^^^ >f : (x: T, y: U) => V @@ -81,11 +81,11 @@ var r5a = _.map(c2, (x, y) => { return x.toFixed() }); >_.map(c2, (x, y) => { return x.toFixed() }) : Collection > : ^^^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T, y: U) => any): Collection; (c: Collection, f: (x: T, y: U) => V): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T, y: U) => any): Collection; (c: Collection, f: (x: T, y: U) => V): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >(x, y) => { return x.toFixed() } : (x: number, y: string) => string @@ -109,11 +109,11 @@ var r5b = _.map(c2, rf1); >_.map(c2, rf1) : Collection > : ^^^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T, y: U) => any): Collection; (c: Collection, f: (x: T, y: U) => V): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T, y: U) => any): Collection; (c: Collection, f: (x: T, y: U) => V): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >rf1 : (x: number, y: string) => string diff --git a/tests/baselines/reference/genericConditionalConstrainedToUnknownNotAssignableToConcreteObject.types b/tests/baselines/reference/genericConditionalConstrainedToUnknownNotAssignableToConcreteObject.types index 389511c415c96..c45ac36dcefde 100644 --- a/tests/baselines/reference/genericConditionalConstrainedToUnknownNotAssignableToConcreteObject.types +++ b/tests/baselines/reference/genericConditionalConstrainedToUnknownNotAssignableToConcreteObject.types @@ -20,7 +20,7 @@ type FunctionsObj = { function g< >g : , M extends keyof T>(a2: ReturnType, x: A) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ T extends FunctionsObj, M extends keyof T @@ -43,7 +43,7 @@ function g< function g2< >g2 : , M extends keyof T>(a2: ReturnType) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ T extends FunctionsObj, M extends keyof T diff --git a/tests/baselines/reference/genericConstraint1.types b/tests/baselines/reference/genericConstraint1.types index 82cde052fd44b..d540ca90a4e6b 100644 --- a/tests/baselines/reference/genericConstraint1.types +++ b/tests/baselines/reference/genericConstraint1.types @@ -7,7 +7,7 @@ class C { public bar2(x: T, y: U): T { >bar2 : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -29,11 +29,11 @@ x.bar2(2, ""); >x.bar2(2, "") : number > : ^^^^^^ >x.bar2 : (x: number, y: U) => number -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ >x : C > : ^^^^^^^^^ >bar2 : (x: number, y: U) => number -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ >2 : 2 > : ^ >"" : "" diff --git a/tests/baselines/reference/genericConstraint2.types b/tests/baselines/reference/genericConstraint2.types index bd40e82718384..7f1554e279936 100644 --- a/tests/baselines/reference/genericConstraint2.types +++ b/tests/baselines/reference/genericConstraint2.types @@ -11,7 +11,7 @@ interface Comparable { function compare>(x: T, y: T): number { >compare : >(x: T, y: T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -102,7 +102,7 @@ var c = compare(a, b); >compare(a, b) : number > : ^^^^^^ >compare : >(x: T, y: T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : ComparableString > : ^^^^^^^^^^^^^^^^ >b : ComparableString diff --git a/tests/baselines/reference/genericConstraintDeclaration.types b/tests/baselines/reference/genericConstraintDeclaration.types index fb0ce708dd99a..37cb13cba8b20 100644 --- a/tests/baselines/reference/genericConstraintDeclaration.types +++ b/tests/baselines/reference/genericConstraintDeclaration.types @@ -7,7 +7,7 @@ class List{ static empty(): List{return null;} >empty : () => List -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } diff --git a/tests/baselines/reference/genericConstraintSatisfaction1.types b/tests/baselines/reference/genericConstraintSatisfaction1.types index d14e15e7039bb..b6ac1aa0cbcf9 100644 --- a/tests/baselines/reference/genericConstraintSatisfaction1.types +++ b/tests/baselines/reference/genericConstraintSatisfaction1.types @@ -4,7 +4,7 @@ interface I { f: (x: T) => void >f : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/genericConstructorFunction1.types b/tests/baselines/reference/genericConstructorFunction1.types index b9349680c0bae..0e268f42c9606 100644 --- a/tests/baselines/reference/genericConstructorFunction1.types +++ b/tests/baselines/reference/genericConstructorFunction1.types @@ -3,7 +3,7 @@ === genericConstructorFunction1.ts === function f1(args: T) { >f1 : (args: T) => Date -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >args : T > : ^ @@ -49,7 +49,7 @@ interface I1 { new (arg: T): Date }; function f2(args: T) { >f2 : (args: T) => Date -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >args : T > : ^ diff --git a/tests/baselines/reference/genericContextualTypes1.types b/tests/baselines/reference/genericContextualTypes1.types index 14013a8f93a73..4f0ea75730f4e 100644 --- a/tests/baselines/reference/genericContextualTypes1.types +++ b/tests/baselines/reference/genericContextualTypes1.types @@ -9,7 +9,7 @@ type Box = { value: T }; declare function wrap(f: (a: A) => B): (a: A) => B; >wrap : (f: (a: A) => B) => (a: A) => B -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -19,7 +19,7 @@ declare function wrap(f: (a: A) => B): (a: A) => B; declare function compose(f: (a: A) => B, g: (b: B) => C): (a: A) => C; >compose : (f: (a: A) => B, g: (b: B) => C) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -33,31 +33,31 @@ declare function compose(f: (a: A) => B, g: (b: B) => C): (a: A) => C; declare function list(a: T): T[]; >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ declare function unlist(a: T[]): T; >unlist : (a: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T[] > : ^^^ declare function box(x: V): Box; >box : (x: V) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : V > : ^ declare function unbox(x: Box): W; >unbox : (x: Box) => W -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^ declare function map(a: T[], f: (x: T) => U): U[]; >map : (a: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >f : (x: T) => U @@ -67,13 +67,13 @@ declare function map(a: T[], f: (x: T) => U): U[]; declare function identity(x: T): T; >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function zip(a: A, b: B): [A, B]; >zip : (a: A, b: B) => [A, B] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -81,7 +81,7 @@ declare function zip(a: A, b: B): [A, B]; declare function flip(f: (x: X, y: Y) => Z): (y: Y, x: X) => Z; >flip : (f: (x: X, y: Y) => Z) => (y: Y, x: X) => Z -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >f : (x: X, y: Y) => Z > : ^ ^^ ^^ ^^ ^^^^^ >x : X @@ -95,15 +95,15 @@ declare function flip(f: (x: X, y: Y) => Z): (y: Y, x: X) => Z; const f00: (x: A) => A[] = list; >f00 : (x: A) => A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f01: (x: A) => A[] = x => [x]; >f01 : (x: A) => A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >x => [x] : (x: A) => A[] @@ -117,25 +117,25 @@ const f01: (x: A) => A[] = x => [x]; const f02: (x: A) => A[] = wrap(list); >f02 : (x: A) => A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >wrap(list) : (a: A) => A[] -> : ^ ^^^^^^^^^^^ +> : ^ ^^^^^^^^^ >wrap : (f: (a: A) => B) => (a: A) => B -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f03: (x: A) => A[] = wrap(x => [x]); >f03 : (x: A) => A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ >wrap(x => [x]) : (a: A) => A[] -> : ^ ^^^^^^^^^^^ +> : ^ ^^^^^^^^^ >wrap : (f: (a: A) => B) => (a: A) => B -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => [x] : (x: A) => A[] > : ^ ^^^^^^^^^^^ >x : A @@ -147,13 +147,13 @@ const f03: (x: A) => A[] = wrap(x => [x]); const f10: (x: T) => Box = compose(a => list(a), b => box(b)); >f10 : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >compose(a => list(a), b => box(b)) : (a: T) => Box -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^ >compose : (f: (a: A) => B, g: (b: B) => C) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a => list(a) : (a: T) => T[] > : ^ ^^^^^^^^^^^ >a : T @@ -161,7 +161,7 @@ const f10: (x: T) => Box = compose(a => list(a), b => box(b)); >list(a) : T[] > : ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ >b => box(b) : (b: T[]) => Box @@ -171,33 +171,33 @@ const f10: (x: T) => Box = compose(a => list(a), b => box(b)); >box(b) : Box > : ^^^^^^^^ >box : (x: V) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : T[] > : ^^^ const f11: (x: T) => Box = compose(list, box); >f11 : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >compose(list, box) : (a: T) => Box -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ ^^^ >compose : (f: (a: A) => B, g: (b: B) => C) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f12: (x: Box) => T = compose(a => unbox(a), b => unlist(b)); >f12 : (x: Box) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^^^ >compose(a => unbox(a), b => unlist(b)) : (a: Box) => T > : ^ ^^^^^^^^^^^^^^^^ >compose : (f: (a: A) => B, g: (b: B) => C) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >a => unbox(a) : (a: Box) => T[] > : ^ ^^^^^^^^^^^^^^^^^^ >a : Box @@ -205,7 +205,7 @@ const f12: (x: Box) => T = compose(a => unbox(a), b => unlist(b)); >unbox(a) : T[] > : ^^^ >unbox : (x: Box) => W -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : Box > : ^^^^^^^^ >b => unlist(b) : (b: T[]) => T @@ -215,29 +215,29 @@ const f12: (x: Box) => T = compose(a => unbox(a), b => unlist(b)); >unlist(b) : T > : ^ >unlist : (a: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : T[] > : ^^^ const f13: (x: Box) => T = compose(unbox, unlist); >f13 : (x: Box) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^^^ >compose(unbox, unlist) : (a: Box) => T > : ^ ^^^^^^^^^^^^^^^^ >compose : (f: (a: A) => B, g: (b: B) => C) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >unbox : (x: Box) => W -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >unlist : (a: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const arrayMap = (f: (x: T) => U) => (a: T[]) => a.map(f); >arrayMap : (f: (x: T) => U) => (a: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >(f: (x: T) => U) => (a: T[]) => a.map(f) : (f: (x: T) => U) => (a: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >f : (x: T) => U > : ^ ^^ ^^^^^ >x : T @@ -259,9 +259,9 @@ const arrayMap = (f: (x: T) => U) => (a: T[]) => a.map(f); const arrayFilter = (f: (x: T) => boolean) => (a: T[]) => a.filter(f); >arrayFilter : (f: (x: T) => boolean) => (a: T[]) => T[] -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >(f: (x: T) => boolean) => (a: T[]) => a.filter(f) : (f: (x: T) => boolean) => (a: T[]) => T[] -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >f : (x: T) => boolean > : ^ ^^ ^^^^^ >x : T @@ -289,7 +289,7 @@ const f20: (a: string[]) => number[] = arrayMap(x => x.length); >arrayMap(x => x.length) : (a: string[]) => number[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >arrayMap : (f: (x: T) => U) => (a: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >x => x.length : (x: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string @@ -303,13 +303,13 @@ const f20: (a: string[]) => number[] = arrayMap(x => x.length); const f21: (a: A[]) => A[][] = arrayMap(x => [x]); >f21 : (a: A[]) => A[][] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : A[] > : ^^^ >arrayMap(x => [x]) : (a: A[]) => A[][] > : ^ ^^^^^^^^^^^^^^^ >arrayMap : (f: (x: T) => U) => (a: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >x => [x] : (x: A) => A[] > : ^ ^^^^^^^^^^^ >x : A @@ -321,25 +321,25 @@ const f21: (a: A[]) => A[][] = arrayMap(x => [x]); const f22: (a: A[]) => A[] = arrayMap(identity); >f22 : (a: A[]) => A[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : A[] > : ^^^ >arrayMap(identity) : (a: A[]) => A[] > : ^ ^^^^^^^^^^^^^ >arrayMap : (f: (x: T) => U) => (a: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f23: (a: A[]) => Box[] = arrayMap(value => ({ value })); >f23 : (a: A[]) => Box[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : A[] > : ^^^ >arrayMap(value => ({ value })) : (a: A[]) => { value: A; }[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >arrayMap : (f: (x: T) => U) => (a: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >value => ({ value }) : (value: A) => { value: A; } > : ^ ^^^^^^^^^^^^^^^^^^^^^ >value : A @@ -359,7 +359,7 @@ const f30: (a: string[]) => string[] = arrayFilter(x => x.length > 10); >arrayFilter(x => x.length > 10) : (a: string[]) => string[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >arrayFilter : (f: (x: T) => boolean) => (a: T[]) => T[] -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >x => x.length > 10 : (x: string) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : string @@ -377,13 +377,13 @@ const f30: (a: string[]) => string[] = arrayFilter(x => x.length > 10); const f31: >(a: T[]) => T[] = arrayFilter(x => x.value > 10); >f31 : >(a: T[]) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >arrayFilter(x => x.value > 10) : (a: T[]) => T[] > : ^ ^^^^^^^^^^^^^ >arrayFilter : (f: (x: T) => boolean) => (a: T[]) => T[] -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >x => x.value > 10 : (x: T) => boolean > : ^ ^^^^^^^^^^^^^^^ >x : T @@ -401,17 +401,17 @@ const f31: >(a: T[]) => T[] = arrayFilter(x => x.value > 1 const f40: (b: B, a: A) => [A, B] = flip(zip); >f40 : (b: B, a: A) => [A, B] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >a : A > : ^ >flip(zip) : (y: B, x: A) => [A, B] -> : ^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^ ^^^^^ ^^^^^^^^ ^ ^ >flip : (f: (x: X, y: Y) => Z) => (y: Y, x: X) => Z -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >zip : (a: A, b: B) => [A, B] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ // Repro from #16293 diff --git a/tests/baselines/reference/genericContextualTypes2.types b/tests/baselines/reference/genericContextualTypes2.types index 5a0a15b751ddf..19416f9baabf0 100644 --- a/tests/baselines/reference/genericContextualTypes2.types +++ b/tests/baselines/reference/genericContextualTypes2.types @@ -49,7 +49,7 @@ interface AssignAction { declare function assign( >assign : (assignment: PropertyAssigner>) => AssignAction -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ assignment: PropertyAssigner> >assignment : PropertyAssigner> @@ -73,7 +73,7 @@ type Config = { declare function createMachine(config: Config): void; >createMachine : (config: Config) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >config : Config > : ^^^^^^^^^^^^^^^^ @@ -81,7 +81,7 @@ createMachine<{ count: number }>({ >createMachine<{ count: number }>({ context: { count: 0, }, entry: assign({ count: (ctx: { count: number }) => ++ctx.count, }),}) : void > : ^^^^ >createMachine : (config: Config) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >count : number > : ^^^^^^ >{ context: { count: 0, }, entry: assign({ count: (ctx: { count: number }) => ++ctx.count, }),} : { context: { count: number; }; entry: AssignAction<{ count: number; }>; } @@ -106,7 +106,7 @@ createMachine<{ count: number }>({ >assign({ count: (ctx: { count: number }) => ++ctx.count, }) : AssignAction<{ count: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >assign : (assignment: PropertyAssigner>) => AssignAction -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >{ count: (ctx: { count: number }) => ++ctx.count, } : { count: (ctx: { count: number; }) => number; } > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericContextualTypes3.types b/tests/baselines/reference/genericContextualTypes3.types index 4b7a6177b5b1d..a1442cf4894a7 100644 --- a/tests/baselines/reference/genericContextualTypes3.types +++ b/tests/baselines/reference/genericContextualTypes3.types @@ -47,7 +47,7 @@ interface AssignAction { declare function assign( >assign : (assignment: PropertyAssigner>) => AssignAction -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ assignment: PropertyAssigner> >assignment : PropertyAssigner> @@ -71,7 +71,7 @@ type Config = { declare function createMachine(config: Config): void; >createMachine : (config: Config) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >config : Config > : ^^^^^^^^^^^^^^^^ @@ -79,7 +79,7 @@ createMachine<{ count: number }>({ >createMachine<{ count: number }>({ context: { count: 0, }, entry: assign({ count: (ctx: { count: number }) => ++ctx.count, }),}) : void > : ^^^^ >createMachine : (config: Config) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >count : number > : ^^^^^^ >{ context: { count: 0, }, entry: assign({ count: (ctx: { count: number }) => ++ctx.count, }),} : { context: { count: number; }; entry: AssignAction<{ count: number; }>; } @@ -104,7 +104,7 @@ createMachine<{ count: number }>({ >assign({ count: (ctx: { count: number }) => ++ctx.count, }) : AssignAction<{ count: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >assign : (assignment: PropertyAssigner>) => AssignAction -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >{ count: (ctx: { count: number }) => ++ctx.count, } : { count: (ctx: { count: number; }) => number; } > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericContextualTypingSpecialization.types b/tests/baselines/reference/genericContextualTypingSpecialization.types index 1559167fc4e98..fbef4e1d84058 100644 --- a/tests/baselines/reference/genericContextualTypingSpecialization.types +++ b/tests/baselines/reference/genericContextualTypingSpecialization.types @@ -9,11 +9,11 @@ b.reduce((c, d) => c + d, 0); // should not error on '+' >b.reduce((c, d) => c + d, 0) : number > : ^^^^^^ >b.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >b : number[] > : ^^^^^^^^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(c, d) => c + d : (c: number, d: number) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >c : number diff --git a/tests/baselines/reference/genericDefaults.types b/tests/baselines/reference/genericDefaults.types index b4c1c435c1d7a..a09012b4126db 100644 --- a/tests/baselines/reference/genericDefaults.types +++ b/tests/baselines/reference/genericDefaults.types @@ -82,7 +82,7 @@ f00(a); // function with a type parameter without a default declare function f01(a?: T): T; >f01 : (a?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >a : T > : ^ @@ -91,13 +91,13 @@ f01(); >f01() : unknown > : ^^^^^^^ >f01 : (a?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ f01(a); >f01(a) : A > : ^ >f01 : (a?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >a : A > : ^ @@ -106,20 +106,20 @@ f01(); >f01() : A > : ^ >f01 : (a?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ f01(a); >f01(a) : A > : ^ >f01 : (a?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >a : A > : ^ // function with a type paramter with a default declare function f02(a?: T): T; >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >a : T > : ^ @@ -128,13 +128,13 @@ f02(); >f02() : A > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ f02(a); >f02(a) : A > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >a : A > : ^ @@ -142,7 +142,7 @@ f02(b); >f02(b) : B > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b : B > : ^ @@ -151,13 +151,13 @@ f02(); >f02() : A > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ f02(a); >f02(a) : A > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >a : A > : ^ @@ -165,20 +165,20 @@ f02(); >f02() : B > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ f02(b); >f02(b) : B > : ^ >f02 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b : B > : ^ // function with a type parameter with a default that refers to itself declare function f03(a?: T): T; >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >a : T > : ^ @@ -187,13 +187,13 @@ f03(); >f03() : unknown > : ^^^^^^^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ f03(a); >f03(a) : A > : ^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >a : A > : ^ @@ -201,7 +201,7 @@ f03(b); >f03(b) : B > : ^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b : B > : ^ @@ -210,13 +210,13 @@ f03(); >f03() : A > : ^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ f03(a); >f03(a) : A > : ^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >a : A > : ^ @@ -224,20 +224,20 @@ f03(); >f03() : B > : ^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ f03(b); >f03(b) : B > : ^ >f03 : (a?: T) => T -> : ^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >b : B > : ^ // function with a type paramter without a default and a type parameter with a default declare function f04(a?: T, b?: U): [T, U]; >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -248,13 +248,13 @@ f04(); >f04() : [unknown, B] > : ^^^^^^^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f04(a); >f04(a) : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -262,7 +262,7 @@ f04(a, b); >f04(a, b) : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -272,7 +272,7 @@ f04(a, c); >f04(a, c) : [A, C] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -283,13 +283,13 @@ f04(); >f04() : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f04(a); >f04(a) : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -297,7 +297,7 @@ f04(a, b); >f04(a, b) : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -308,13 +308,13 @@ f04(); >f04() : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f04(a); >f04(a) : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -322,7 +322,7 @@ f04(a, b); >f04(a, b) : [A, B] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -332,13 +332,13 @@ f04(); >f04() : [A, C] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f04(a); >f04(a) : [A, C] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -346,7 +346,7 @@ f04(a, c); >f04(a, c) : [A, C] > : ^^^^^^ >f04 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -355,7 +355,7 @@ f04(a, c); // function with a type parameter without a default and a type parameter with a default that refers to an earlier type parameter declare function f05(a?: T, b?: U): [T, U]; >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -366,13 +366,13 @@ f05(); >f05() : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f05(a); >f05(a) : [A, A] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -380,7 +380,7 @@ f05(a, a); >f05(a, a) : [A, A] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -390,7 +390,7 @@ f05(a, b); >f05(a, b) : [A, B] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -401,13 +401,13 @@ f05(); >f05() : [A, A] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f05(a); >f05(a) : [A, A] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -415,7 +415,7 @@ f05(a, a); >f05(a, a) : [A, A] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -426,13 +426,13 @@ f05(); >f05() : [A, B] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f05(a); >f05(a) : [A, B] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -440,7 +440,7 @@ f05(a, b); >f05(a, b) : [A, B] > : ^^^^^^ >f05 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -449,7 +449,7 @@ f05(a, b); // function with a type parameter with a default that refers to an earlier type parameter with a default declare function f06(a?: T, b?: U): [T, U]; >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -460,13 +460,13 @@ f06(); >f06() : [A, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f06(a); >f06(a) : [A, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -474,7 +474,7 @@ f06(a, a); >f06(a, a) : [A, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -484,7 +484,7 @@ f06(a, b); >f06(a, b) : [A, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -494,7 +494,7 @@ f06(b, a); >f06(b, a) : [B, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : B > : ^ >a : A @@ -504,7 +504,7 @@ f06(b, b); >f06(b, b) : [B, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : B > : ^ >b : B @@ -515,13 +515,13 @@ f06(); >f06() : [A, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f06(a); >f06(a) : [A, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -529,7 +529,7 @@ f06(a, a); >f06(a, a) : [A, A] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -539,13 +539,13 @@ f06(); >f06() : [B, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f06(b); >f06(b) : [B, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : B > : ^ @@ -553,7 +553,7 @@ f06(b, b); >f06(b, b) : [B, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : B > : ^ >b : B @@ -564,13 +564,13 @@ f06(); >f06() : [A, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f06(a); >f06(a) : [A, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -578,7 +578,7 @@ f06(a, b); >f06(a, b) : [A, B] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -588,13 +588,13 @@ f06(); >f06() : [B, C] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f06(b); >f06(b) : [B, C] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : B > : ^ @@ -602,7 +602,7 @@ f06(b, c); >f06(b, c) : [B, C] > : ^^^^^^ >f06 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >b : B > : ^ >c : C @@ -611,7 +611,7 @@ f06(b, c); // function with a type parameter without a default and a type parameter with a default that refers to an earlier type parameter with a default declare function f07(a?: T, b?: U, c?: V): [T, U, V]; >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -624,13 +624,13 @@ f07(); >f07() : [unknown, B, B] > : ^^^^^^^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f07(a, b); >f07(a, b) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -640,7 +640,7 @@ f07(a, c); >f07(a, c) : [A, C, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -650,7 +650,7 @@ f07(a, b, b); >f07(a, b, b) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -662,7 +662,7 @@ f07(a, b, c); >f07(a, b, c) : [A, B, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -674,7 +674,7 @@ f07(a, c, b); >f07(a, c, b) : [A, C, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -686,7 +686,7 @@ f07(a, c, c); >f07(a, c, c) : [A, C, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -699,13 +699,13 @@ f07(); >f07() : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f07(a); >f07(a) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -713,7 +713,7 @@ f07(a, b); >f07(a, b) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -723,7 +723,7 @@ f07(a, b, b); >f07(a, b, b) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -735,13 +735,13 @@ f07(); >f07() : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f07(a); >f07(a) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -749,7 +749,7 @@ f07(a, b); >f07(a, b) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -759,7 +759,7 @@ f07(a, b, b); >f07(a, b, b) : [A, B, B] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -771,13 +771,13 @@ f07(); >f07() : [A, C, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f07(a); >f07(a) : [A, C, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -785,7 +785,7 @@ f07(a, c); >f07(a, c) : [A, C, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -795,7 +795,7 @@ f07(a, c, c); >f07(a, c, c) : [A, C, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -808,13 +808,13 @@ f07(); >f07() : [A, B, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f07(a); >f07(a) : [A, B, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -822,7 +822,7 @@ f07(a, b); >f07(a, b) : [A, B, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -832,7 +832,7 @@ f07(a, b, c); >f07(a, b, c) : [A, B, C] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -844,13 +844,13 @@ f07(); >f07() : [A, C, A] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f07(a); >f07(a) : [A, C, A] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -858,7 +858,7 @@ f07(a, c); >f07(a, c) : [A, C, D] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -868,7 +868,7 @@ f07(a, c, d); >f07(a, c, d) : [A, C, D] > : ^^^^^^^^^ >f07 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -879,7 +879,7 @@ f07(a, c, d); // function with a type parameter with a default that refers to an earlier type parameter with a constraint declare function f08(a?: T, b?: U): [T, U]; >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -890,13 +890,13 @@ f08(); >f08() : [A, A] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f08(a); >f08(a) : [A, A] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -904,7 +904,7 @@ f08(a, a); >f08(a, a) : [A, A] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -914,7 +914,7 @@ f08(a, b); >f08(a, b) : [A, B] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -925,13 +925,13 @@ f08(); >f08() : [A, A] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f08(a); >f08(a) : [A, A] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -939,7 +939,7 @@ f08(a, a); >f08(a, a) : [A, A] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -950,13 +950,13 @@ f08(); >f08() : [A, B] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f08(a); >f08(a) : [A, B] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -964,7 +964,7 @@ f08(a, b); >f08(a, b) : [A, B] > : ^^^^^^ >f08 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -973,7 +973,7 @@ f08(a, b); // function with a type parameter with a constraint and a default that refers to an earlier type parameter declare function f09(a?: T, b?: U): [T, U]; >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -984,13 +984,13 @@ f09(); >f09() : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f09(a); >f09(a) : [A, A] > : ^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -998,7 +998,7 @@ f09(a, a); >f09(a, a) : [A, A] > : ^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1008,7 +1008,7 @@ f09(a, ab); >f09(a, ab) : [A, AB] > : ^^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1019,13 +1019,13 @@ f09(); >f09() : [A, A] > : ^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f09(a); >f09(a) : [A, A] > : ^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1033,7 +1033,7 @@ f09(a, a); >f09(a, a) : [A, A] > : ^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1043,7 +1043,7 @@ f09(a, ab); >f09(a, ab) : [A, A] > : ^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1054,13 +1054,13 @@ f09(); >f09() : [A, AB] > : ^^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f09(a); >f09(a) : [A, AB] > : ^^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1068,7 +1068,7 @@ f09(a, ab); >f09(a, ab) : [A, AB] > : ^^^^^^^ >f09 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1077,7 +1077,7 @@ f09(a, ab); // function with a type parameter with a constraint and a default that refers to an earlier type parameter with a constraint declare function f10(a?: T, b?: U): [T, U]; >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1088,13 +1088,13 @@ f10(); >f10() : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f10(a); >f10(a) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1102,7 +1102,7 @@ f10(a, a); >f10(a, a) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1112,7 +1112,7 @@ f10(a, ab); >f10(a, ab) : [A, AB] > : ^^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1123,13 +1123,13 @@ f10(); >f10() : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f10(a); >f10(a) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1137,7 +1137,7 @@ f10(a, a); >f10(a, a) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1147,7 +1147,7 @@ f10(a, ab); >f10(a, ab) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1158,13 +1158,13 @@ f10(); >f10() : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f10(a); >f10(a) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1172,7 +1172,7 @@ f10(a, a); >f10(a, a) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1182,7 +1182,7 @@ f10(a, ab); >f10(a, ab) : [A, A] > : ^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1192,13 +1192,13 @@ f10(); >f10() : [A, AB] > : ^^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ f10(a); >f10(a) : [A, AB] > : ^^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1206,7 +1206,7 @@ f10(a, ab); >f10(a, ab) : [A, AB] > : ^^^^^^^ >f10 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1215,7 +1215,7 @@ f10(a, ab); // function with a type parameter with a default that refers to an earier type parameter in a union declare function f11(a?: T, b?: U): [T, U]; >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1226,13 +1226,13 @@ f11(); >f11() : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f11(a); >f11(a) : [A, A | B] > : ^^^^^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1240,7 +1240,7 @@ f11(a, a); >f11(a, a) : [A, A] > : ^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1250,7 +1250,7 @@ f11(a, b); >f11(a, b) : [A, B] > : ^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1260,7 +1260,7 @@ f11(a, c); >f11(a, c) : [A, C] > : ^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1271,13 +1271,13 @@ f11(); >f11() : [A, A | B] > : ^^^^^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f11(a); >f11(a) : [A, A | B] > : ^^^^^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1285,7 +1285,7 @@ f11(a, a); >f11(a, a) : [A, A | B] > : ^^^^^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1295,7 +1295,7 @@ f11(a, b); >f11(a, b) : [A, A | B] > : ^^^^^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1306,13 +1306,13 @@ f11(); >f11() : [A, C] > : ^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f11(a); >f11(a) : [A, C] > : ^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1320,7 +1320,7 @@ f11(a, c); >f11(a, c) : [A, C] > : ^^^^^^ >f11 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1329,7 +1329,7 @@ f11(a, c); // function with a type parameter with a default that refers to an earlier type parameter in an intersection declare function f12(a?: T, b?: U): [T, U]; >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1340,13 +1340,13 @@ f12(); >f12() : [unknown, B] > : ^^^^^^^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f12(a); >f12(a) : [A, A & B] > : ^^^^^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1354,7 +1354,7 @@ f12(a, a); >f12(a, a) : [A, A] > : ^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1364,7 +1364,7 @@ f12(a, b); >f12(a, b) : [A, B] > : ^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1374,7 +1374,7 @@ f12(a, c); >f12(a, c) : [A, C] > : ^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1385,13 +1385,13 @@ f12(); >f12() : [A, A & B] > : ^^^^^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f12(a); >f12(a) : [A, A & B] > : ^^^^^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1399,7 +1399,7 @@ f12(a, ab); >f12(a, ab) : [A, A & B] > : ^^^^^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -1410,13 +1410,13 @@ f12(); >f12() : [A, C] > : ^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f12(a); >f12(a) : [A, C] > : ^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1424,7 +1424,7 @@ f12(a, c); >f12(a, c) : [A, C] > : ^^^^^^ >f12 : (a?: T, b?: U) => [T, U] -> : ^ ^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1433,7 +1433,7 @@ f12(a, c); // function with a type parameter with a default that refers to a later type parameter with a default declare function f13(a?: T, b?: U): [T, U]; >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1444,13 +1444,13 @@ f13(); >f13() : [unknown, B] > : ^^^^^^^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f13(a); >f13(a) : [A, B] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1458,7 +1458,7 @@ f13(a, b); >f13(a, b) : [A, B] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1468,7 +1468,7 @@ f13(a, c); >f13(a, c) : [A, C] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1479,13 +1479,13 @@ f13(); >f13() : [A, B] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f13(a); >f13(a) : [A, B] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1493,7 +1493,7 @@ f13(a, b); >f13(a, b) : [A, B] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1504,13 +1504,13 @@ f13(); >f13() : [A, C] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f13(a); >f13(a) : [A, C] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1518,7 +1518,7 @@ f13(a, c); >f13(a, c) : [A, C] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1528,7 +1528,7 @@ f13(a, c); >f13(a, c) : [A, C] > : ^^^^^^ >f13 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -1537,7 +1537,7 @@ f13(a, c); // function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default declare function f14(a?: T, b?: U, c?: V): [T, U, V]; >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1550,13 +1550,13 @@ f14(); >f14() : [unknown, unknown, C] > : ^^^^^^^^^^^^^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f14(a); >f14(a) : [A, unknown, C] > : ^^^^^^^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1564,7 +1564,7 @@ f14(a, b); >f14(a, b) : [A, B, C] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1574,7 +1574,7 @@ f14(a, b, c); >f14(a, b, c) : [A, B, C] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1586,7 +1586,7 @@ f14(a, b, d); >f14(a, b, d) : [A, B, D] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1599,13 +1599,13 @@ f14(); >f14() : [A, any, C] > : ^^^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f14(a); >f14(a) : [A, any, C] > : ^^^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1613,7 +1613,7 @@ f14(a, b); >f14(a, b) : [A, any, C] > : ^^^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1623,7 +1623,7 @@ f14(a, b, c); >f14(a, b, c) : [A, any, C] > : ^^^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1635,13 +1635,13 @@ f14(); >f14() : [A, B, C] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f14(a); >f14(a) : [A, B, C] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1649,7 +1649,7 @@ f14(a, b); >f14(a, b) : [A, B, C] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1659,7 +1659,7 @@ f14(a, b, c); >f14(a, b, c) : [A, B, C] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1672,13 +1672,13 @@ f14(); >f14() : [A, B, D] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f14(a); >f14(a) : [A, B, D] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1686,7 +1686,7 @@ f14(a, b); >f14(a, b) : [A, B, D] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1696,7 +1696,7 @@ f14(a, b, d); >f14(a, b, d) : [A, B, D] > : ^^^^^^^^^ >f14 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1707,7 +1707,7 @@ f14(a, b, d); // function with two type parameters with defaults that mutually refer to each other declare function f15(a?: T, b?: U): [T, U]; >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1718,13 +1718,13 @@ f15(); >f15() : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f15(a); >f15(a) : [A, A] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1732,7 +1732,7 @@ f15(a, b); >f15(a, b) : [A, B] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1743,13 +1743,13 @@ f15(); >f15() : [A, A] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f15(a); >f15(a) : [A, A] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1757,7 +1757,7 @@ f15(a, a); >f15(a, a) : [A, A] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1768,13 +1768,13 @@ f15(); >f15() : [A, B] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f15(a); >f15(a) : [A, B] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1782,7 +1782,7 @@ f15(a, b); >f15(a, b) : [A, B] > : ^^^^^^ >f15 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1791,7 +1791,7 @@ f15(a, b); // function with a type parameter without a default and two type parameters with defaults that mutually refer to each other declare function f16(a?: T, b?: U, c?: V): [T, U, V]; >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1804,13 +1804,13 @@ f16(); >f16() : [unknown, unknown, unknown] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f16(a); >f16(a) : [A, unknown, unknown] > : ^^^^^^^^^^^^^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1818,7 +1818,7 @@ f16(a, b); >f16(a, b) : [A, B, B] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1828,7 +1828,7 @@ f16(a, b, b); >f16(a, b, b) : [A, B, B] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1841,13 +1841,13 @@ f16(); >f16() : [A, any, any] > : ^^^^^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f16(a); >f16(a) : [A, any, any] > : ^^^^^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1855,7 +1855,7 @@ f16(a, b); >f16(a, b) : [A, any, any] > : ^^^^^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1865,7 +1865,7 @@ f16(a, b, b); >f16(a, b, b) : [A, any, any] > : ^^^^^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1877,13 +1877,13 @@ f16(); >f16() : [A, B, B] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f16(a); >f16(a) : [A, B, B] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1891,7 +1891,7 @@ f16(a, b); >f16(a, b) : [A, B, B] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1901,7 +1901,7 @@ f16(a, b, b); >f16(a, b, b) : [A, B, B] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1914,13 +1914,13 @@ f16(); >f16() : [A, B, D] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f16(a); >f16(a) : [A, B, D] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1928,7 +1928,7 @@ f16(a, b); >f16(a, b) : [A, B, D] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1938,7 +1938,7 @@ f16(a, b, d); >f16(a, b, d) : [A, B, D] > : ^^^^^^^^^ >f16 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1949,7 +1949,7 @@ f16(a, b, d); // function with a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in a union declare function f17(a?: T, b?: U): [T, U]; >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -1960,13 +1960,13 @@ f17(); >f17() : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f17(a); >f17(a) : [A, A | B] > : ^^^^^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -1974,7 +1974,7 @@ f17(a, a); >f17(a, a) : [A, A] > : ^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -1984,7 +1984,7 @@ f17(a, b); >f17(a, b) : [A, B] > : ^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -1994,7 +1994,7 @@ f17(a, c); >f17(a, c) : [A, C] > : ^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -2005,13 +2005,13 @@ f17(); >f17() : [A, A | B] > : ^^^^^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f17(a); >f17(a) : [A, A | B] > : ^^^^^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2019,7 +2019,7 @@ f17(a, a); >f17(a, a) : [A, A | B] > : ^^^^^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -2029,7 +2029,7 @@ f17(a, b); >f17(a, b) : [A, A | B] > : ^^^^^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2040,13 +2040,13 @@ f17(); >f17() : [A, C] > : ^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f17(a); >f17(a) : [A, C] > : ^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2054,7 +2054,7 @@ f17(a, c); >f17(a, c) : [A, C] > : ^^^^^^ >f17 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -2063,7 +2063,7 @@ f17(a, c); // function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in a union declare function f18(a?: T, b?: U, c?: V): [T, U, V]; >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -2076,13 +2076,13 @@ f18(); >f18() : [unknown, unknown, unknown] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f18(a); >f18(a) : [A, unknown, unknown] > : ^^^^^^^^^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2090,7 +2090,7 @@ f18(a, b); >f18(a, b) : [A, B, B | C] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2100,7 +2100,7 @@ f18(a, b, b); >f18(a, b, b) : [A, B, B] > : ^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2112,7 +2112,7 @@ f18(a, b, c); >f18(a, b, c) : [A, B, C] > : ^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2125,13 +2125,13 @@ f18(); >f18() : [A, any, any] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f18(a); >f18(a) : [A, any, any] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2139,7 +2139,7 @@ f18(a, b); >f18(a, b) : [A, any, any] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2149,7 +2149,7 @@ f18(a, b, b); >f18(a, b, b) : [A, any, any] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2161,7 +2161,7 @@ f18(a, b, c); >f18(a, b, c) : [A, any, any] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2173,13 +2173,13 @@ f18(); >f18() : [A, B, B | C] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f18(a); >f18(a) : [A, B, B | C] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2187,7 +2187,7 @@ f18(a, b); >f18(a, b) : [A, B, B | C] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2197,7 +2197,7 @@ f18(a, b, b); >f18(a, b, b) : [A, B, B | C] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2209,7 +2209,7 @@ f18(a, b, c); >f18(a, b, c) : [A, B, B | C] > : ^^^^^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2222,13 +2222,13 @@ f18(); >f18() : [A, B, D] > : ^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f18(a); >f18(a) : [A, B, D] > : ^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2236,7 +2236,7 @@ f18(a, b); >f18(a, b) : [A, B, D] > : ^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2246,7 +2246,7 @@ f18(a, b, d); >f18(a, b, d) : [A, B, D] > : ^^^^^^^^^ >f18 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2257,7 +2257,7 @@ f18(a, b, d); // function with a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in an intersection declare function f19(a?: T, b?: U): [T, U]; >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -2268,13 +2268,13 @@ f19(); >f19() : [unknown, B] > : ^^^^^^^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f19(a); >f19(a) : [A, A & B] > : ^^^^^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2282,7 +2282,7 @@ f19(a, a); >f19(a, a) : [A, A] > : ^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >a : A @@ -2292,7 +2292,7 @@ f19(a, b); >f19(a, b) : [A, B] > : ^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2302,7 +2302,7 @@ f19(a, ab); >f19(a, ab) : [A, AB] > : ^^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -2312,7 +2312,7 @@ f19(a, c); >f19(a, c) : [A, C] > : ^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -2323,13 +2323,13 @@ f19(); >f19() : [A, A & B] > : ^^^^^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f19(a); >f19(a) : [A, A & B] > : ^^^^^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2337,7 +2337,7 @@ f19(a, ab); >f19(a, ab) : [A, A & B] > : ^^^^^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >ab : AB @@ -2348,13 +2348,13 @@ f19(); >f19() : [A, C] > : ^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ f19(a); >f19(a) : [A, C] > : ^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2362,7 +2362,7 @@ f19(a, c); >f19(a, c) : [A, C] > : ^^^^^^ >f19 : (a?: T, b?: U) => [T, U] -> : ^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >c : C @@ -2371,7 +2371,7 @@ f19(a, c); // function with a type parameter without a default and a type parameter with a default that refers to a later type parameter with a default that refers to an earlier type parameter in an intersection declare function f20(a?: T, b?: U, c?: V): [T, U, V]; >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : T > : ^ >b : U @@ -2384,13 +2384,13 @@ f20(); >f20() : [unknown, unknown, C] > : ^^^^^^^^^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f20(a); >f20(a) : [A, unknown, C] > : ^^^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2398,7 +2398,7 @@ f20(a, b); >f20(a, b) : [A, B, B & C] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2408,7 +2408,7 @@ f20(a, b, c); >f20(a, b, c) : [A, B, C] > : ^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2421,13 +2421,13 @@ f20(); >f20() : [A, any, any] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f20(a); >f20(a) : [A, any, any] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2435,7 +2435,7 @@ f20(a, b); >f20(a, b) : [A, any, any] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2445,7 +2445,7 @@ f20(a, b, bc); >f20(a, b, bc) : [A, any, any] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2457,13 +2457,13 @@ f20(); >f20() : [A, B, B & C] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f20(a); >f20(a) : [A, B, B & C] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2471,7 +2471,7 @@ f20(a, b); >f20(a, b) : [A, B, B & C] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2481,7 +2481,7 @@ f20(a, b, bc); >f20(a, b, bc) : [A, B, B & C] > : ^^^^^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2494,13 +2494,13 @@ f20(); >f20() : [A, B, D] > : ^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ f20(a); >f20(a) : [A, B, D] > : ^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ @@ -2508,7 +2508,7 @@ f20(a, b); >f20(a, b) : [A, B, D] > : ^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B @@ -2518,7 +2518,7 @@ f20(a, b, d); >f20(a, b, d) : [A, B, D] > : ^^^^^^^^^ >f20 : (a?: T, b?: U, c?: V) => [T, U, V] -> : ^ ^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >a : A > : ^ >b : B diff --git a/tests/baselines/reference/genericDefaultsErrors.types b/tests/baselines/reference/genericDefaultsErrors.types index 83254c12a2590..0c6bc65ec928f 100644 --- a/tests/baselines/reference/genericDefaultsErrors.types +++ b/tests/baselines/reference/genericDefaultsErrors.types @@ -19,7 +19,7 @@ declare function f05(): void; // error declare function f06(): void; // error >f06 : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ declare function f11(): void; >f11 : () => void @@ -57,7 +57,7 @@ f11<1, 2, 3, 4>(); // error declare function f12(a?: U): void; >f12 : (a?: U) => void -> : ^^^^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^^^^ >a : U > : ^ @@ -65,13 +65,13 @@ f12(); // ok >f12() : void > : ^^^^ >f12 : (a?: U) => void -> : ^^^^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^^^^ f12("a"); // error >f12("a") : void > : ^^^^ >f12 : (a?: U) => void -> : ^^^^ ^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^^^^ >"a" : "a" > : ^^^ diff --git a/tests/baselines/reference/genericDefaultsJs.types b/tests/baselines/reference/genericDefaultsJs.types index 22e1b5382670b..9e1c4f37076cb 100644 --- a/tests/baselines/reference/genericDefaultsJs.types +++ b/tests/baselines/reference/genericDefaultsJs.types @@ -3,13 +3,13 @@ === decls.d.ts === declare function f0(x?: T): T; >f0 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ declare function f1(x?: T): [T, U]; >f1 : (x?: T) => [T, U] -> : ^ ^^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ @@ -42,7 +42,7 @@ const f0_v0 = f0(); >f0_v0 : any >f0() : any >f0 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ const f0_v1 = f0(1); >f0_v1 : 1 @@ -50,7 +50,7 @@ const f0_v1 = f0(1); >f0(1) : 1 > : ^ >f0 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -60,7 +60,7 @@ const f1_c0 = f1(); >f1() : [any, number] > : ^^^^^^^^^^^^^ >f1 : (x?: T) => [T, U] -> : ^ ^^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^ ^^^^^ const f1_c1 = f1(1); >f1_c1 : [number, number] @@ -68,7 +68,7 @@ const f1_c1 = f1(1); >f1(1) : [number, number] > : ^^^^^^^^^^^^^^^^ >f1 : (x?: T) => [T, U] -> : ^ ^^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/genericFunctionCallSignatureReturnTypeMismatch.types b/tests/baselines/reference/genericFunctionCallSignatureReturnTypeMismatch.types index 9f2acb454dc8a..4728f7c76ce12 100644 --- a/tests/baselines/reference/genericFunctionCallSignatureReturnTypeMismatch.types +++ b/tests/baselines/reference/genericFunctionCallSignatureReturnTypeMismatch.types @@ -5,21 +5,21 @@ interface Array {} var f : { (x:T): T; } >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var g : { () : S[]; }; >g : () => S[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ f = g; >f = g : () => S[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : () => S[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ var s = f("str").toUpperCase(); >s : string @@ -31,7 +31,7 @@ var s = f("str").toUpperCase(); >f("str") : "str" > : ^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"str" : "str" > : ^^^^^ >toUpperCase : () => string diff --git a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types index 9f7b252abb585..be1f5bf3fdf26 100644 --- a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types +++ b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.types @@ -5,7 +5,7 @@ function f(p: (x: T) => void) { }; >f : (p: (x: T) => void) => void > : ^ ^^ ^^^^^^^^^ >p : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 35127cce611af..d6370fb815c56 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -7,7 +7,7 @@ Instantiation count: 2,500 === genericFunctionInference1.ts === declare function pipe(ab: (...args: A) => B): (...args: A) => B; >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A_1) => B_1, bc: (b: B_1) => C): (...args: A_1) => C; (ab: (...args: A_1) => B_1, bc: (b: B_1) => C, cd: (c: C) => D): (...args: A_1) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >ab : (...args: A) => B > : ^^^^ ^^ ^^^^^ >args : A @@ -17,7 +17,7 @@ declare function pipe(ab: (...args: A) => B): (...args: A) = declare function pipe(ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; >pipe : { (ab: (...args: A_1) => B_1): (...args: A_1) => B_1; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A_1) => B_1, bc: (b: B_1) => C_1, cd: (c: C_1) => D): (...args: A_1) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >ab : (...args: A) => B > : ^^^^ ^^ ^^^^^ >args : A @@ -31,7 +31,7 @@ declare function pipe(ab: (...args: A) => B, bc: (b: B) = declare function pipe(ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; >pipe : { (ab: (...args: A_1) => B_1): (...args: A_1) => B_1; (ab: (...args: A_1) => B_1, bc: (b: B_1) => C_1): (...args: A_1) => C_1; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >ab : (...args: A) => B > : ^^^^ ^^ ^^^^^ >args : A @@ -49,13 +49,13 @@ declare function pipe(ab: (...args: A) => B, bc: (b: B declare function list(a: T): T[]; >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ declare function box(x: V): { value: V }; >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : V > : ^ >value : V @@ -63,7 +63,7 @@ declare function box(x: V): { value: V }; declare function foo(x: T): T; >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ >x : T @@ -71,45 +71,45 @@ declare function foo(x: T): T; const f00 = pipe(list); >f00 : (a: T) => T[] -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ >pipe(list) : (a: T) => T[] -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f01 = pipe(list, box); >f01 : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe(list, box) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f02 = pipe(box, list); >f02 : (x: V) => { value: V; }[] -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >pipe(box, list) : (x: V) => { value: V; }[] -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f03 = pipe(x => list(x), box); >f03 : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe(x => list(x), box) : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: any) => any[] > : ^ ^^^^^^^^^^^^^^^ >x : any @@ -117,21 +117,21 @@ const f03 = pipe(x => list(x), box); >list(x) : any[] > : ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : any > : ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f04 = pipe(list, x => box(x)); >f04 : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe(list, x => box(x)) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => box(x) : (x: T[]) => { value: T[]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T[] @@ -139,17 +139,17 @@ const f04 = pipe(list, x => box(x)); >box(x) : { value: T[]; } > : ^^^^^^^^^^^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ const f05 = pipe(x => list(x), x => box(x)) >f05 : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe(x => list(x), x => box(x)) : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: any) => any[] > : ^ ^^^^^^^^^^^^^^^ >x : any @@ -157,7 +157,7 @@ const f05 = pipe(x => list(x), x => box(x)) >list(x) : any[] > : ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : any > : ^^^ >x => box(x) : (x: any[]) => { value: any[]; } @@ -167,33 +167,33 @@ const f05 = pipe(x => list(x), x => box(x)) >box(x) : { value: any[]; } > : ^^^^^^^^^^^^^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : any[] > : ^^^^^ const f06 = pipe(list, pipe(box)); >f06 : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe(list, pipe(box)) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >pipe(box) : (x: T[]) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f07 = pipe(x => list(x), pipe(box)); >f07 : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe(x => list(x), pipe(box)) : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: any) => any[] > : ^ ^^^^^^^^^^^^^^^ >x : any @@ -201,23 +201,23 @@ const f07 = pipe(x => list(x), pipe(box)); >list(x) : any[] > : ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : any > : ^^^ >pipe(box) : (x: any[]) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f08 = pipe(x => list(x), pipe(x => box(x))); >f08 : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe(x => list(x), pipe(x => box(x))) : (x: any) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: any) => any[] > : ^ ^^^^^^^^^^^^^^^ >x : any @@ -225,13 +225,13 @@ const f08 = pipe(x => list(x), pipe(x => box(x))); >list(x) : any[] > : ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : any > : ^^^ >pipe(x => box(x)) : (x: any[]) => { value: any[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => box(x) : (x: any[]) => { value: any[]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : any[] @@ -239,19 +239,19 @@ const f08 = pipe(x => list(x), pipe(x => box(x))); >box(x) : { value: any[]; } > : ^^^^^^^^^^^^^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : any[] > : ^^^^^ const f09 = pipe(list, x => x.length); >f09 : (a: T) => number -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ >pipe(list, x => x.length) : (a: T) => number -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x.length : (x: T[]) => number > : ^ ^^^^^^^^^^^^^^^^ >x : T[] @@ -265,81 +265,81 @@ const f09 = pipe(list, x => x.length); const f10 = pipe(foo); >f10 : (x: T) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ >pipe(foo) : (x: T) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ const f11 = pipe(foo, foo); >f11 : (x: T) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ >pipe(foo, foo) : (x: T) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ const g00: (x: T) => T[] = pipe(list); >g00 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >pipe(list) : (a: T) => T[] -> : ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const g01: (x: T) => { value: T[] } = pipe(list, box); >g01 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(list, box) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const g02: (x: T) => { value: T }[] = pipe(box, list); >g02 : (x: T) => { value: T; }[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T > : ^ >pipe(box, list) : (x: T) => { value: T; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const g03: (x: T) => { value: T[] } = pipe(x => list(x), box); >g03 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(x => list(x), box) : (x: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: T) => T[] > : ^ ^^^^^^^^^^^ >x : T @@ -347,25 +347,25 @@ const g03: (x: T) => { value: T[] } = pipe(x => list(x), box); >list(x) : T[] > : ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const g04: (x: T) => { value: T[] } = pipe(list, x => box(x)); >g04 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(list, x => box(x)) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => box(x) : (x: T[]) => { value: T[]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T[] @@ -373,21 +373,21 @@ const g04: (x: T) => { value: T[] } = pipe(list, x => box(x)); >box(x) : { value: T[]; } > : ^^^^^^^^^^^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ const g05: (x: T) => { value: T[] } = pipe(x => list(x), x => box(x)) >g05 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(x => list(x), x => box(x)) : (x: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: T) => T[] > : ^ ^^^^^^^^^^^ >x : T @@ -395,7 +395,7 @@ const g05: (x: T) => { value: T[] } = pipe(x => list(x), x => box(x)) >list(x) : T[] > : ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x => box(x) : (x: T[]) => { value: T[]; } @@ -405,41 +405,41 @@ const g05: (x: T) => { value: T[] } = pipe(x => list(x), x => box(x)) >box(x) : { value: T[]; } > : ^^^^^^^^^^^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ const g06: (x: T) => { value: T[] } = pipe(list, pipe(box)); >g06 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(list, pipe(box)) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >pipe(box) : (x: T[]) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const g07: (x: T) => { value: T[] } = pipe(x => list(x), pipe(box)); >g07 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(x => list(x), pipe(box)) : (x: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: T) => T[] > : ^ ^^^^^^^^^^^ >x : T @@ -447,27 +447,27 @@ const g07: (x: T) => { value: T[] } = pipe(x => list(x), pipe(box)); >list(x) : T[] > : ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >pipe(box) : (x: T[]) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const g08: (x: T) => { value: T[] } = pipe(x => list(x), pipe(x => box(x))); >g08 : (x: T) => { value: T[]; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >value : T[] > : ^^^ >pipe(x => list(x), pipe(x => box(x))) : (x: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => list(x) : (x: T) => T[] > : ^ ^^^^^^^^^^^ >x : T @@ -475,13 +475,13 @@ const g08: (x: T) => { value: T[] } = pipe(x => list(x), pipe(x => box(x))); >list(x) : T[] > : ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >pipe(x => box(x)) : (x: T[]) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => box(x) : (x: T[]) => { value: T[]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T[] @@ -489,21 +489,21 @@ const g08: (x: T) => { value: T[] } = pipe(x => list(x), pipe(x => box(x))); >box(x) : { value: T[]; } > : ^^^^^^^^^^^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ const g09: (x: T) => number = pipe(list, x => x.length); >g09 : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >pipe(list, x => x.length) : (a: T) => number -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x.length : (x: T[]) => number > : ^ ^^^^^^^^^^^^^^^^ >x : T[] @@ -517,7 +517,7 @@ const g09: (x: T) => number = pipe(list, x => x.length); const g10: (x: T) => T = pipe(foo); >g10 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ >x : T @@ -525,13 +525,13 @@ const g10: (x: T) => T = pipe(foo); >pipe(foo) : (x: T) => T > : ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ const g12: (x: T) => T = pipe(foo, foo); >g12 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ >x : T @@ -539,15 +539,15 @@ const g12: (x: T) => T = pipe(foo, foo); >pipe(foo, foo) : (x: T) => T > : ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ declare function pipe2(ab: (a: A) => B, cd: (c: C) => D): (a: [A, C]) => [B, D]; >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >ab : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -561,91 +561,91 @@ declare function pipe2(ab: (a: A) => B, cd: (c: C) => D): (a: [A, C] const f20 = pipe2(list, box); >f20 : (a: [T, V]) => [T[], { value: V; }] -> : ^^^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >pipe2(list, box) : (a: [T, V]) => [T[], { value: V; }] -> : ^^^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f21 = pipe2(box, list); >f21 : (a: [V, T]) => [{ value: V; }, T[]] -> : ^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^ ^ >pipe2(box, list) : (a: [V, T]) => [{ value: V; }, T[]] -> : ^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^ ^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f22 = pipe2(list, list); >f22 : (a: [T, T1]) => [T[], T1[]] -> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^ +> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ >pipe2(list, list) : (a: [T, T1]) => [T[], T1[]] -> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^ +> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f23 = pipe2(box, box); >f23 : (a: [V, V1]) => [{ value: V; }, { value: V1; }] -> : ^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^ ^^^^^^^^^^ >pipe2(box, box) : (a: [V, V1]) => [{ value: V; }, { value: V1; }] -> : ^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^ ^^^^^^^^^^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f24 = pipe2(f20, f20); >f24 : (a: [[T, V], [T1, V1]]) => [[T[], { value: V; }], [T1[], { value: V1; }]] -> : ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^ >pipe2(f20, f20) : (a: [[T, V], [T1, V1]]) => [[T[], { value: V; }], [T1[], { value: V1; }]] -> : ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >f20 : (a: [T, V]) => [T[], { value: V; }] -> : ^^^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ ^ ^^^^^^^ ^ >f20 : (a: [T, V]) => [T[], { value: V; }] -> : ^^^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ ^ ^^^^^^^ ^ const f25 = pipe2(foo, foo); >f25 : (a: [T, T1]) => [T, T1] -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ >pipe2(foo, foo) : (a: [T, T1]) => [T, T1] -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ const f26 = pipe2(f25, f25); >f26 : (a: [[T, T1], [T2, T3]]) => [[T, T1], [T2, T3]] -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^ ^^ ^^ >pipe2(f25, f25) : (a: [[T, T1], [T2, T3]]) => [[T, T1], [T2, T3]] -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ ^^ ^^ ^^ >pipe2 : (ab: (a: A) => B, cd: (c: C) => D) => (a: [A, C]) => [B, D] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >f25 : (a: [T, T1]) => [T, T1] -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ >f25 : (a: [T, T1]) => [T, T1] -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^ declare function pipe3(ab: (a: A) => B, ac: (a: A) => C): (a: A) => [B, C]; >pipe3 : (ab: (a: A) => B, ac: (a: A) => C) => (a: A) => [B, C] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >ab : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -659,43 +659,43 @@ declare function pipe3(ab: (a: A) => B, ac: (a: A) => C): (a: A) => [B, const f30 = pipe3(list, box); >f30 : (a: T) => [T[], { value: T; }] -> : ^^^^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ ^ ^^^^^^^^^ >pipe3(list, box) : (a: T) => [T[], { value: T; }] -> : ^^^^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ ^ ^^^^^^^^^ >pipe3 : (ab: (a: A) => B, ac: (a: A) => C) => (a: A) => [B, C] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f31 = pipe3(box, list); >f31 : (a: V) => [{ value: V; }, V[]] -> : ^ ^^ ^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ +> : ^^^^ ^^^^^^^^ ^^^^^^^ ^ ^ >pipe3(box, list) : (a: V) => [{ value: V; }, V[]] -> : ^ ^^ ^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ +> : ^^^^ ^^^^^^^^ ^^^^^^^ ^ ^ >pipe3 : (ab: (a: A) => B, ac: (a: A) => C) => (a: A) => [B, C] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f32 = pipe3(list, list); >f32 : (a: T) => [T[], T[]] -> : ^^^^ ^^^^^^^^ ^^^ ^^^ +> : ^^^^ ^^^^^^^^ ^ ^ >pipe3(list, list) : (a: T) => [T[], T[]] -> : ^^^^ ^^^^^^^^ ^^^ ^^^ +> : ^^^^ ^^^^^^^^ ^ ^ >pipe3 : (ab: (a: A) => B, ac: (a: A) => C) => (a: A) => [B, C] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ declare function pipe4(funcs: [(a: A) => B, (b: B) => C]): (a: A) => C; >pipe4 : (funcs: [(a: A) => B, (b: B) => C]) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >funcs : [(a: A) => B, (b: B) => C] > : ^^ ^^ ^^^^^ ^^^ ^^ ^^^^^ ^ >a : A @@ -707,35 +707,35 @@ declare function pipe4(funcs: [(a: A) => B, (b: B) => C]): (a: A) => C; const f40 = pipe4([list, box]); >f40 : (a: T) => { value: T[]; } -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ ^^^^^^^^^^^ >pipe4([list, box]) : (a: T) => { value: T[]; } -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ ^^^^^^^^^^^ >pipe4 : (funcs: [(a: A) => B, (b: B) => C]) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[list, box] : [(a: T) => T[], (x: V) => { value: V; }] -> : ^^ ^^ ^^ ^^^^^ ^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const f41 = pipe4([box, list]); >f41 : (a: V) => { value: V; }[] -> : ^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >pipe4([box, list]) : (a: V) => { value: V; }[] -> : ^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >pipe4 : (funcs: [(a: A) => B, (b: B) => C]) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[box, list] : [(x: V) => { value: V; }, (a: T) => T[]] -> : ^^ ^^ ^^ ^^^^^ ^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ declare function pipe5(f: (a: A) => B): { f: (a: A) => B }; >pipe5 : (f: (a: A) => B) => { f: (a: A) => B; } -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -747,17 +747,17 @@ declare function pipe5(f: (a: A) => B): { f: (a: A) => B }; const f50 = pipe5(list); // No higher order inference >f50 : { f: (a: unknown) => unknown[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ >pipe5(list) : { f: (a: unknown) => unknown[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ >pipe5 : (f: (a: A) => B) => { f: (a: A) => B; } -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >list : (a: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ declare function wrap3(f: (a: A, b1: B, b2: B) => C): (a: A, b1: B, b2: B) => C; >wrap3 : (f: (a: A, b1: B, b2: B) => C) => (a: A, b1: B, b2: B) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >f : (a: A, b1: B, b2: B) => C > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A @@ -775,7 +775,7 @@ declare function wrap3(f: (a: A, b1: B, b2: B) => C): (a: A, b1: B, b2: declare function baz(t1: T, t2: T, u: U): [T, U]; >baz : (t1: T, t2: T, u: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t1 : T > : ^ >t2 : T @@ -785,17 +785,17 @@ declare function baz(t1: T, t2: T, u: U): [T, U]; let f60 = wrap3(baz); >f60 : (a: T, b1: U, b2: U) => [T, U] -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^ ^^^^^^^^ ^ ^ >wrap3(baz) : (a: T, b1: U, b2: U) => [T, U] -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^ ^^^^^^^^ ^ ^ >wrap3 : (f: (a: A, b1: B, b2: B) => C) => (a: A, b1: B, b2: B) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >baz : (t1: T, t2: T, u: U) => [T, U] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ declare const list2: { >list2 : { (a: T): T[]; foo: string; bar(): number; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ (a: T): T[]; >a : T @@ -812,27 +812,27 @@ declare const list2: { let f70 = pipe(list2, box); >f70 : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe(list2, box) : (a: T) => { value: T[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >list2 : { (a: T): T[]; foo: string; bar(): number; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ let f71 = pipe(box, list2); >f71 : (x: V) => { value: V; }[] -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >pipe(box, list2) : (x: V) => { value: V; }[] -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >box : (x: V) => { value: V; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list2 : { (a: T): T[]; foo: string; bar(): number; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^ declare class Point { >Point : Point @@ -874,7 +874,7 @@ declare class Bag { function asFunction(cf: new (...args: A) => B) { >asFunction : (cf: new (...args: A) => B) => (...args: A) => B -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >cf : new (...args: A) => B > : ^^^^^^^^ ^^ ^^^^^ >args : A @@ -901,7 +901,7 @@ const newPoint = asFunction(Point); >asFunction(Point) : (x: number, y: number) => Point > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >asFunction : (cf: new (...args: A) => B) => (...args: A) => B -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >Point : typeof Point > : ^^^^^^^^^^^^ @@ -911,7 +911,7 @@ const newBag = asFunction(Bag); >asFunction(Bag) : (...args: T[]) => Bag > : ^^^^^^^ ^^^^^^^^^^^^^^^^ >asFunction : (cf: new (...args: A) => B) => (...args: A) => B -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >Bag : typeof Bag > : ^^^^^^^^^^ @@ -988,7 +988,7 @@ type CompClass

= new (props: P) => Comp

; declare function myHoc

(C: CompClass

): CompClass

; >myHoc :

(C: CompClass

) => CompClass

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : CompClass

> : ^^^^^^^^^^^^ @@ -1008,11 +1008,11 @@ declare class GenericComp extends Comp> {} const GenericComp2 = myHoc(GenericComp); >GenericComp2 : new (props: GenericProps) => Comp> -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^ >myHoc(GenericComp) : new (props: GenericProps) => Comp> -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^ >myHoc :

(C: CompClass

) => CompClass

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >GenericComp : typeof GenericComp > : ^^^^^^^^^^^^^^^^^^ @@ -1020,7 +1020,7 @@ const GenericComp2 = myHoc(GenericComp); function mirror(f: (a: A) => B): (a: A) => B { return f; } >mirror : (f: (a: A) => B) => (a: A) => B -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -1036,9 +1036,9 @@ var identityM = mirror(identity); >mirror(identity) : (a: T) => T > : ^^^^ ^^^^^^^^^ >mirror : (f: (a: A) => B) => (a: A) => B -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var x = 1; >x : number @@ -1052,7 +1052,7 @@ var y = identity(x); >identity(x) : number > : ^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : number > : ^^^^^^ @@ -1070,7 +1070,7 @@ var z = identityM(x); export function keyOf(value: { key: a; }): a { >keyOf : (value: { key: a; }) => a -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : { key: a; } > : ^^^^^^^ ^^^ >key : a @@ -1102,7 +1102,7 @@ var data: Data[] = []; declare function toKeys(values: a[], toKey: (value: a) => string): string[]; >toKeys : (values: a[], toKey: (value: a) => string) => string[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >values : a[] > : ^^^ >toKey : (value: a) => string @@ -1114,17 +1114,17 @@ toKeys(data, keyOf); // Error >toKeys(data, keyOf) : string[] > : ^^^^^^^^ >toKeys : (values: a[], toKey: (value: a) => string) => string[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >data : Data[] > : ^^^^^^ >keyOf : (value: { key: a; }) => a -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // #9366 function flip(f: (a: a, b: b) => c): (b: b, a: a) => c { >flip : (f: (a: a, b: b) => c) => (b: b, a: a) => c -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >f : (a: a, b: b) => c > : ^ ^^ ^^ ^^ ^^^^^ >a : a @@ -1154,7 +1154,7 @@ function flip(f: (a: a, b: b) => c): (b: b, a: a) => c { } function zip(x: T, y: U): [T, U] { >zip : (x: T, y: U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1171,35 +1171,35 @@ function zip(x: T, y: U): [T, U] { var expected: (y: U, x: T) => [T, U] = flip(zip); >expected : (y: U, x: T) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >y : U > : ^ >x : T > : ^ >flip(zip) : (b: U, a: T) => [T, U] -> : ^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^ ^^^^^ ^^^^^^^^ ^ ^ >flip : (f: (a: a, b: b) => c) => (b: b, a: a) => c -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >zip : (x: T, y: U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var actual = flip(zip); >actual : (b: U, a: T) => [T, U] -> : ^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^ ^^^^^^^^ ^ ^ >flip(zip) : (b: U, a: T) => [T, U] -> : ^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^ ^^^^^^^^ ^ ^ >flip : (f: (a: a, b: b) => c) => (b: b, a: a) => c -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >zip : (x: T, y: U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ // #9366 const map = (transform: (t: T) => U) => >map : (transform: (t: T) => U) => (arr: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >(transform: (t: T) => U) => (arr: T[]) => arr.map(transform) : (transform: (t: T) => U) => (arr: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >transform : (t: T) => U > : ^ ^^ ^^^^^ >t : T @@ -1239,7 +1239,7 @@ const arr: string[] = map(identityStr)(['a']); >map(identityStr) : (arr: string[]) => string[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >map : (transform: (t: T) => U) => (arr: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >identityStr : (t: string) => string > : ^ ^^ ^^^^^^^^^^^ >['a'] : string[] @@ -1255,9 +1255,9 @@ const arr1: string[] = map(identity)(['a']); >map(identity) : (arr: T[]) => T[] > : ^^^^ ^^^^^^^^^^^^^ >map : (transform: (t: T) => U) => (arr: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >['a'] : string[] > : ^^^^^^^^ >'a' : "a" @@ -1267,7 +1267,7 @@ const arr1: string[] = map(identity)(['a']); function of2(one: a, two: b): [a, b] { >of2 : (one: a, two: b) => [a, b] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >one : a > : ^ >two : b @@ -1284,13 +1284,13 @@ function of2(one: a, two: b): [a, b] { const flipped = flip(of2); >flipped : (b: b, a: a) => [a, b] -> : ^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^ ^^^^^^^^ ^ ^ >flip(of2) : (b: b, a: a) => [a, b] -> : ^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^ ^^^^^^^^ ^ ^ >flip : (f: (a: a, b: b) => c) => (b: b, a: a) => c -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >of2 : (one: a, two: b) => [a, b] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ // #29904.1 @@ -1302,13 +1302,13 @@ type Component

= (props: P) => {}; declare const myHoc1:

(C: Component

) => Component

; >myHoc1 :

(C: Component

) => Component

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : Component

> : ^^^^^^^^^^^^ declare const myHoc2:

(C: Component

) => Component

; >myHoc2 :

(C: Component

) => Component

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : Component

> : ^^^^^^^^^^^^ @@ -1320,19 +1320,19 @@ declare const MyComponent1: Component<{ foo: 1 }>; const enhance = pipe( >enhance :

(C: Component

) => Component

-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >pipe( myHoc1, myHoc2,) :

(C: Component

) => Component

-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ myHoc1, >myHoc1 :

(C: Component

) => Component

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ myHoc2, >myHoc2 :

(C: Component

) => Component

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ); @@ -1342,7 +1342,7 @@ const MyComponent2 = enhance(MyComponent1); >enhance(MyComponent1) : Component<{ foo: 1; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ >enhance :

(C: Component

) => Component

-> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >MyComponent1 : Component<{ foo: 1; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ @@ -1350,11 +1350,11 @@ const MyComponent2 = enhance(MyComponent1); const fn20 = pipe((_a?: {}) => 1); >fn20 : (_a?: {} | undefined) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >pipe((_a?: {}) => 1) : (_a?: {} | undefined) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(_a?: {}) => 1 : (_a?: {}) => number > : ^ ^^^ ^^^^^^^^^^^ >_a : {} | undefined @@ -1374,9 +1374,9 @@ const fn30: Fn = pipe( >fn30 : Fn > : ^^ >pipe( x => x + 1, x => x * 2,) : (x: number) => number -> : ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ x => x + 1, >x => x + 1 : (x: number) => number @@ -1410,11 +1410,11 @@ const promise = Promise.resolve(1); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1430,9 +1430,9 @@ promise.then( pipe( >pipe( x => x + 1, x => x * 2, ) : (x: number) => number -> : ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ x => x + 1, >x => x + 1 : (x: number) => number @@ -1475,17 +1475,17 @@ declare const orUndefined: (name: string) => string | undefined; declare const identity: (value: T) => T; >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ const fn40 = pipe( >fn40 : () => string | undefined -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^ >pipe( getString, string => orUndefined(string), identity,) : () => string | undefined -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ getString, >getString : () => string @@ -1505,7 +1505,7 @@ const fn40 = pipe( identity, >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ); @@ -1517,17 +1517,17 @@ declare const getArray: () => string[]; declare const first: (ts: T[]) => T; >first : (ts: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ts : T[] > : ^^^ const fn60 = pipe( >fn60 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe( getArray, x => x, first,) : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ getArray, >getArray : () => string[] @@ -1543,17 +1543,17 @@ const fn60 = pipe( first, >first : (ts: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ); const fn61 = pipe( >fn61 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe( getArray, identity, first,) : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ getArray, >getArray : () => string[] @@ -1561,21 +1561,21 @@ const fn61 = pipe( identity, >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ first, >first : (ts: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ); const fn62 = pipe( >fn62 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe( getArray, x => x, x => first(x),) : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe : { (ab: (...args: A) => B): (...args: A) => B; (ab: (...args: A) => B, bc: (b: B) => C): (...args: A) => C; (ab: (...args: A) => B, bc: (b: B) => C, cd: (c: C) => D): (...args: A) => D; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ getArray, >getArray : () => string[] @@ -1597,7 +1597,7 @@ const fn62 = pipe( >first(x) : string > : ^^^^^^ >first : (ts: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string[] > : ^^^^^^^^ @@ -1607,7 +1607,7 @@ const fn62 = pipe( declare function foo2(fn: T, a?: U, b?: U): [T, U]; >foo2 : (fn: T, a?: U, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >fn : T > : ^ >a : U | undefined @@ -1619,25 +1619,25 @@ foo2(() => {}); >foo2(() => {}) : [() => void, () => void] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >foo2 : (fn: T, a?: U, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >() => {} : () => void > : ^^^^^^^^^^ foo2(identity); >foo2(identity) : [(value: T) => T, (value: T) => T] -> : ^^ ^^ ^^ ^^^^^ ^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^ ^ >foo2 : (fn: T, a?: U, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ foo2(identity, 1); >foo2(identity, 1) : [(value: T) => T, number] -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ >foo2 : (fn: T, a?: U, b?: U) => [T, U] -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -1645,7 +1645,7 @@ foo2(identity, 1); declare function times(fn: (i: number) => T): (n: number) => T[]; >times : (fn: (i: number) => T) => (n: number) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fn : (i: number) => T > : ^ ^^ ^^^^^ >i : number @@ -1659,11 +1659,11 @@ const a2 = times(identity)(5); // => [0, 1, 2, 3, 4] >times(identity)(5) : number[] > : ^^^^^^^^ >times(identity) : (n: number) => number[] -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >times : (fn: (i: number) => T) => (n: number) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >5 : 5 > : ^ diff --git a/tests/baselines/reference/genericFunctionInference2.types b/tests/baselines/reference/genericFunctionInference2.types index 7c21cf233254b..700b67a060e2c 100644 --- a/tests/baselines/reference/genericFunctionInference2.types +++ b/tests/baselines/reference/genericFunctionInference2.types @@ -11,7 +11,7 @@ type Reducer = (state: S) => S; declare function combineReducers(reducers: { [K in keyof S]: Reducer }): Reducer; >combineReducers : (reducers: { [K in keyof S]: Reducer; }) => Reducer -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >reducers : { [K in keyof S]: Reducer; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -33,7 +33,7 @@ const myReducer1: Reducer = combineReducers({ >combineReducers({ combined: combineReducers({ foo }),}) : Reducer<{ combined: { foo: number; }; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >combineReducers : (reducers: { [K in keyof S]: Reducer; }) => Reducer -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ combined: combineReducers({ foo }),} : { combined: Reducer<{ foo: number; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -43,7 +43,7 @@ const myReducer1: Reducer = combineReducers({ >combineReducers({ foo }) : Reducer<{ foo: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >combineReducers : (reducers: { [K in keyof S]: Reducer; }) => Reducer -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo } : { foo: Reducer; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : Reducer @@ -57,7 +57,7 @@ const myReducer2 = combineReducers({ >combineReducers({ combined: combineReducers({ foo }),}) : Reducer<{ combined: { foo: number; }; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >combineReducers : (reducers: { [K in keyof S]: Reducer; }) => Reducer -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ combined: combineReducers({ foo }),} : { combined: Reducer<{ foo: number; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -67,7 +67,7 @@ const myReducer2 = combineReducers({ >combineReducers({ foo }) : Reducer<{ foo: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >combineReducers : (reducers: { [K in keyof S]: Reducer; }) => Reducer -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo } : { foo: Reducer; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : Reducer @@ -79,7 +79,7 @@ const myReducer2 = combineReducers({ declare function withH(handlerCreators: HandleCreatorsFactory): U; >withH : (handlerCreators: HandleCreatorsFactory) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >handlerCreators : HandleCreatorsFactory > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -103,7 +103,7 @@ const enhancer4 = withH((props: Props) => ({ >withH((props: Props) => ({ onChange: (props) => (e: any) => {}, onSubmit: (props) => (e: any) => {},})) : { onChange: (e: any) => void; onSubmit: (e: any) => void; } > : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >withH : (handlerCreators: HandleCreatorsFactory) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(props: Props) => ({ onChange: (props) => (e: any) => {}, onSubmit: (props) => (e: any) => {},}) : (props: Props) => { onChange: (props: Props) => (e: any) => void; onSubmit: (props: Props) => (e: any) => void; } > : ^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >props : Props diff --git a/tests/baselines/reference/genericFunctionParameters.types b/tests/baselines/reference/genericFunctionParameters.types index 27ff47ac77cb3..21b3d66fac6a0 100644 --- a/tests/baselines/reference/genericFunctionParameters.types +++ b/tests/baselines/reference/genericFunctionParameters.types @@ -3,25 +3,25 @@ === genericFunctionParameters.ts === declare function f1(cb: (x: S) => T): T; >f1 : (cb: (x: S) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (x: S) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : S > : ^ declare function f2(cb: (x: S) => T): T; >f2 : (cb: (x: S) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (x: S) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : S > : ^ declare function f3(cb: >(x: S) => T): T; >f3 : (cb: >(x: S) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : >(x: S) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : S > : ^ @@ -31,7 +31,7 @@ let x1 = f1(x => x); // {} >f1(x => x) : unknown > : ^^^^^^^ >f1 : (cb: (x: S) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: S) => S > : ^^^^ ^^^^^^^^^ >x : S @@ -45,7 +45,7 @@ let x2 = f2(x => x); // number >f2(x => x) : number > : ^^^^^^ >f2 : (cb: (x: S) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: S) => S > : ^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : S @@ -59,7 +59,7 @@ let x3 = f3(x => x); // Array >f3(x => x) : any[] > : ^^^^^ >f3 : (cb: >(x: S) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: S) => S > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^ >x : S @@ -71,9 +71,9 @@ let x3 = f3(x => x); // Array declare const s: (go: (ops: { init(): S; }) => R) => R; >s : (go: (ops: { init(): S; }) => R) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >go : (ops: { init(): S; }) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ops : { init(): S; } > : ^^^^^^^^^^ ^^^ >init : () => S @@ -85,7 +85,7 @@ const x = s(a => a.init()); // x is any, should have been {} >s(a => a.init()) : unknown > : ^^^^^^^ >s : (go: (ops: { init(): S; }) => R) => R -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a => a.init() : (a: { init(): S; }) => S > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >a : { init(): S; } diff --git a/tests/baselines/reference/genericFunctionTypedArgumentsAreFixed.types b/tests/baselines/reference/genericFunctionTypedArgumentsAreFixed.types index 060368f72b61a..e9e61deb6032a 100644 --- a/tests/baselines/reference/genericFunctionTypedArgumentsAreFixed.types +++ b/tests/baselines/reference/genericFunctionTypedArgumentsAreFixed.types @@ -3,7 +3,7 @@ === genericFunctionTypedArgumentsAreFixed.ts === declare function map(f: (x: T) => U, xs: T[]): U[]; >map : (f: (x: T) => U, xs: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >f : (x: T) => U > : ^ ^^ ^^^^^ >x : T @@ -15,7 +15,7 @@ map((a) => a.length, [1]); >map((a) => a.length, [1]) : any[] > : ^^^^^ >map : (f: (x: T) => U, xs: T[]) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(a) => a.length : (a: number) => any > : ^ ^^^^^^^^^^^^^^^^ >a : number diff --git a/tests/baselines/reference/genericFunctions0.types b/tests/baselines/reference/genericFunctions0.types index 650dc5c083a73..30e42092a173d 100644 --- a/tests/baselines/reference/genericFunctions0.types +++ b/tests/baselines/reference/genericFunctions0.types @@ -3,7 +3,7 @@ === genericFunctions0.ts === function foo (x: T) { return x; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -15,7 +15,7 @@ var x = foo(5); // 'x' should be number >foo(5) : number > : ^^^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >5 : 5 > : ^ diff --git a/tests/baselines/reference/genericFunctions1.types b/tests/baselines/reference/genericFunctions1.types index 9ebb9f32b2e47..ea170878f3312 100644 --- a/tests/baselines/reference/genericFunctions1.types +++ b/tests/baselines/reference/genericFunctions1.types @@ -3,7 +3,7 @@ === genericFunctions1.ts === function foo (x: T) { return x; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -15,7 +15,7 @@ var x = foo(5); // 'x' should be number >foo(5) : 5 > : ^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >5 : 5 > : ^ diff --git a/tests/baselines/reference/genericFunctions2.types b/tests/baselines/reference/genericFunctions2.types index 881f6a349dd22..da05e8fd2a1a6 100644 --- a/tests/baselines/reference/genericFunctions2.types +++ b/tests/baselines/reference/genericFunctions2.types @@ -3,7 +3,7 @@ === genericFunctions2.ts === declare function map (items: T[], f: (x: T) => U): U[]; >map : (items: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >items : T[] > : ^^^ >f : (x: T) => U @@ -21,7 +21,7 @@ var lengths = map(myItems, x => x.length); >map(myItems, x => x.length) : number[] > : ^^^^^^^^ >map : (items: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >myItems : string[] > : ^^^^^^^^ >x => x.length : (x: string) => number diff --git a/tests/baselines/reference/genericFunctions3.types b/tests/baselines/reference/genericFunctions3.types index c6aafa2b8cd49..f1d5259a31e51 100644 --- a/tests/baselines/reference/genericFunctions3.types +++ b/tests/baselines/reference/genericFunctions3.types @@ -11,13 +11,13 @@ interface Query { function from(arg: boolean): Query; // was Error: Overload signature is not compatible with function definition. >from : (arg: boolean) => Query -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : boolean > : ^^^^^^^ function from(arg: any): Query { >from : (arg: boolean) => Query -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >arg : any return undefined; diff --git a/tests/baselines/reference/genericFunctionsAndConditionalInference.types b/tests/baselines/reference/genericFunctionsAndConditionalInference.types index 6fa52e9872ea0..371fc391281f1 100644 --- a/tests/baselines/reference/genericFunctionsAndConditionalInference.types +++ b/tests/baselines/reference/genericFunctionsAndConditionalInference.types @@ -9,13 +9,13 @@ type Boxified = { [P in keyof T]: { value: T[P]} }; declare function unboxify(obj: Boxified): T; >unboxify : (obj: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : Boxified > : ^^^^^^^^^^^ function foo(obj: { u: { value: U }, v: { value: V } }) { >foo : (obj: { u: { value: U; }; v: { value: V; }; }) => { u: U; v: V; } -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >obj : { u: { value: U; }; v: { value: V; }; } > : ^^^^^ ^^^^^ ^^^ >u : { value: U; } @@ -31,7 +31,7 @@ function foo(obj: { u: { value: U }, v: { value: V } }) { >unboxify(obj) : { u: U; v: V; } > : ^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : { u: { value: U; }; v: { value: V; }; } > : ^^^^^ ^^^^^ ^^^ } @@ -42,7 +42,7 @@ let qq = foo({ u: { value: 10 }, v: { value: 'hello'} }); // { u: U, v: V } but >foo({ u: { value: 10 }, v: { value: 'hello'} }) : { u: number; v: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: { u: { value: U; }; v: { value: V; }; }) => { u: U; v: V; } -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >{ u: { value: 10 }, v: { value: 'hello'} } : { u: { value: number; }; v: { value: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >u : { value: number; } @@ -99,7 +99,7 @@ interface Ops { lr(a: Result, o: Result): Result> >lr : (a: Result, o: Result) => Result> -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : Result > : ^^^^^^^^^^^^ >o : Result @@ -107,7 +107,7 @@ interface Ops { dict:

(p: {[k in keyof P]: Result}) => Result >dict :

(p: { [k in keyof P]: Result; }) => Result -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : { [k in keyof P]: Result; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -127,9 +127,9 @@ const right: Ops<"right"> = {} as any const ok = (at: Ops) => ({lr: at.lr(at.str, at.num)}) >ok : (at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(at: Ops) => ({lr: at.lr(at.str, at.num)}) : (at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >at : Ops > : ^^^^^^ >({lr: at.lr(at.str, at.num)}) : { lr: Result>; } @@ -161,9 +161,9 @@ const ok = (at: Ops) => ({lr: at.lr(at.str, at.num)}) const orphaned = (at: Ops) => at.dict(ok(at)) >orphaned : (at: Ops) => Result; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(at: Ops) => at.dict(ok(at)) : (at: Ops) => Result; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >at : Ops > : ^^^^^^ >at.dict(ok(at)) : Result; }> @@ -177,7 +177,7 @@ const orphaned = (at: Ops) => at.dict(ok(at)) >ok(at) : { lr: Result>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ok : (at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >at : Ops > : ^^^^^^ @@ -187,7 +187,7 @@ const leftOk = ok(left) >ok(left) : { lr: string; } > : ^^^^^^^^^^^^^^^ >ok : (at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >left : Ops<"left"> > : ^^^^^^^^^^^ @@ -197,7 +197,7 @@ const leftOrphaned = orphaned(left) >orphaned(left) : { lr: string; } > : ^^^^^^^^^^^^^^^ >orphaned : (at: Ops) => Result; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >left : Ops<"left"> > : ^^^^^^^^^^^ @@ -207,7 +207,7 @@ const rightOk = ok(right) >ok(right) : { lr: number; } > : ^^^^^^^^^^^^^^^ >ok : (at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >right : Ops<"right"> > : ^^^^^^^^^^^^ @@ -217,7 +217,7 @@ const rightOrphaned = orphaned(right) >orphaned(right) : { lr: number; } > : ^^^^^^^^^^^^^^^ >orphaned : (at: Ops) => Result; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >right : Ops<"right"> > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericFunctionsNotContextSensitive.types b/tests/baselines/reference/genericFunctionsNotContextSensitive.types index e6bf5f495af6a..dea7d374781d4 100644 --- a/tests/baselines/reference/genericFunctionsNotContextSensitive.types +++ b/tests/baselines/reference/genericFunctionsNotContextSensitive.types @@ -5,9 +5,9 @@ const f = (x: G) => void>(_: F): F => _; >f : (x: G) => void>(_: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ > (x: G) => void>(_: F): F => _ : (x: G) => void>(_: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : any[] > : ^^^^^ >x : G @@ -19,13 +19,13 @@ const f = (x: G) => void>(_: F): F => _; const a = f((_: K) => _ => ({})); // (_: K) => (_: G) => {} >a : (_: K) => (_: G) => {} -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ >f((_: K) => _ => ({})) : (_: K) => (_: G) => {} -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ >f : (x: G) => void>(_: F) => F -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(_: K) => _ => ({}) : (_: K) => (_: G) => {} -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ >_ : K > : ^ >_ => ({}) : (_: G) => {} diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types index f261530b260b4..1e5106a23bf5c 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters1.types @@ -4,7 +4,7 @@ interface Utils { fold(c?: Array, folder?: (s: S, t: T) => T, init?: S): T; >fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >c : T[] > : ^^^ >folder : (s: S, t: T) => T @@ -25,39 +25,39 @@ utils.fold(); // no error >utils.fold() : unknown > : ^^^^^^^ >utils.fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ utils.fold(null); // no error >utils.fold(null) : unknown > : ^^^^^^^ >utils.fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ utils.fold(null, null); // no error >utils.fold(null, null) : unknown > : ^^^^^^^ >utils.fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ utils.fold(null, null, null); // no error >utils.fold(null, null, null) : unknown > : ^^^^^^^ >utils.fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c?: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types index e3b555bcaf788..f7c9d1e21977f 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters2.types @@ -4,7 +4,7 @@ interface Utils { fold(c: Array, folder?: (s: S, t: T) => T, init?: S): T; >fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >c : T[] > : ^^^ >folder : (s: S, t: T) => T @@ -25,39 +25,39 @@ utils.fold(); // error >utils.fold() : unknown > : ^^^^^^^ >utils.fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ utils.fold(null); // no error >utils.fold(null) : unknown > : ^^^^^^^ >utils.fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ utils.fold(null, null); // no error >utils.fold(null, null) : unknown > : ^^^^^^^ >utils.fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ utils.fold(null, null, null); // error: Unable to invoke type with no call signatures >utils.fold(null, null, null) : unknown > : ^^^^^^^ >utils.fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >utils : Utils > : ^^^^^ >fold : (c: Array, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types index 1f5280e89a789..292d855ebc188 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.types @@ -14,7 +14,7 @@ class Collection { interface Utils { fold(c?: Collection, folder?: (s: S, t: T) => T, init?: S): T; >fold : (c?: Collection, folder?: (s: S, t: T) => T, init?: S) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >c : Collection > : ^^^^^^^^^^^^^ >folder : (s: S, t: T) => T @@ -28,7 +28,7 @@ interface Utils { mapReduce(c: Collection, mapper: (x: T) => U, reducer: (y: U) => V): Collection; >mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : Collection > : ^^^^^^^^^^^^^ >mapper : (x: T) => U @@ -58,11 +58,11 @@ var r3 = utils.mapReduce(c, (x) => { return 1 }, (y) => { return new Date() }); >utils.mapReduce(c, (x) => { return 1 }, (y) => { return new Date() }) : Collection > : ^^^^^^^^^^^^^^^^ >utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >utils : Utils > : ^^^^^ >mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : Collection > : ^^^^^^^^^^^^^^^^^^ >(x) => { return 1 } : (x: string) => number @@ -86,11 +86,11 @@ var r4 = utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return >utils.mapReduce(c, (x: string) => { return 1 }, (y: number) => { return new Date() }) : Collection > : ^^^^^^^^^^^^^^^^ >utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >utils : Utils > : ^^^^^ >mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : Collection > : ^^^^^^^^^^^^^^^^^^ >(x: string) => { return 1 } : (x: string) => number @@ -136,11 +136,11 @@ var r5 = utils.mapReduce(c, f1, f2); >utils.mapReduce(c, f1, f2) : Collection > : ^^^^^^^^^^^^^^^^ >utils.mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >utils : Utils > : ^^^^^ >mapReduce : (c: Collection, mapper: (x: T) => U, reducer: (y: U) => V) => Collection -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : Collection > : ^^^^^^^^^^^^^^^^^^ >f1 : (x: string) => number diff --git a/tests/baselines/reference/genericImplements.types b/tests/baselines/reference/genericImplements.types index 41c97fb25adf0..c31e408d31d80 100644 --- a/tests/baselines/reference/genericImplements.types +++ b/tests/baselines/reference/genericImplements.types @@ -16,7 +16,7 @@ class B { b; }; interface I { f(): T; >f : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } // { f: () => { a; } } @@ -27,7 +27,7 @@ class X implements I { f(): T { return undefined; } >f : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -40,7 +40,7 @@ class Y implements I { f(): T { return undefined; } >f : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -53,7 +53,7 @@ class Z implements I { f(): T { return undefined; } >f : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ diff --git a/tests/baselines/reference/genericIndexedAccessMethodIntersectionCanBeAccessed.types b/tests/baselines/reference/genericIndexedAccessMethodIntersectionCanBeAccessed.types index 008056e556c20..101e3a6988104 100644 --- a/tests/baselines/reference/genericIndexedAccessMethodIntersectionCanBeAccessed.types +++ b/tests/baselines/reference/genericIndexedAccessMethodIntersectionCanBeAccessed.types @@ -29,9 +29,9 @@ type Service = { export const createService = ( >createService : (ServiceCtr: ExtendedService & Service) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >( ServiceCtr: ExtendedService & Service) => { Object.keys(ServiceCtr).forEach(key => { const method = (ServiceCtr)[key as keyof T]; const {__$daemonMode, __$action, id} = method; })} : (ServiceCtr: ExtendedService & Service) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ ServiceCtr: ExtendedService & Service >ServiceCtr : ExtendedService & Service diff --git a/tests/baselines/reference/genericInference2.types b/tests/baselines/reference/genericInference2.types index 58986441db6ff..7f15fa699a41a 100644 --- a/tests/baselines/reference/genericInference2.types +++ b/tests/baselines/reference/genericInference2.types @@ -25,7 +25,7 @@ } export function observable(value: T): Observable; >observable : (value: T) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ } @@ -41,11 +41,11 @@ >ko.observable("Bob") : ko.Observable > : ^^^^^^^^^^^^^^^^^^^^^ >ko.observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >ko : typeof ko > : ^^^^^^^^^ >observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >"Bob" : "Bob" > : ^^^^^ @@ -55,11 +55,11 @@ >ko.observable(37) : ko.Observable > : ^^^^^^^^^^^^^^^^^^^^^ >ko.observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >ko : typeof ko > : ^^^^^^^^^ >observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >37 : 37 > : ^^ diff --git a/tests/baselines/reference/genericInferenceDefaultTypeParameter.types b/tests/baselines/reference/genericInferenceDefaultTypeParameter.types index ed6f0ed8874b1..ee99753024195 100644 --- a/tests/baselines/reference/genericInferenceDefaultTypeParameter.types +++ b/tests/baselines/reference/genericInferenceDefaultTypeParameter.types @@ -22,7 +22,7 @@ type Type = { declare function f1(props: Type[T]): void; >f1 : (props: Type[T]) => void -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >props : Type[T] > : ^^^^^^^ @@ -30,7 +30,7 @@ f1(event => { }); >f1(event => { }) : void > : ^^^^ >f1 : (props: Type[T]) => void -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >event => { } : (event: string) => void > : ^ ^^^^^^^^^^^^^^^^^ >event : string @@ -40,7 +40,7 @@ f1<"a">(event => { }); >f1<"a">(event => { }) : void > : ^^^^ >f1 : (props: Type[T]) => void -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >event => { } : (event: string) => void > : ^ ^^^^^^^^^^^^^^^^^ >event : string @@ -50,7 +50,7 @@ f1<"b">(event => { }); >f1<"b">(event => { }) : void > : ^^^^ >f1 : (props: Type[T]) => void -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >event => { } : (event: number) => void > : ^ ^^^^^^^^^^^^^^^^^ >event : number diff --git a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types index 59a4dafcda412..34903e15eb3ee 100644 --- a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types +++ b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types @@ -29,7 +29,7 @@ type ButtonBaseProps = ComponentPropsWithRef & { child function Component(props: ButtonBaseProps) { >Component : (props: ButtonBaseProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >props : ButtonBaseProps > : ^^^^^^^^^^^^^^^^^^ @@ -44,7 +44,7 @@ const v1 = e.preventDefault()} />; > e.preventDefault()} /> : JSX.Element > : ^^^^^^^^^^^ >Component : (props: ButtonBaseProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >onClick : (e: React.MouseEvent) => void > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >e => e.preventDefault() : (e: React.MouseEvent) => void diff --git a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types index 8eaf444a17afc..3f1a590991f2d 100644 --- a/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types +++ b/tests/baselines/reference/genericInstantiationEquivalentToObjectLiteral.types @@ -37,13 +37,13 @@ y = x; declare function f(x: Pair); >f : (x: Pair) => any -> : ^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >x : Pair > : ^^^^^^^^^^ declare function f2(x: { first: T; second: U; }); >f2 : (x: { first: T; second: U; }) => any -> : ^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >x : { first: T; second: U; } > : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >first : T @@ -54,28 +54,28 @@ declare function f2(x: { first: T; second: U; }); f(x); >f(x) : any >f : (x: Pair) => any -> : ^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >x : Pair > : ^^^^^^^^^^^^^^^^^^^^ f(y); >f(y) : any >f : (x: Pair) => any -> : ^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >y : { first: string; second: number; } > : ^^^^^^^^^ ^^^^^^^^^^ ^^^ f2(x); >f2(x) : any >f2 : (x: { first: T; second: U; }) => any -> : ^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >x : Pair > : ^^^^^^^^^^^^^^^^^^^^ f2(y); >f2(y) : any >f2 : (x: { first: T; second: U; }) => any -> : ^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^ >y : { first: string; second: number; } > : ^^^^^^^^^ ^^^^^^^^^^ ^^^ diff --git a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types index 46bbc306aac17..315604ab9938e 100644 --- a/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types +++ b/tests/baselines/reference/genericInterfaceFunctionTypeParameter.types @@ -4,7 +4,7 @@ export interface IFoo { } export function foo(fn: (ifoo: IFoo) => void) { >foo : (fn: (ifoo: IFoo) => void) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >fn : (ifoo: IFoo) => void > : ^ ^^ ^^^^^ >ifoo : IFoo @@ -14,7 +14,7 @@ export function foo(fn: (ifoo: IFoo) => void) { >foo(fn) : void > : ^^^^ >foo : (fn: (ifoo: IFoo) => void) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >fn : (ifoo: IFoo) => void > : ^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/genericInterfaceImplementation.types b/tests/baselines/reference/genericInterfaceImplementation.types index 31670f13eceb3..c32177cf23327 100644 --- a/tests/baselines/reference/genericInterfaceImplementation.types +++ b/tests/baselines/reference/genericInterfaceImplementation.types @@ -8,7 +8,7 @@ interface IOption { flatten(): IOption; >flatten : () => IOption -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } class None implements IOption{ @@ -24,7 +24,7 @@ class None implements IOption{ flatten() : IOption { >flatten : () => IOption -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return new None(); >new None() : None diff --git a/tests/baselines/reference/genericIsNeverEmptyObject.types b/tests/baselines/reference/genericIsNeverEmptyObject.types index 4b65449c6080b..b00f8b20e7834 100644 --- a/tests/baselines/reference/genericIsNeverEmptyObject.types +++ b/tests/baselines/reference/genericIsNeverEmptyObject.types @@ -5,7 +5,7 @@ function test(obj: T) { >test : (obj: T) => Omit & { b: string; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : string > : ^^^^^^ >obj : T @@ -54,7 +54,7 @@ let o2: { b: string, x: number } = test(o1); >test(o1) : Omit<{ a: string; x: number; }, "a"> & { b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : (obj: T) => Omit & { b: string; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o1 : { a: string; x: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericMemberFunction.types b/tests/baselines/reference/genericMemberFunction.types index 6e0b9b8d0603d..ede6268091219 100644 --- a/tests/baselines/reference/genericMemberFunction.types +++ b/tests/baselines/reference/genericMemberFunction.types @@ -7,7 +7,7 @@ export class BuildError{ public parent(): FileWithErrors { >parent : () => FileWithErrors -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^ return undefined; >undefined : undefined @@ -20,7 +20,7 @@ export class FileWithErrors{ public errors(): BuildError[] { >errors : () => BuildError[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^ return undefined; >undefined : undefined @@ -28,7 +28,7 @@ export class FileWithErrors{ } public parent(): BuildResult { >parent : () => BuildResult -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^ return undefined; >undefined : undefined @@ -41,7 +41,7 @@ export class BuildResult{ public merge(other: BuildResult): void { >merge : (other: BuildResult) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >other : BuildResult > : ^^^^^^^^^^^^^^^^^^^^ @@ -87,7 +87,7 @@ export class BuildResult{ >forEach : any > : ^^^ >(each: FileWithErrors) => { this.removeFile(each); } : (each: FileWithErrors) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^ >each : FileWithErrors > : ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericNewInterface.types b/tests/baselines/reference/genericNewInterface.types index 854f51757dd57..f9479acd5b22d 100644 --- a/tests/baselines/reference/genericNewInterface.types +++ b/tests/baselines/reference/genericNewInterface.types @@ -3,7 +3,7 @@ === genericNewInterface.ts === function createInstance(ctor: new (s: string) => T): T { >createInstance : (ctor: new (s: string) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ctor : new (s: string) => T > : ^^^^^ ^^ ^^^^^ >s : string @@ -26,7 +26,7 @@ interface INewable { function createInstance2(ctor: INewable): T { >createInstance2 : (ctor: INewable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ctor : INewable > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericObjectRest.types b/tests/baselines/reference/genericObjectRest.types index 82629fedda86f..afa4be9a5efef 100644 --- a/tests/baselines/reference/genericObjectRest.types +++ b/tests/baselines/reference/genericObjectRest.types @@ -9,7 +9,7 @@ const a = 'a'; function f1(obj: T) { >f1 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : number @@ -94,7 +94,7 @@ const sb = Symbol(); function f2(obj: T) { >f2 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >[sa] : string > : ^^^^^^ >sa : unique symbol @@ -123,7 +123,7 @@ function f2(obj: T) { function f3(obj: T, k1: K1, k2: K2) { >f3 : (obj: T, k1: K1, k2: K2) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >k1 : K1 @@ -158,7 +158,7 @@ type Item = { a: string, b: number, c: boolean }; function f4(obj: Item, k1: K1, k2: K2) { >f4 : (obj: Item, k1: K1, k2: K2) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Item > : ^^^^ >k1 : K1 diff --git a/tests/baselines/reference/genericObjectSpreadResultInSwitch.types b/tests/baselines/reference/genericObjectSpreadResultInSwitch.types index 1a2cbde5968ed..b234bea958132 100644 --- a/tests/baselines/reference/genericObjectSpreadResultInSwitch.types +++ b/tests/baselines/reference/genericObjectSpreadResultInSwitch.types @@ -21,9 +21,9 @@ type Params = { const getType =

(params: P) => { >getType :

(params: P) => Omit -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ >

(params: P) => { const { // Omit foo, ...rest } = params; return rest;} :

(params: P) => Omit -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ >params : P > : ^ @@ -73,7 +73,7 @@ switch (params.tag) { >getType(params) : Omit<{ foo: string; } & { tag: "a"; type: number; }, "foo"> > : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ >getType :

(params: P) => Omit -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ >params : { foo: string; } & { tag: "a"; type: number; } > : ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ >type : number @@ -95,7 +95,7 @@ switch (params.tag) { >getType(params) : Omit<{ foo: string; } & { tag: "b"; type: string; }, "foo"> > : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ >getType :

(params: P) => Omit -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ >params : { foo: string; } & { tag: "b"; type: string; } > : ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ >type : string diff --git a/tests/baselines/reference/genericOverloadSignatures.types b/tests/baselines/reference/genericOverloadSignatures.types index 4286429dc25bd..2be684a288ea7 100644 --- a/tests/baselines/reference/genericOverloadSignatures.types +++ b/tests/baselines/reference/genericOverloadSignatures.types @@ -13,31 +13,31 @@ interface A { function f(a: T); >f : { (a: T): any; (a: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >a : T > : ^ function f(a: T); >f : { (a: T_1): any; (a: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >a : T > : ^ function f(a) { } >f : { (a: T): any; (a: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >a : any interface I2 { f(x: T): number; >f : { (x: T): number; (x: T_1): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ f(x: T): string; >f : { (x: T_1): number; (x: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ } @@ -62,7 +62,7 @@ class C2 { } var b: { >b : { new (x: T, y: string): C2; new (x: T, y: string): C2; } -> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ new (x: T, y: string): C2; >x : T diff --git a/tests/baselines/reference/genericParameterAssignability1.types b/tests/baselines/reference/genericParameterAssignability1.types index f2814a0b7408f..ea08632991ed7 100644 --- a/tests/baselines/reference/genericParameterAssignability1.types +++ b/tests/baselines/reference/genericParameterAssignability1.types @@ -3,15 +3,15 @@ === genericParameterAssignability1.ts === function f(x: T): T { return null; } >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var r = (x: T) => x; >r : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -19,9 +19,9 @@ var r = (x: T) => x; r = f; // should be allowed >r = f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >r : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/genericPrototypeProperty.types b/tests/baselines/reference/genericPrototypeProperty.types index ae3827bcaa444..c86593de880ec 100644 --- a/tests/baselines/reference/genericPrototypeProperty.types +++ b/tests/baselines/reference/genericPrototypeProperty.types @@ -39,9 +39,9 @@ var r3 = r.foo(null); >r3 : any >r.foo(null) : any >r.foo : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >r : C > : ^^^^^^ >foo : (x: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ diff --git a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors1.types b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors1.types index aae626c4291c1..54a89ed15051c 100644 --- a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors1.types +++ b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors1.types @@ -17,7 +17,7 @@ export declare module TypeScript { public addSpecialization(signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]): void; >addSpecialization : (signature: PullSignatureSymbol, typeArguments: PullTypeSymbol[]) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >signature : PullSignatureSymbol > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >typeArguments : PullTypeSymbol[] @@ -31,7 +31,7 @@ export declare module TypeScript { public findTypeParameter(name: string): PullTypeParameterSymbol; >findTypeParameter : (name: string) => PullTypeParameterSymbol -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >name : string > : ^^^^^^ } diff --git a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types index 3d8561cad7092..3bbf3c14793e8 100644 --- a/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types +++ b/tests/baselines/reference/genericRecursiveImplicitConstructorErrors2.types @@ -45,7 +45,7 @@ module TypeScript2 { public getType(): PullTypeSymbol { >getType : () => PullTypeSymbol -> : ^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^ return undefined; >undefined : undefined diff --git a/tests/baselines/reference/genericReduce.types b/tests/baselines/reference/genericReduce.types index 009a20a223747..c57ef48fa4694 100644 --- a/tests/baselines/reference/genericReduce.types +++ b/tests/baselines/reference/genericReduce.types @@ -43,11 +43,11 @@ var n1 = b.reduce((x, y) => x + y); >b.reduce((x, y) => x + y) : number > : ^^^^^^ >b.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >b : number[] > : ^^^^^^^^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(x, y) => x + y : (x: number, y: number) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -67,11 +67,11 @@ var n2 = b.reduceRight((x, y) => x + y); >b.reduceRight((x, y) => x + y) : number > : ^^^^^^ >b.reduceRight : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >b : number[] > : ^^^^^^^^ >reduceRight : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(x, y) => x + y : (x: number, y: number) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -139,11 +139,11 @@ var n3 = b.reduce( (x, y) => x + y, ""); // Initial value is of type str >b.reduce( (x, y) => x + y, "") : string > : ^^^^^^ >b.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >b : number[] > : ^^^^^^^^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(x, y) => x + y : (x: string, y: number) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : string diff --git a/tests/baselines/reference/genericRestArgs.types b/tests/baselines/reference/genericRestArgs.types index 297a59b88ada0..bd1327d01bad6 100644 --- a/tests/baselines/reference/genericRestArgs.types +++ b/tests/baselines/reference/genericRestArgs.types @@ -3,7 +3,7 @@ === genericRestArgs.ts === function makeArrayG(...items: T[]): T[] { return items; } >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >items : T[] > : ^^^ >items : T[] @@ -15,7 +15,7 @@ var a1Ga = makeArrayG(1, ""); // no error >makeArrayG(1, "") : number[] > : ^^^^^^^^ >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -27,7 +27,7 @@ var a1Gb = makeArrayG(1, ""); >makeArrayG(1, "") : any[] > : ^^^^^ >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -39,7 +39,7 @@ var a1Gc = makeArrayG(1, ""); >makeArrayG(1, "") : Object[] > : ^^^^^^^^ >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -51,7 +51,7 @@ var a1Gd = makeArrayG(1, ""); // error >makeArrayG(1, "") : number[] > : ^^^^^^^^ >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -59,7 +59,7 @@ var a1Gd = makeArrayG(1, ""); // error function makeArrayGOpt(item1?: T, item2?: T, item3?: T) { >makeArrayGOpt : (item1?: T, item2?: T, item3?: T) => T[] -> : ^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ >item1 : T > : ^ >item2 : T @@ -83,7 +83,7 @@ var a2Ga = makeArrayGOpt(1, ""); >makeArrayGOpt(1, "") : number[] > : ^^^^^^^^ >makeArrayGOpt : (item1?: T, item2?: T, item3?: T) => T[] -> : ^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^ >1 : 1 > : ^ >"" : "" @@ -95,7 +95,7 @@ var a2Gb = makeArrayG(1, ""); >makeArrayG(1, "") : any[] > : ^^^^^ >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" @@ -107,7 +107,7 @@ var a2Gc = makeArrayG(1, ""); // error >makeArrayG(1, "") : any[][] > : ^^^^^^^ >makeArrayG : (...items: T[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"" : "" diff --git a/tests/baselines/reference/genericRestArity.types b/tests/baselines/reference/genericRestArity.types index 0334641fc06e9..7e9490305537e 100644 --- a/tests/baselines/reference/genericRestArity.types +++ b/tests/baselines/reference/genericRestArity.types @@ -5,7 +5,7 @@ declare function call( >call : (handler: (...args: TS) => void, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ handler: (...args: TS) => void, >handler : (...args: TS) => void @@ -21,7 +21,7 @@ call((x: number, y: number) => x + y); >call((x: number, y: number) => x + y) : void > : ^^^^ >call : (handler: (...args: TS) => void, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -39,7 +39,7 @@ call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7); >call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7) : void > : ^^^^ >call : (handler: (...args: TS) => void, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/genericRestArityStrict.types b/tests/baselines/reference/genericRestArityStrict.types index d41d78a17e6c4..3d94dcb6bcc3a 100644 --- a/tests/baselines/reference/genericRestArityStrict.types +++ b/tests/baselines/reference/genericRestArityStrict.types @@ -5,7 +5,7 @@ declare function call( >call : (handler: (...args: TS) => void, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ handler: (...args: TS) => void, >handler : (...args: TS) => void @@ -21,7 +21,7 @@ call((x: number, y: number) => x + y); >call((x: number, y: number) => x + y) : void > : ^^^^ >call : (handler: (...args: TS) => void, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -39,7 +39,7 @@ call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7); >call((x: number, y: number) => x + y, 1, 2, 3, 4, 5, 6, 7) : void > : ^^^^ >call : (handler: (...args: TS) => void, ...args: TS) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/genericRestParameters1.types b/tests/baselines/reference/genericRestParameters1.types index 6c5fb604c4eeb..61bcd0b4b808e 100644 --- a/tests/baselines/reference/genericRestParameters1.types +++ b/tests/baselines/reference/genericRestParameters1.types @@ -299,7 +299,7 @@ f2(...ns, true); // FIXME: Error, since ...ns is considered as string|number he declare function f10(...args: T): T; >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -309,7 +309,7 @@ const x10 = f10(42, "hello", true); // [number, string, boolean] >f10(42, "hello", true) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -323,7 +323,7 @@ const x11 = f10(42, "hello"); // [number, string] >f10(42, "hello") : [number, string] > : ^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -335,7 +335,7 @@ const x12 = f10(42); // [number] >f10(42) : [number] > : ^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -345,7 +345,7 @@ const x13 = f10(); // [] >f10() : [] > : ^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ const x14 = f10(...t3); // [number, string, boolean] >x14 : [number, string, boolean] @@ -353,7 +353,7 @@ const x14 = f10(...t3); // [number, string, boolean] >f10(...t3) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...t3 : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >t3 : [number, string, boolean] @@ -365,7 +365,7 @@ const x15 = f10(42, ...t2); // [number, string, boolean] >f10(42, ...t2) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >...t2 : string | boolean @@ -379,7 +379,7 @@ const x16 = f10(42, "hello", ...t1); // [number, string, boolean] >f10(42, "hello", ...t1) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -395,7 +395,7 @@ const x17 = f10(42, "hello", true, ...t0); // [number, string, boolean] >f10(42, "hello", true, ...t0) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -413,7 +413,7 @@ const x18 = f10(...ns, true); // (string | number | boolean)[] >f10(...ns, true) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...ns : string | number > : ^^^^^^^^^^^^^^^ >ns : [number, string] @@ -423,7 +423,7 @@ const x18 = f10(...ns, true); // (string | number | boolean)[] function g10(u: U, v: V) { >g10 : (u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >u : U > : ^ >v : V @@ -435,7 +435,7 @@ function g10(u: U, v: V) { >f10(...u) : U > : ^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...u : string > : ^^^^^^ >u : U @@ -447,7 +447,7 @@ function g10(u: U, v: V) { >f10(...v) : V > : ^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...v : number > : ^^^^^^ >v : V @@ -459,7 +459,7 @@ function g10(u: U, v: V) { >f10(1, ...u) : [number, ...U] > : ^^^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >...u : string @@ -473,7 +473,7 @@ function g10(u: U, v: V) { >f10(...u, ...v) : [...U, ...V] > : ^^^^^^^^^^^^ >f10 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...u : string > : ^^^^^^ >u : U @@ -486,7 +486,7 @@ function g10(u: U, v: V) { declare function f11(...args: T): T; >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -496,7 +496,7 @@ const z10 = f11(42, "hello", true); // [42, "hello", true] >f11(42, "hello", true) : [42, "hello", true] > : ^^^^^^^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -510,7 +510,7 @@ const z11 = f11(42, "hello"); // [42, "hello"] >f11(42, "hello") : [42, "hello"] > : ^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -522,7 +522,7 @@ const z12 = f11(42); // [42] >f11(42) : [42] > : ^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -532,7 +532,7 @@ const z13 = f11(); // [] >f11() : [] > : ^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ const z14 = f11(...t3); // [number, string, boolean] >z14 : [number, string, boolean] @@ -540,7 +540,7 @@ const z14 = f11(...t3); // [number, string, boolean] >f11(...t3) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...t3 : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >t3 : [number, string, boolean] @@ -552,7 +552,7 @@ const z15 = f11(42, ...t2); // [42, string, boolean] >f11(42, ...t2) : [42, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >...t2 : string | boolean @@ -566,7 +566,7 @@ const z16 = f11(42, "hello", ...t1); // [42, "hello", boolean] >f11(42, "hello", ...t1) : [42, "hello", boolean] > : ^^^^^^^^^^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -582,7 +582,7 @@ const z17 = f11(42, "hello", true, ...t0); // [42, "hello", true] >f11(42, "hello", true, ...t0) : [42, "hello", true] > : ^^^^^^^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -600,7 +600,7 @@ const z18 = f11(...ns, true); // (string | number | true)[] >f11(...ns, true) : [number, string, true] > : ^^^^^^^^^^^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...ns : string | number > : ^^^^^^^^^^^^^^^ >ns : [number, string] @@ -610,7 +610,7 @@ const z18 = f11(...ns, true); // (string | number | true)[] function g11(u: U, v: V) { >g11 : (u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >u : U > : ^ >v : V @@ -622,7 +622,7 @@ function g11(u: U, v: V) { >f11(...u) : U > : ^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...u : string > : ^^^^^^ >u : U @@ -634,7 +634,7 @@ function g11(u: U, v: V) { >f11(...v) : V > : ^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...v : number > : ^^^^^^ >v : V @@ -646,7 +646,7 @@ function g11(u: U, v: V) { >f11(1, ...u) : [1, ...U] > : ^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >...u : string @@ -660,7 +660,7 @@ function g11(u: U, v: V) { >f11(...u, ...v) : [...U, ...V] > : ^^^^^^^^^^^^ >f11 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...u : string > : ^^^^^^ >u : U @@ -673,7 +673,7 @@ function g11(u: U, v: V) { function call(f: (...args: T) => U, ...args: T) { >call : (f: (...args: T) => U, ...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^ >f : (...args: T) => U > : ^^^^ ^^ ^^^^^ >args : T @@ -694,7 +694,7 @@ function call(f: (...args: T) => U, ...args: T) { function callr(args: T, f: (...args: T) => U) { >callr : (args: T, f: (...args: T) => U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >args : T > : ^ >f : (...args: T) => U @@ -723,7 +723,7 @@ declare function f15(a: string, b: number): string | number; declare function f16(a: A, b: B): A | B; >f16 : (a: A, b: B) => A | B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -735,7 +735,7 @@ let x20 = call((x, y) => x + y, 10, 20); // number >call((x, y) => x + y, 10, 20) : number > : ^^^^^^ >call : (f: (...args: T) => U, ...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^ >(x, y) => x + y : (x: number, y: number) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -759,7 +759,7 @@ let x21 = call((x, y) => x + y, 10, "hello"); // string >call((x, y) => x + y, 10, "hello") : string > : ^^^^^^ >call : (f: (...args: T) => U, ...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^ >(x, y) => x + y : (x: number, y: string) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -783,7 +783,7 @@ let x22 = call(f15, "hello", 42); // string | number >call(f15, "hello", 42) : string | number > : ^^^^^^^^^^^^^^^ >call : (f: (...args: T) => U, ...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^ >f15 : (a: string, b: number) => string | number > : ^ ^^ ^^ ^^ ^^^^^ >"hello" : "hello" @@ -797,9 +797,9 @@ let x23 = call(f16, "hello", 42); // unknown >call(f16, "hello", 42) : string | number > : ^^^^^^^^^^^^^^^ >call : (f: (...args: T) => U, ...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^ >f16 : (a: A, b: B) => A | B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ >42 : 42 @@ -811,9 +811,9 @@ let x24 = call<[string, number], string | number>(f16, "hello", 42); // string >call<[string, number], string | number>(f16, "hello", 42) : string | number > : ^^^^^^^^^^^^^^^ >call : (f: (...args: T) => U, ...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^ >f16 : (a: A, b: B) => A | B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ >42 : 42 @@ -825,7 +825,7 @@ let x30 = callr(sn, (x, y) => x + y); // string >callr(sn, (x, y) => x + y) : string > : ^^^^^^ >callr : (args: T, f: (...args: T) => U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >sn : [string, number] > : ^^^^^^^^^^^^^^^^ >(x, y) => x + y : (x: string, y: number) => string @@ -847,7 +847,7 @@ let x31 = callr(sn, f15); // string | number >callr(sn, f15) : string | number > : ^^^^^^^^^^^^^^^ >callr : (args: T, f: (...args: T) => U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >sn : [string, number] > : ^^^^^^^^^^^^^^^^ >f15 : (a: string, b: number) => string | number @@ -859,15 +859,15 @@ let x32 = callr(sn, f16); // string | number >callr(sn, f16) : string | number > : ^^^^^^^^^^^^^^^ >callr : (args: T, f: (...args: T) => U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^ >sn : [string, number] > : ^^^^^^^^^^^^^^^^ >f16 : (a: A, b: B) => A | B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ function bind(f: (x: T, ...rest: U) => V, x: T) { >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >f : (x: T, ...rest: U) => V > : ^ ^^ ^^^^^ ^^ ^^^^^ >x : T @@ -910,7 +910,7 @@ const f21 = bind(f20, 42); // (y: string, z: boolean) => string[] >bind(f20, 42) : (y: string, z: boolean) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >f20 : (x: number, y: string, z: boolean) => string[] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >42 : 42 @@ -922,7 +922,7 @@ const f22 = bind(f21, "hello"); // (z: boolean) => string[] >bind(f21, "hello") : (z: boolean) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >f21 : (y: string, z: boolean) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"hello" : "hello" @@ -934,7 +934,7 @@ const f23 = bind(f22, true); // () => string[] >bind(f22, true) : () => string[] > : ^^^^^^^^^^^^^^ >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >f22 : (z: boolean) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >true : true @@ -992,7 +992,7 @@ const g21 = bind(g20, 42); // (y: string, z: boolean) => string[] >bind(g20, 42) : (y?: string | undefined, z?: boolean | undefined) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >g20 : (x: number, y?: string, z?: boolean) => string[] > : ^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >42 : 42 @@ -1004,7 +1004,7 @@ const g22 = bind(g21, "hello"); // (z: boolean) => string[] >bind(g21, "hello") : (z?: boolean | undefined) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >g21 : (y?: string | undefined, z?: boolean | undefined) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"hello" : "hello" @@ -1016,7 +1016,7 @@ const g23 = bind(g22, true); // () => string[] >bind(g22, true) : () => string[] > : ^^^^^^^^^^^^^^ >bind : (f: (x: T, ...rest: U) => V, x: T) => (...rest: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >g22 : (z?: boolean | undefined) => string[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >true : true @@ -1098,7 +1098,7 @@ g23(); declare function f30 any)[]>(x: T, ...args: U): U; >f30 : any)[]>(x: T, ...args: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -1112,7 +1112,7 @@ const c30 = f30(42, x => "" + x, x => x + 1); // [(x: number) => string, (x: nu >f30(42, x => "" + x, x => x + 1) : [(x: number) => string, (x: number) => number] > : ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >f30 : any)[]>(x: T, ...args: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >x => "" + x : (x: number) => string @@ -1223,7 +1223,7 @@ type EventType = { emit(e: K, ...payload: T[K] extends any[] ? T[K] : [T[K]]): void; >emit : (e: K, ...payload: T[K] extends any[] ? T[K] : [T[K]]) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ >e : K > : ^ >payload : T[K] extends any[] ? T[K] : [T[K]] diff --git a/tests/baselines/reference/genericRestParameters2.types b/tests/baselines/reference/genericRestParameters2.types index 35697d2c52c77..345a24bd42495 100644 --- a/tests/baselines/reference/genericRestParameters2.types +++ b/tests/baselines/reference/genericRestParameters2.types @@ -667,7 +667,7 @@ f13(42, "hello", true, ...t4, false, ...t3); declare const f20: (...args: T) => T; >f20 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -675,7 +675,7 @@ f20(...t1); >f20(...t1) : [number, string, ...boolean[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f20 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...t1 : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >t1 : [number, string, ...boolean[]] @@ -685,7 +685,7 @@ f20(42, ...t2); >f20(42, ...t2) : [number, string, ...boolean[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f20 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >...t2 : string | boolean @@ -697,7 +697,7 @@ f20(42, "hello", ...t3); >f20(42, "hello", ...t3) : [number, string, ...boolean[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f20 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" @@ -711,7 +711,7 @@ f20(42, "hello", ...t2, true); >f20(42, "hello", ...t2, true) : [number, string, string, ...boolean[], boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f20 : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >42 : 42 > : ^^ >"hello" : "hello" diff --git a/tests/baselines/reference/genericRestParameters3.types b/tests/baselines/reference/genericRestParameters3.types index 71754befe9618..c2764ea4528b8 100644 --- a/tests/baselines/reference/genericRestParameters3.types +++ b/tests/baselines/reference/genericRestParameters3.types @@ -195,7 +195,7 @@ interface CoolArray extends Array { declare function foo(cb: (...args: T) => void): void; >foo : (cb: (...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (...args: T) => void > : ^^^^ ^^ ^^^^^ >args : T @@ -205,13 +205,13 @@ foo>(); // Error >foo>() : void > : ^^^^ >foo : (cb: (...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ foo>(100); // Error >foo>(100) : void > : ^^^^ >foo : (cb: (...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >100 : 100 > : ^^^ @@ -219,13 +219,13 @@ foo>(foo); // Error >foo>(foo) : void > : ^^^^ >foo : (cb: (...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >foo : (cb: (...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ function bar(...args: T): T { >bar : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -240,7 +240,7 @@ let a = bar(10, 20); >bar(10, 20) : [number, number] > : ^^^^^^^^^^^^^^^^ >bar : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >10 : 10 > : ^^ >20 : 20 @@ -252,7 +252,7 @@ let b = bar>(10, 20); // Error >bar>(10, 20) : CoolArray > : ^^^^^^^^^^^^^^^^^ >bar : (...args: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >10 : 10 > : ^^ >20 : 20 @@ -260,7 +260,7 @@ let b = bar>(10, 20); // Error declare function baz(...args: CoolArray): void; >baz : (...args: CoolArray) => void -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >args : CoolArray > : ^^^^^^^^^^^^ @@ -272,13 +272,13 @@ baz(); // Error >baz() : void > : ^^^^ >baz : (...args: CoolArray) => void -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ baz(1); // Error >baz(1) : void > : ^^^^ >baz : (...args: CoolArray) => void -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -286,7 +286,7 @@ baz(1, 2); // Error >baz(1, 2) : void > : ^^^^ >baz : (...args: CoolArray) => void -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -296,7 +296,7 @@ baz(...ca); // Error >baz(...ca) : void > : ^^^^ >baz : (...args: CoolArray) => void -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >...ca : number > : ^^^^^^ >ca : CoolArray @@ -306,7 +306,7 @@ baz(...ca); // Error declare function hmm(...args: A): void; >hmm : (...args: A) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : A > : ^ @@ -314,13 +314,13 @@ hmm(); // okay, A = [] >hmm() : void > : ^^^^ >hmm : (...args: A) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ hmm(1, "s"); // okay, A = [1, "s"] >hmm(1, "s") : void > : ^^^^ >hmm : (...args: A) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >"s" : "s" @@ -330,7 +330,7 @@ hmm("what"); // no error? A = [] | [number, string] ? >hmm("what") : void > : ^^^^ >hmm : (...args: A) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >"what" : "what" > : ^^^^^^ @@ -410,7 +410,7 @@ ff2 = ff1; function ff3(s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) { >ff3 : (s1: (...args: [x: string, ...rest: A | [number]]) => void, s2: (x: string, ...rest: A | [number]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s1 : (...args: [x: string, ...rest: A | [number]]) => void > : ^^^^ ^^ ^^^^^ >args : [x: string, number] | [x: string, ...rest: A] diff --git a/tests/baselines/reference/genericReversingTypeParameters.types b/tests/baselines/reference/genericReversingTypeParameters.types index a9ee4ec20c809..353ffa5c3612c 100644 --- a/tests/baselines/reference/genericReversingTypeParameters.types +++ b/tests/baselines/reference/genericReversingTypeParameters.types @@ -34,11 +34,11 @@ var r1 = b.get(''); >b.get('') : number > : ^^^^^^ >b.get : (key: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >b : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >get : (key: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >'' : "" > : ^^ @@ -48,11 +48,11 @@ var i = b.inverse(); // used to get the type wrong here. >b.inverse() : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >b.inverse : () => BiMap -> : ^^^^^^ ^^^^^^ ^^^^^^ +> : ^^^^^^ >b : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >inverse : () => BiMap -> : ^^^^^^ ^^^^^^ ^^^^^^ +> : ^^^^^^ var r2b = i.get(1); >r2b : string @@ -60,11 +60,11 @@ var r2b = i.get(1); >i.get(1) : string > : ^^^^^^ >i.get : (key: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >i : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >get : (key: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/genericReversingTypeParameters2.types b/tests/baselines/reference/genericReversingTypeParameters2.types index 0791f8e5dfb5c..4637c0be586f5 100644 --- a/tests/baselines/reference/genericReversingTypeParameters2.types +++ b/tests/baselines/reference/genericReversingTypeParameters2.types @@ -34,11 +34,11 @@ var i = b.inverse(); // used to get the type wrong here. >b.inverse() : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >b.inverse : () => BiMap -> : ^^^^^^ ^^^^^^ ^^^^^^ +> : ^^^^^^ >b : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >inverse : () => BiMap -> : ^^^^^^ ^^^^^^ ^^^^^^ +> : ^^^^^^ var r2b = i.get(1); >r2b : string @@ -46,11 +46,11 @@ var r2b = i.get(1); >i.get(1) : string > : ^^^^^^ >i.get : (key: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >i : BiMap > : ^^^^^^^^^^^^^^^^^^^^^ >get : (key: number) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/genericSignatureIdentity.types b/tests/baselines/reference/genericSignatureIdentity.types index 3932c66a20c01..aeaccd6aedc56 100644 --- a/tests/baselines/reference/genericSignatureIdentity.types +++ b/tests/baselines/reference/genericSignatureIdentity.types @@ -8,7 +8,7 @@ var x: { >x : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ (x: T): T; >x : T @@ -18,7 +18,7 @@ var x: { var x: { >x : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ (x: T): T; >x : T @@ -28,7 +28,7 @@ var x: { var x: { >x : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ (x: T): T; >x : T @@ -38,7 +38,7 @@ var x: { var x: { >x : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ (x: any): any; >x : any diff --git a/tests/baselines/reference/genericSpecializationToTypeLiteral1.types b/tests/baselines/reference/genericSpecializationToTypeLiteral1.types index aa8aba8f2b06c..280423e5a46d8 100644 --- a/tests/baselines/reference/genericSpecializationToTypeLiteral1.types +++ b/tests/baselines/reference/genericSpecializationToTypeLiteral1.types @@ -5,7 +5,7 @@ interface IEnumerable { zip(second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; >zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult_1): IEnumerable; (...params: any[]): IEnumerable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >second : IEnumerable > : ^^^^^^^^^^^^^^ >resultSelector : (first: T, second: T, index: number) => TResult @@ -19,7 +19,7 @@ interface IEnumerable { zip(second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; >zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult_1): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult): IEnumerable; (...params: any[]): IEnumerable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >second : T[] > : ^^^ >resultSelector : (first: T, second: T, index: number) => TResult @@ -33,7 +33,7 @@ interface IEnumerable { zip(...params: any[]): IEnumerable; // last one is selector >zip : { (second: IEnumerable, resultSelector: (first: T, second: T, index: number) => TResult_1): IEnumerable; (second: T[], resultSelector: (first: T, second: T, index: number) => TResult_1): IEnumerable; (...params: any[]): IEnumerable; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >params : any[] > : ^^^^^ @@ -72,13 +72,13 @@ interface IEnumerable { sequenceEqual(second: IEnumerable): boolean; >sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >second : IEnumerable > : ^^^^^^^^^^^^^^ sequenceEqual(second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; >sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare_1): boolean; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >second : IEnumerable > : ^^^^^^^^^^^^^^ >compareSelector : (element: T) => TCompare @@ -88,13 +88,13 @@ interface IEnumerable { sequenceEqual(second: T[]): boolean; >sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >second : T[] > : ^^^ sequenceEqual(second: T[], compareSelector: (element: T) => TCompare): boolean; >sequenceEqual : { (second: IEnumerable): boolean; (second: IEnumerable, compareSelector: (element: T) => TCompare_1): boolean; (second: T[]): boolean; (second: T[], compareSelector: (element: T) => TCompare): boolean; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >second : T[] > : ^^^ >compareSelector : (element: T) => TCompare @@ -104,7 +104,7 @@ interface IEnumerable { toDictionary(keySelector: (element: T) => TKey): IDictionary; >toDictionary : { (keySelector: (element: T) => TKey): IDictionary; (keySelector: (element: T) => TKey_1, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey_1, elementSelector: (element: T) => TValue, compareSelector: (key: TKey_1) => TCompare): IDictionary; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >keySelector : (element: T) => TKey > : ^ ^^ ^^^^^ >element : T @@ -112,7 +112,7 @@ interface IEnumerable { toDictionary(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; >toDictionary : { (keySelector: (element: T) => TKey_1): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue): IDictionary; (keySelector: (element: T) => TKey_1, elementSelector: (element: T) => TValue_1, compareSelector: (key: TKey_1) => TCompare): IDictionary; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >keySelector : (element: T) => TKey > : ^ ^^ ^^^^^ >element : T @@ -124,7 +124,7 @@ interface IEnumerable { toDictionary(keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; >toDictionary : { (keySelector: (element: T) => TKey_1): IDictionary; (keySelector: (element: T) => TKey_1, elementSelector: (element: T) => TValue_1): IDictionary; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TValue, compareSelector: (key: TKey) => TCompare): IDictionary; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >keySelector : (element: T) => TKey > : ^ ^^ ^^^^^ >element : T diff --git a/tests/baselines/reference/genericSpecializations1.types b/tests/baselines/reference/genericSpecializations1.types index a02d89ea2a38a..b16b6643aa742 100644 --- a/tests/baselines/reference/genericSpecializations1.types +++ b/tests/baselines/reference/genericSpecializations1.types @@ -4,7 +4,7 @@ interface IFoo { foo(x: T): T; // no error on implementors because IFoo's T is different from foo's T >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -37,7 +37,7 @@ class StringFoo3 implements IFoo { foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/genericSpecializations2.types b/tests/baselines/reference/genericSpecializations2.types index 4c60d3e7efc2d..042500a2e4695 100644 --- a/tests/baselines/reference/genericSpecializations2.types +++ b/tests/baselines/reference/genericSpecializations2.types @@ -7,7 +7,7 @@ class IFoo { foo(x: T): T { // no error on implementors because IFoo's T is different from foo's T >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -43,7 +43,7 @@ class StringFoo3 implements IFoo { foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/genericSpecializations3.types b/tests/baselines/reference/genericSpecializations3.types index 23823d193ad98..44232cb0016f8 100644 --- a/tests/baselines/reference/genericSpecializations3.types +++ b/tests/baselines/reference/genericSpecializations3.types @@ -17,11 +17,11 @@ iFoo.foo(1); >iFoo.foo(1) : number > : ^^^^^^ >iFoo.foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >iFoo : IFoo > : ^^^^^^^^^^^^ >foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >1 : 1 > : ^ @@ -106,7 +106,7 @@ class StringFoo3 implements IFoo { // error foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/genericStaticAnyTypeFunction.types b/tests/baselines/reference/genericStaticAnyTypeFunction.types index 477e7d80038a8..93e99096be43b 100644 --- a/tests/baselines/reference/genericStaticAnyTypeFunction.types +++ b/tests/baselines/reference/genericStaticAnyTypeFunction.types @@ -7,7 +7,7 @@ class A { static one(source: T, value: number): T { >one : (source: T, value: number) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >source : T > : ^ >value : number @@ -26,7 +26,7 @@ class A { static two(source: T): T { >two : (source: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >source : T > : ^ @@ -34,11 +34,11 @@ class A { >this.one(source, 42) : T > : ^ >this.one : (source: T_1, value: number) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >this : typeof A > : ^^^^^^^^ >one : (source: T_1, value: number) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >source : T > : ^ >42 : 42 diff --git a/tests/baselines/reference/genericTypeAliases.types b/tests/baselines/reference/genericTypeAliases.types index 98675e06d6c8c..a7f8a9d0a204f 100644 --- a/tests/baselines/reference/genericTypeAliases.types +++ b/tests/baselines/reference/genericTypeAliases.types @@ -276,9 +276,9 @@ function f() { type Foo = T | { x: Foo }; >Foo : T | { x: T | any; } -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^ >x : T | { x: T | any; } -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^ var x: Foo; >x : A[] | { x: A[] | any; } @@ -295,9 +295,9 @@ function g() { type Bar = U | { x: Bar }; >Bar : U | { x: U | any; } -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^ >x : U | { x: U | any; } -> : ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^ var x: Bar; >x : B[] | { x: B[] | any; } diff --git a/tests/baselines/reference/genericTypeArgumentInference1.types b/tests/baselines/reference/genericTypeArgumentInference1.types index ad6c98f795b4b..1d6f1be563793 100644 --- a/tests/baselines/reference/genericTypeArgumentInference1.types +++ b/tests/baselines/reference/genericTypeArgumentInference1.types @@ -14,7 +14,7 @@ module Underscore { export interface Static { all(list: T[], iterator?: Iterator, context?: any): T; >all : (list: T[], iterator?: Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >list : T[] > : ^^^ >iterator : Iterator @@ -24,7 +24,7 @@ module Underscore { identity(value: T): T; >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ } @@ -41,11 +41,11 @@ var r = _.all([true, 1, null, 'yes'], _.identity); >_.all([true, 1, null, 'yes'], _.identity) : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >[true, 1, null, 'yes'] : (string | number | true)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >true : true @@ -55,11 +55,11 @@ var r = _.all([true, 1, null, 'yes'], _.identity); >'yes' : "yes" > : ^^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r2 = _.all([true], _.identity); >r2 : boolean @@ -67,21 +67,21 @@ var r2 = _.all([true], _.identity); >_.all([true], _.identity) : boolean > : ^^^^^^^ >_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >[true] : true[] > : ^^^^^^ >true : true > : ^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r3 = _.all([], _.identity); >r3 : any @@ -89,19 +89,19 @@ var r3 = _.all([], _.identity); >_.all([], _.identity) : any > : ^^^ >_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r4 = _.all([true], _.identity); >r4 : any @@ -109,11 +109,11 @@ var r4 = _.all([true], _.identity); >_.all([true], _.identity) : any > : ^^^ >_.all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : (list: T[], iterator?: Underscore.Iterator, context?: any) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >[true] : any[] > : ^^^^^ >true : any @@ -121,9 +121,9 @@ var r4 = _.all([true], _.identity); >true : true > : ^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/genericTypeAssertions3.types b/tests/baselines/reference/genericTypeAssertions3.types index ad630646695d6..f67df28f9541e 100644 --- a/tests/baselines/reference/genericTypeAssertions3.types +++ b/tests/baselines/reference/genericTypeAssertions3.types @@ -3,9 +3,9 @@ === genericTypeAssertions3.ts === var r = < (x: T) => T > ((x) => { return null; }); // bug was 'could not find dotted symbol T' on x's annotation in the type assertion instead of no error >r : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >< (x: T) => T > ((x) => { return null; }) : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >((x) => { return null; }) : (x: T) => any @@ -17,9 +17,9 @@ var r = < (x: T) => T > ((x) => { return null; }); // bug was 'could not find var s = < (x: T) => T > ((x: any) => { return null; }); // no error >s : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >< (x: T) => T > ((x: any) => { return null; }) : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >((x: any) => { return null; }) : (x: any) => any diff --git a/tests/baselines/reference/genericTypeAssertions4.types b/tests/baselines/reference/genericTypeAssertions4.types index 8640c06a54417..935413d730f71 100644 --- a/tests/baselines/reference/genericTypeAssertions4.types +++ b/tests/baselines/reference/genericTypeAssertions4.types @@ -52,7 +52,7 @@ var c: C; function foo2(x: T) { >foo2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/genericTypeAssertions5.types b/tests/baselines/reference/genericTypeAssertions5.types index e73286d89263d..7505e891ebcf1 100644 --- a/tests/baselines/reference/genericTypeAssertions5.types +++ b/tests/baselines/reference/genericTypeAssertions5.types @@ -33,7 +33,7 @@ var c: C; function foo2(x: T) { >foo2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/genericTypeParameterEquivalence2.types b/tests/baselines/reference/genericTypeParameterEquivalence2.types index 98475497837bc..15e682a8762df 100644 --- a/tests/baselines/reference/genericTypeParameterEquivalence2.types +++ b/tests/baselines/reference/genericTypeParameterEquivalence2.types @@ -4,7 +4,7 @@ // compose :: (b->c) -> (a->b) -> (a->c) function compose(f: (b: B) => C, g: (a:A) => B): (a:A) => C { >compose : (f: (b: B) => C, g: (a: A) => B) => (a: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >f : (b: B) => C > : ^ ^^ ^^^^^ >b : B @@ -43,7 +43,7 @@ function compose(f: (b: B) => C, g: (a:A) => B): (a:A) => C { // forEach :: [a] -> (a -> ()) -> () function forEach(list: A[], f: (a: A, n?: number) => void ): void { >forEach : (list: A[], f: (a: A, n?: number) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >list : A[] > : ^^^ >f : (a: A, n?: number) => void @@ -92,7 +92,7 @@ function forEach(list: A[], f: (a: A, n?: number) => void ): void { // filter :: (a->bool) -> [a] -> [a] function filter(f: (a: A) => boolean, ar: A[]): A[] { >filter : (f: (a: A) => boolean, ar: A[]) => A[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f : (a: A) => boolean > : ^ ^^ ^^^^^ >a : A @@ -110,7 +110,7 @@ function filter(f: (a: A) => boolean, ar: A[]): A[] { >forEach(ar, (el) => { if (f(el)) { ret.push(el); } } ) : void > : ^^^^ >forEach : (list: A_1[], f: (a: A_1, n?: number) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >ar : A[] > : ^^^ >(el) => { if (f(el)) { ret.push(el); } } : (el: A) => void @@ -148,7 +148,7 @@ function filter(f: (a: A) => boolean, ar: A[]): A[] { // length :: [a] -> Num function length2(ar: A[]): number { >length2 : (ar: A[]) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ar : A[] > : ^^^ @@ -164,7 +164,7 @@ function length2(ar: A[]): number { // curry1 :: ((a,b)->c) -> (a->(b->c)) function curry1(f: (a: A, b: B) => C): (ax: A) => (bx: B) => C { >curry1 : (f: (a: A, b: B) => C) => (ax: A) => (bx: B) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >f : (a: A, b: B) => C > : ^ ^^ ^^ ^^ ^^^^^ >a : A @@ -204,13 +204,13 @@ function curry1(f: (a: A, b: B) => C): (ax: A) => (bx: B) => C { var cfilter = curry1(filter); >cfilter : (ax: (a: A) => boolean) => (bx: A[]) => A[] -> : ^ ^^ ^^^ ^^ ^^^^^ ^^^^^ ^^^ ^^^ +> : ^^^^ ^^^ ^^ ^^^^^ ^^^^^ ^ ^ >curry1(filter) : (ax: (a: A) => boolean) => (bx: A[]) => A[] -> : ^ ^^ ^^^ ^^ ^^^^^ ^^^^^ ^^^ ^^^ +> : ^^^^ ^^^ ^^ ^^^^^ ^^^^^ ^ ^ >curry1 : (f: (a: A, b: B) => C) => (ax: A) => (bx: B) => C -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >filter : (f: (a: A) => boolean, ar: A[]) => A[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ // compose :: (b->c) -> (a->b) -> (a->c) // length :: [a] -> Num @@ -222,7 +222,7 @@ var cfilter = curry1(filter); function countWhere_1(pred: (a: A) => boolean): (a: A[]) => number { >countWhere_1 : (pred: (a: A) => boolean) => (a: A[]) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >pred : (a: A) => boolean > : ^ ^^ ^^^^^ >a : A @@ -232,22 +232,22 @@ function countWhere_1(pred: (a: A) => boolean): (a: A[]) => number { return compose(length2, cfilter(pred)); >compose(length2, cfilter(pred)) : (a: A[]) => number -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >compose : (f: (b: B) => C, g: (a: A_1) => B) => (a: A_1) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >length2 : (ar: A_1[]) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >cfilter(pred) : (bx: A[]) => A[] -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ >cfilter : (ax: (a: A_1) => boolean) => (bx: A_1[]) => A_1[] -> : ^ ^^ ^^^ ^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^^^ ^^^^^ ^^^ ^^^ >pred : (a: A) => boolean > : ^ ^^ ^^^^^ } function countWhere_2(pred: (a: A) => boolean): (a: A[]) => number { >countWhere_2 : (pred: (a: A) => boolean) => (a: A[]) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >pred : (a: A) => boolean > : ^ ^^ ^^^^^ >a : A @@ -257,21 +257,21 @@ function countWhere_2(pred: (a: A) => boolean): (a: A[]) => number { var where = cfilter(pred); >where : (bx: A[]) => A[] -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ >cfilter(pred) : (bx: A[]) => A[] -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ >cfilter : (ax: (a: A_1) => boolean) => (bx: A_1[]) => A_1[] -> : ^ ^^ ^^^ ^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^ ^^^^^ ^^^^^ ^^^ ^^^ >pred : (a: A) => boolean > : ^ ^^ ^^^^^ return compose(length2, where); >compose(length2, where) : (a: A[]) => number -> : ^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^ >compose : (f: (b: B) => C, g: (a: A_1) => B) => (a: A_1) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >length2 : (ar: A_1[]) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >where : (bx: A[]) => A[] -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^ } diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types index 7d12f8b399ff6..005e063121ecd 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types @@ -76,13 +76,13 @@ declare class D3 { } declare function h(x: T); >h : (x: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ declare function i(x: T); >i : (x: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types index b289f43a0a8db..4678a0411b63b 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types @@ -113,13 +113,13 @@ interface I2 extends M.E { } function h(x: T) { } >h : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ function i(x: T) { } >i : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types index 02c324df4a2ba..41fb382e7f2b9 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types @@ -103,13 +103,13 @@ interface I2 extends M.C { } function h(x: T) { } >h : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ function i(x: T) { } >i : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types index 1b4e7fc2df006..e256fdf0deca5 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types @@ -76,13 +76,13 @@ declare class D3 { } declare function h(x: T); >h : (x: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ declare function i(x: T); >i : (x: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeWithCallableMembers2.types b/tests/baselines/reference/genericTypeWithCallableMembers2.types index a13adb7b071ff..e6ffdbd3e3c8f 100644 --- a/tests/baselines/reference/genericTypeWithCallableMembers2.types +++ b/tests/baselines/reference/genericTypeWithCallableMembers2.types @@ -3,7 +3,7 @@ === genericTypeWithCallableMembers2.ts === function foo1(f: T) { >foo1 : (f: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >f : T > : ^ @@ -16,7 +16,7 @@ function foo1(f: T) { function foo2(f: T) { >foo2 : (f: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >f : T > : ^ diff --git a/tests/baselines/reference/genericTypeWithMultipleBases3.types b/tests/baselines/reference/genericTypeWithMultipleBases3.types index 422ba8a7279a9..7b203cd3d4d36 100644 --- a/tests/baselines/reference/genericTypeWithMultipleBases3.types +++ b/tests/baselines/reference/genericTypeWithMultipleBases3.types @@ -29,21 +29,21 @@ var c: IC; var x = c.foo; >x : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >c.foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >c : IC > : ^^^^^^^^^^ >foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ var y = c.bar; >y : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >c.bar : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >c : IC > : ^^^^^^^^^^ >bar : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericUnboundedTypeParamAssignability.types b/tests/baselines/reference/genericUnboundedTypeParamAssignability.types index 6cdbe5ddd8eb6..848f8870f4d00 100644 --- a/tests/baselines/reference/genericUnboundedTypeParamAssignability.types +++ b/tests/baselines/reference/genericUnboundedTypeParamAssignability.types @@ -3,7 +3,7 @@ === genericUnboundedTypeParamAssignability.ts === function f1(o: T) { >f1 : (o: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >o : T > : ^ @@ -20,7 +20,7 @@ function f1(o: T) { function f2(o: T) { >f2 : (o: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ @@ -37,7 +37,7 @@ function f2(o: T) { function f3>(o: T) { >f3 : >(o: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ @@ -54,7 +54,7 @@ function f3>(o: T) { function user(t: T) { >user : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -62,7 +62,7 @@ function user(t: T) { >f1(t) : void > : ^^^^ >f1 : (o: T_1) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -70,7 +70,7 @@ function user(t: T) { >f2(t) : void > : ^^^^ >f2 : (o: T_1) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -78,7 +78,7 @@ function user(t: T) { >f3(t) : void > : ^^^^ >f3 : >(o: T_1) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/genericWithOpenTypeParameters1.types b/tests/baselines/reference/genericWithOpenTypeParameters1.types index eb17dba87dbdb..c1c17ea4c7c40 100644 --- a/tests/baselines/reference/genericWithOpenTypeParameters1.types +++ b/tests/baselines/reference/genericWithOpenTypeParameters1.types @@ -20,19 +20,19 @@ x.foo(1); // no error >x.foo(1) : number > : ^^^^^^ >x.foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >x : B > : ^^^^^^^^^ >foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >1 : 1 > : ^ var f = (x: B) => { return x.foo(1); } // error >f : (x: B) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: B) => { return x.foo(1); } : (x: B) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : B > : ^^^^ >x.foo(1) : T @@ -48,9 +48,9 @@ var f = (x: B) => { return x.foo(1); } // error var f2 = (x: B) => { return x.foo(1); } // error >f2 : (x: B) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: B) => { return x.foo(1); } : (x: B) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : B > : ^^^^ >x.foo(1) : T @@ -66,9 +66,9 @@ var f2 = (x: B) => { return x.foo(1); } // error var f3 = (x: B) => { return x.foo(1); } // error >f3 : (x: B) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: B) => { return x.foo(1); } : (x: B) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : B > : ^^^^ >x.foo(1) : T @@ -92,11 +92,11 @@ var f4 = (x: B) => { return x.foo(1); } // no error >x.foo(1) : number > : ^^^^^^ >x.foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >x : B > : ^^^^^^^^^ >foo : (x: number) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/genericsAndHigherOrderFunctions.types b/tests/baselines/reference/genericsAndHigherOrderFunctions.types index 4cb6fdba1f917..88f44e66e05e1 100644 --- a/tests/baselines/reference/genericsAndHigherOrderFunctions.types +++ b/tests/baselines/reference/genericsAndHigherOrderFunctions.types @@ -5,7 +5,7 @@ var combine: (f: (_: T) => S) => >combine : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (_: T) => S > : ^ ^^ ^^^^^ >_ : T @@ -23,7 +23,7 @@ var combine: (f: (_: T) => S) => = (f: (_: T) => S) => >(f: (_: T) => S) => (g: (_: U) => T) => (x: U) => f(g(x)) : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^ >f : (_: T) => S > : ^ ^^ ^^^^^ >_ : T @@ -31,7 +31,7 @@ var combine: (f: (_: T) => S) => (g: (_: U) => T) => >(g: (_: U) => T) => (x: U) => f(g(x)) : (g: (_: U) => T) => (x: U) => S -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^^ >g : (_: U) => T > : ^ ^^ ^^^^^ >_ : U @@ -55,7 +55,7 @@ var combine: (f: (_: T) => S) => var foo: (g: (x: K) => N) => >foo : (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >g : (x: K) => N > : ^ ^^ ^^^^^ >x : K @@ -63,7 +63,7 @@ var foo: (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => >h : (_: (_: K) => (_: M) => M) => (_: M) => M -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : (_: K) => (_: M) => M > : ^ ^^ ^^^^^ >_ : K @@ -85,7 +85,7 @@ var foo: (g: (x: K) => N) => = (g: (x: K) => N) => >(g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R -> : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ ^^^^^^^^^ >g : (x: K) => N > : ^ ^^ ^^^^^ >x : K @@ -93,9 +93,9 @@ var foo: (g: (x: K) => N) => (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => >(h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (h: (_: (_: K) => (_: M) => M) => (_: M) => M) => (f: (_: N) => (_: R) => R) => (_: R) => R -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^ ^^^^^^^^^ >h : (_: (_: K) => (_: M) => M) => (_: M) => M -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : (_: K) => (_: M) => M > : ^ ^^ ^^^^^ >_ : K @@ -107,7 +107,7 @@ var foo: (g: (x: K) => N) => (f: (_: N) => (_: R) => R) => h(combine(f)(g)) >(f: (_: N) => (_: R) => R) => h(combine(f)(g)) : (f: (_: N) => (_: R) => R) => (_: R) => R -> : ^ ^^ ^^ ^^^^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^^^^^^^^ >f : (_: N) => (_: R) => R > : ^ ^^ ^^^^^ >_ : N @@ -117,13 +117,13 @@ var foo: (g: (x: K) => N) => >h(combine(f)(g)) : (_: R) => R > : ^ ^^^^^^^^^ >h : (_: (_: K) => (_: M) => M) => (_: M) => M -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >combine(f)(g) : (x: K) => (_: R) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^ ^^ >combine(f) : (g: (_: U) => N) => (x: U) => (_: R) => R -> : ^^^^ ^^^ ^^^^^^^^^^^^^^ ^ ^ ^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^ ^ ^^ >combine : (f: (_: T) => S) => (g: (_: U) => T) => (x: U) => S -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : (_: N) => (_: R) => R > : ^ ^^ ^^^^^ >g : (x: K) => N diff --git a/tests/baselines/reference/genericsManyTypeParameters.types b/tests/baselines/reference/genericsManyTypeParameters.types index 8bba0974e443b..7f396bd0dcc67 100644 --- a/tests/baselines/reference/genericsManyTypeParameters.types +++ b/tests/baselines/reference/genericsManyTypeParameters.types @@ -6,7 +6,7 @@ Strict subtype cache: 10,000 === genericsManyTypeParameters.ts === function Foo< >Foo : (x1: a1, y1: a21, z1: a31, a1: a41, b1: a51, c1: a61, x2: a119, y2: a22, z2: a32, a2: a42, b2: a52, c2: a62, x3: a219, y3: a23, z3: a33, a3: a43, b3: a53, c3: a63, x4: a319, y4: a24, z4: a34, a4: a44, b4: a54, c4: a64, x5: a419, y5: a25, z5: a35, a5: a45, b5: a55, c5: a65, x6: a519, y6: a26, z6: a36, a6: a46, b6: a56, c6: a66, x7: a619, y7: a27, z7: a37, a7: a47, b7: a57, c7: a67, x8: a71, y8: a28, z8: a38, a8: a48, b8: a58, c8: a68, x9: a81, y9: a29, z9: a39, a9: a49, b9: a59, c9: a69, x10: a91, y12: a210, z10: a310, a10: a410, b10: a510, c10: a610, x11: a111, y13: a211, z11: a311, a11: a411, b11: a511, c11: a611, x12: a112, y14: a212, z12: a312, a12: a412, b12: a512, c12: a612, x13: a113, y15: a213, z13: a313, a13: a413, b13: a513, c13: a613, x14: a114, y16: a214, z14: a314, a14: a414, b14: a514, c14: a614, x15: a115, y17: a215, z15: a315, a15: a415, b15: a515, c15: a615, x16: a116, y18: a216, z16: a316, a16: a416, b16: a516, c16: a616, x17: a117, y19: a217, z17: a317, a17: a417, b17: a517, c17: a617, x18: a118, y10: a218, z18: a318, a18: a418, b18: a518, c18: a618) => (a1 | a21 | a31 | a41 | a51 | a61 | a119 | a22 | a32 | a42 | a52 | a62 | a219 | a23 | a33 | a43 | a53 | a63 | a319 | a24 | a34 | a44 | a54 | a64 | a419 | a25 | a35 | a45 | a55 | a65 | a519 | a26 | a36 | a46 | a56 | a66 | a619 | a27 | a37 | a47 | a57 | a67 | a71 | a28 | a38 | a48 | a58 | a68 | a81 | a29 | a39 | a49 | a59 | a69 | a91 | a210 | a310 | a410 | a510 | a610 | a111 | a211 | a311 | a411 | a511 | a611 | a112 | a212 | a312 | a412 | a512 | a612 | a113 | a213 | a313 | a413 | a513 | a613 | a114 | a214 | a314 | a414 | a514 | a614 | a115 | a215 | a315 | a415 | a515 | a615 | a116 | a216 | a316 | a416 | a516 | a616 | a117 | a217 | a317 | a417 | a517 | a617 | a118 | a218 | a318 | a418 | a518 | a618)[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ a1, a21, a31, a41, a51, a61, a119, a22, a32, a42, a52, a62, diff --git a/tests/baselines/reference/genericsWithDuplicateTypeParameters1.types b/tests/baselines/reference/genericsWithDuplicateTypeParameters1.types index 3f77e49491045..5370d14e9ac78 100644 --- a/tests/baselines/reference/genericsWithDuplicateTypeParameters1.types +++ b/tests/baselines/reference/genericsWithDuplicateTypeParameters1.types @@ -7,7 +7,7 @@ function f() { } function f2(a: X, b: X): X { return null; } >f2 : (a: X, b: X) => X -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : X @@ -23,7 +23,7 @@ class C { public f2(a: X, b: X): X { return null; } >f2 : (a: X, b: X) => X -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : X @@ -37,7 +37,7 @@ interface I { f2(a: X, b: X): X; >f2 : (a: X, b: X) => X -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : X @@ -46,9 +46,9 @@ interface I { var m = { >m : { a: () => void; b: (a: X, b: X) => X; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >{ a: function f() {}, b: function f2(a: X, b: X): X { return null; }} : { a: () => void; b: (a: X, b: X) => X; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ a: function f() {}, >a : () => void @@ -60,11 +60,11 @@ var m = { b: function f2(a: X, b: X): X { return null; } >b : (a: X, b: X) => X -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >function f2(a: X, b: X): X { return null; } : (a: X, b: X) => X -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f2 : (a: X, b: X) => X -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : X diff --git a/tests/baselines/reference/genericsWithoutTypeParameters1.types b/tests/baselines/reference/genericsWithoutTypeParameters1.types index d53f00d368de8..456e1a56f6cbe 100644 --- a/tests/baselines/reference/genericsWithoutTypeParameters1.types +++ b/tests/baselines/reference/genericsWithoutTypeParameters1.types @@ -107,7 +107,7 @@ class A { } function f(x: T): A { >f : (x: T) => A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/getParameterNameAtPosition.types b/tests/baselines/reference/getParameterNameAtPosition.types index bbcfa36d51668..e1eee57f93bcc 100644 --- a/tests/baselines/reference/getParameterNameAtPosition.types +++ b/tests/baselines/reference/getParameterNameAtPosition.types @@ -25,7 +25,7 @@ declare function cases(tester: Tester): void; declare function fn(implementation?: (...args: Y) => any): Mock; >fn : (implementation?: (...args: Y) => any) => Mock -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >implementation : ((...args: Y) => any) | undefined > : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >args : Y @@ -39,7 +39,7 @@ cases(fn(opts => { })); >fn(opts => { }) : Mock<[opts: any]> > : ^^^^^^^^^^^^^^^^^ >fn : (implementation?: (...args: Y) => any) => Mock -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >opts => { } : (opts: any) => void > : ^ ^^^^^^^^^^^^^^ >opts : any diff --git a/tests/baselines/reference/getterSetterNonAccessor.types b/tests/baselines/reference/getterSetterNonAccessor.types index d5bed2c074292..0849b79f2737a 100644 --- a/tests/baselines/reference/getterSetterNonAccessor.types +++ b/tests/baselines/reference/getterSetterNonAccessor.types @@ -16,11 +16,11 @@ Object.defineProperty({}, "0", ({ >Object.defineProperty({}, "0", ({ get: getFunc, set: setFunc, configurable: true })) : {} > : ^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{} : {} > : ^^ >"0" : "0" diff --git a/tests/baselines/reference/heterogeneousArrayLiterals.types b/tests/baselines/reference/heterogeneousArrayLiterals.types index 19a6ae7003bb7..e0128b81ccd63 100644 --- a/tests/baselines/reference/heterogeneousArrayLiterals.types +++ b/tests/baselines/reference/heterogeneousArrayLiterals.types @@ -436,7 +436,7 @@ module WithContextualType { function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -513,7 +513,7 @@ function foo(t: T, u: U) { function foo2(t: T, u: U) { >foo2 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -630,7 +630,7 @@ function foo2(t: T, u: U) { function foo3(t: T, u: U) { >foo3 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -747,7 +747,7 @@ function foo3(t: T, u: U) { function foo4(t: T, u: U) { >foo4 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/higherOrderMappedIndexLookupInference.types b/tests/baselines/reference/higherOrderMappedIndexLookupInference.types index 71d8873ff5474..1d2e334e9f283 100644 --- a/tests/baselines/reference/higherOrderMappedIndexLookupInference.types +++ b/tests/baselines/reference/higherOrderMappedIndexLookupInference.types @@ -7,75 +7,75 @@ function f1(a: () => keyof T, b: () => keyof U) { >f1 : (a: () => keyof T, b: () => keyof U) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : () => keyof T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => keyof U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a = b; >a = b : () => keyof U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : () => keyof T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => keyof U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ b = a; >b = a : () => keyof T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => keyof U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : () => keyof T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } function f2(a: () => T[K], b: () => U[L]) { >f2 : (a: () => T[K], b: () => U[L]) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : () => T[K] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >b : () => U[L] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ a = b; >a = b : () => U[L] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >a : () => T[K] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >b : () => U[L] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ b = a; >b = a : () => T[K] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >b : () => U[L] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ >a : () => T[K] -> : ^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ } function f3(a: () => { [K in keyof T]: T[K] }, b: () => { [K in keyof U]: U[K] }) { >f3 : (a: () => { [K in keyof T]: T[K]; }, b: () => { [K in keyof U]: U[K]; }) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : () => { [K in keyof T]: T[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a = b; >a = b : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : () => { [K in keyof T]: T[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ b = a; >b = a : () => { [K in keyof T]: T[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : () => { [K in keyof T]: T[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } // Repro from #18338 @@ -86,17 +86,17 @@ type IdMapped = { [K in keyof T]: T[K] } declare const f: () => IdMapped; >f : () => IdMapped -> : ^ ^^^^^^^ +> : ^^^^^^^^^ declare const g: () => { [K in keyof U]: U[K] }; >g : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const h: typeof g = f; >h : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >g : () => { [K in keyof U]: U[K]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : () => IdMapped -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types b/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types index 6f760d214037e..8226f1f1ad7ef 100644 --- a/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types +++ b/tests/baselines/reference/homomorphicMappedTypeIntersectionAssignability.types @@ -3,7 +3,7 @@ === homomorphicMappedTypeIntersectionAssignability.ts === function f( >f : (a: { weak?: string; } & Readonly & { name: "ok"; }, b: Readonly, c: Readonly & { name: string; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ a: { weak?: string } & Readonly & { name: "ok" }, >a : { weak?: string; } & Readonly & { name: "ok"; } diff --git a/tests/baselines/reference/homomorphicMappedTypeNesting.types b/tests/baselines/reference/homomorphicMappedTypeNesting.types index 5d6bdf11d211d..9ad938e676e82 100644 --- a/tests/baselines/reference/homomorphicMappedTypeNesting.types +++ b/tests/baselines/reference/homomorphicMappedTypeNesting.types @@ -26,7 +26,7 @@ type Identity = { [K in keyof T]: T[K] }; declare function fnBad>>(...args: T): Test>>; >fnBad : >>(...args: T) => Test>> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ diff --git a/tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types b/tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types index c1e144ec37ca2..3474ba73723be 100644 --- a/tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types +++ b/tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types @@ -15,12 +15,12 @@ type HandleOptions = { declare function func1< >func1 : >(fields: { [K in keyof T]: { label: string; options: [...HandleOptions]; }; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ T extends Record, >(fields: { >fields : { [K in keyof T]: { label: string; options: [...HandleOptions]; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ [K in keyof T]: { label: string; @@ -40,7 +40,7 @@ const result = func1({ >func1({ prop: { label: "first", options: [ { value: 123, }, { value: "foo", }, ], }, other: { label: "second", options: [ { value: "bar", }, { value: true, }, ], },}) : { prop: [number, string]; other: [string, boolean]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func1 : >(fields: { [K in keyof T]: { label: string; options: [...HandleOptions]; }; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ prop: { label: "first", options: [ { value: 123, }, { value: "foo", }, ], }, other: { label: "second", options: [ { value: "bar", }, { value: true, }, ], },} : { prop: { label: string; options: [{ value: number; }, { value: string; }]; }; other: { label: string; options: [{ value: string; }, { value: true; }]; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/icomparable.types b/tests/baselines/reference/icomparable.types index 5dbb90f555704..cceb698286296 100644 --- a/tests/baselines/reference/icomparable.types +++ b/tests/baselines/reference/icomparable.types @@ -11,7 +11,7 @@ declare function sort>(items: U[]): U[]; >sort : >(items: U[]) => U[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >items : U[] > : ^^^ @@ -28,7 +28,7 @@ >sort(sc) : StringComparable[] > : ^^^^^^^^^^^^^^^^^^ >sort : >(items: U[]) => U[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >sc : StringComparable[] > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/identicalCallSignatures.types b/tests/baselines/reference/identicalCallSignatures.types index 9394e8ec8429e..b0c19c19a02ab 100644 --- a/tests/baselines/reference/identicalCallSignatures.types +++ b/tests/baselines/reference/identicalCallSignatures.types @@ -31,7 +31,7 @@ interface I2 { var a: { >a : { (x: any): number; (x: any): number; (x: T): T; (x: T): T; } -> : ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x): number; >x : any diff --git a/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types b/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types index b6ad487dd1e41..618962d588ce7 100644 --- a/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types +++ b/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types @@ -3,7 +3,7 @@ === identicalGenericConditionalsWithInferRelated.ts === function f(arg: X) { >f : (arg: X) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : X > : ^ @@ -62,7 +62,7 @@ export type MappedResult = interface X { decode>(ctor: C): MappedResult ? T : never> >decode : >(ctor: C) => MappedResult ? T : never> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >ctor : C > : ^ } @@ -73,7 +73,7 @@ class Y implements X { decode>(ctor: C): MappedResult ? T : never> { >decode : >(ctor: C) => MappedResult ? T : never> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >ctor : C > : ^ diff --git a/tests/baselines/reference/identityAndDivergentNormalizedTypes.types b/tests/baselines/reference/identityAndDivergentNormalizedTypes.types index 14f8196ba97e2..adb08954b1d2b 100644 --- a/tests/baselines/reference/identityAndDivergentNormalizedTypes.types +++ b/tests/baselines/reference/identityAndDivergentNormalizedTypes.types @@ -40,9 +40,9 @@ type PostBody = Extract["body"]; const post = ( >post : (path: PATH, { body, ...options }: Omit & { body: PostBody; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >( path: PATH, {body, ...options}: Omit & {body: PostBody}) => {} : (path: PATH, { body, ...options }: Omit & { body: PostBody; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ path: PATH, >path : PATH @@ -61,9 +61,9 @@ const post = ( const tmp = ( >tmp : (path: PATH, body: PostBody) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >( path: PATH, body: PostBody) => { post(path, { body })} : (path: PATH, body: PostBody) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ path: PATH, >path : PATH @@ -78,7 +78,7 @@ const tmp = ( >post(path, { body }) : void > : ^^^^ >post : (path: PATH_1, { body, ...options }: Omit & { body: PostBody; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >path : PATH > : ^^^^ >{ body } : { body: PostBody; } @@ -89,7 +89,7 @@ const tmp = ( function fx1

(x: { body: PostBody

}, y: { body: PostBody

}) { >fx1 :

(x: { body: PostBody

; }, y: { body: PostBody

; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { body: PostBody

; } > : ^^^^^^^^ ^^^ >body : PostBody

(a: P & {}) => { >f :

(a: P & {}) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >

(a: P & {}) => { "foo" in a;} :

(a: P & {}) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : P > : ^ @@ -1701,7 +1701,7 @@ const f =

(a: P & {}) => { function test1>(obj: T) { >test1 : >(obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ @@ -1738,7 +1738,7 @@ function test1>(obj: T) { function test2>(obj: T) { >test2 : >(obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ @@ -1767,7 +1767,7 @@ function test2>(obj: T) { function test3>(obj: T) { >test3 : >(obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ diff --git a/tests/baselines/reference/inKeywordTypeguard(strict=true).types b/tests/baselines/reference/inKeywordTypeguard(strict=true).types index 118e1c698a636..30fb047930800 100644 --- a/tests/baselines/reference/inKeywordTypeguard(strict=true).types +++ b/tests/baselines/reference/inKeywordTypeguard(strict=true).types @@ -910,7 +910,7 @@ function f2(x: object) { function f3(x: T) { >f3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -1593,7 +1593,7 @@ function f16(x: typeof globalThis, y: Window & typeof globalThis) { function foo(value: A) { >foo : (value: A) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >value : A > : ^ @@ -1659,7 +1659,7 @@ const checkIsTouchDevice = () => function isHTMLTable(table: T): boolean { >isHTMLTable : (table: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >table : T > : ^ @@ -1684,9 +1684,9 @@ function isHTMLTable(table: T): boolean { const f =

(a: P & {}) => { >f :

(a: P & {}) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >

(a: P & {}) => { "foo" in a;} :

(a: P & {}) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : P > : ^ @@ -1704,7 +1704,7 @@ const f =

(a: P & {}) => { function test1>(obj: T) { >test1 : >(obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ @@ -1741,7 +1741,7 @@ function test1>(obj: T) { function test2>(obj: T) { >test2 : >(obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ @@ -1770,7 +1770,7 @@ function test2>(obj: T) { function test3>(obj: T) { >test3 : >(obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ diff --git a/tests/baselines/reference/inOperatorWithValidOperands.types b/tests/baselines/reference/inOperatorWithValidOperands.types index 2233fac204492..65c0b2941697f 100644 --- a/tests/baselines/reference/inOperatorWithValidOperands.types +++ b/tests/baselines/reference/inOperatorWithValidOperands.types @@ -121,7 +121,7 @@ var rb2 = x in {}; function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -138,7 +138,7 @@ function foo(t: T) { function unionCase(t: T | U) { >unionCase : (t: T | U) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >t : T | U > : ^^^^^ @@ -155,7 +155,7 @@ function unionCase(t: T | U) { function unionCase2(t: T | object) { >unionCase2 : (t: T | object) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : object | T > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/incompatibleGenericTypes.types b/tests/baselines/reference/incompatibleGenericTypes.types index 79eb21199d4ab..140dce4ce6765 100644 --- a/tests/baselines/reference/incompatibleGenericTypes.types +++ b/tests/baselines/reference/incompatibleGenericTypes.types @@ -5,7 +5,7 @@ interface I1 { m1(callback: (p: T) => U): I1; >m1 : (callback: (p: T) => U) => I1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (p: T) => U > : ^ ^^ ^^^^^ >p : T diff --git a/tests/baselines/reference/incorrectNumberOfTypeArgumentsDuringErrorReporting.types b/tests/baselines/reference/incorrectNumberOfTypeArgumentsDuringErrorReporting.types index 22ad927669c38..903f61a0e941c 100644 --- a/tests/baselines/reference/incorrectNumberOfTypeArgumentsDuringErrorReporting.types +++ b/tests/baselines/reference/incorrectNumberOfTypeArgumentsDuringErrorReporting.types @@ -19,9 +19,9 @@ interface Opts {a:A, b:B} const fn = < >fn : (opts: Opts) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ >< A extends ObjA, B extends ObjB = ObjB>(opts:Opts):string => 'Z' : (opts: Opts) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ A extends ObjA, B extends ObjB = ObjB @@ -41,7 +41,7 @@ fn({ >fn({ a: {x: 'X', y: 'Y'}, b: {},}) : string > : ^^^^^^ >fn : (opts: Opts) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ >{ a: {x: 'X', y: 'Y'}, b: {},} : { a: { x: string; y: string; }; b: {}; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/incorrectRecursiveMappedTypeConstraint.types b/tests/baselines/reference/incorrectRecursiveMappedTypeConstraint.types index 4a0c8c2e46ab6..6d4a5e1a5f08c 100644 --- a/tests/baselines/reference/incorrectRecursiveMappedTypeConstraint.types +++ b/tests/baselines/reference/incorrectRecursiveMappedTypeConstraint.types @@ -4,7 +4,7 @@ // #17847 function sum(n: number, v: T, k: K) { >sum : (n: number, v: T, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : number > : ^^^^^^ >v : T diff --git a/tests/baselines/reference/indexAt(target=es2022).types b/tests/baselines/reference/indexAt(target=es2022).types index d9ed90c20579c..3c38cf595abf5 100644 --- a/tests/baselines/reference/indexAt(target=es2022).types +++ b/tests/baselines/reference/indexAt(target=es2022).types @@ -5,13 +5,13 @@ >[0].at(0) : number > : ^^^^^^ >[0].at : (index: number) => number | undefined -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >[0] : number[] > : ^^^^^^^^ >0 : 0 > : ^ >at : (index: number) => number | undefined -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/indexAt(target=esnext).types b/tests/baselines/reference/indexAt(target=esnext).types index d9ed90c20579c..3c38cf595abf5 100644 --- a/tests/baselines/reference/indexAt(target=esnext).types +++ b/tests/baselines/reference/indexAt(target=esnext).types @@ -5,13 +5,13 @@ >[0].at(0) : number > : ^^^^^^ >[0].at : (index: number) => number | undefined -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >[0] : number[] > : ^^^^^^^^ >0 : 0 > : ^ >at : (index: number) => number | undefined -> : ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/indexSignatureAndMappedType.types b/tests/baselines/reference/indexSignatureAndMappedType.types index 2d2a82d3e2d8c..fc23565f703e1 100644 --- a/tests/baselines/reference/indexSignatureAndMappedType.types +++ b/tests/baselines/reference/indexSignatureAndMappedType.types @@ -6,7 +6,7 @@ function f1(x: { [key: string]: T }, y: Record) { >f1 : (x: { [key: string]: T; }, y: Record) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [key: string]: T; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -33,7 +33,7 @@ function f1(x: { [key: string]: T }, y: Record) { function f2(x: { [key: string]: T }, y: Record) { >f2 : (x: { [key: string]: T; }, y: Record) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [key: string]: T; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -60,7 +60,7 @@ function f2(x: { [key: string]: T }, y: Record) { function f3(x: { [key: string]: T }, y: Record) { >f3 : (x: { [key: string]: T; }, y: Record) => void -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [key: string]: T; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string diff --git a/tests/baselines/reference/indexSignatureOfTypeUnknownStillRequiresIndexSignature.types b/tests/baselines/reference/indexSignatureOfTypeUnknownStillRequiresIndexSignature.types index c4bda1e353206..2bbc55e9865cc 100644 --- a/tests/baselines/reference/indexSignatureOfTypeUnknownStillRequiresIndexSignature.types +++ b/tests/baselines/reference/indexSignatureOfTypeUnknownStillRequiresIndexSignature.types @@ -3,7 +3,7 @@ === indexSignatureOfTypeUnknownStillRequiresIndexSignature.ts === declare function f(x: { [x: string]: T }): T; >f : (x: { [x: string]: T; }) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ >x : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : string @@ -57,7 +57,7 @@ f(stooges); // Should throw >f(stooges) : unknown > : ^^^^^^^ >f : (x: { [x: string]: T; }) => T -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ >stooges : { name: string; age: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/indexSignatureTypeInference.types b/tests/baselines/reference/indexSignatureTypeInference.types index 44c4297bbbdab..0d1da4437425c 100644 --- a/tests/baselines/reference/indexSignatureTypeInference.types +++ b/tests/baselines/reference/indexSignatureTypeInference.types @@ -15,13 +15,13 @@ interface StringMap { declare function numberMapToArray(object: NumberMap): T[]; >numberMapToArray : (object: NumberMap) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >object : NumberMap > : ^^^^^^^^^^^^ declare function stringMapToArray(object: StringMap): T[]; >stringMapToArray : (object: StringMap) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >object : StringMap > : ^^^^^^^^^^^^ @@ -43,7 +43,7 @@ var v1 = numberMapToArray(numberMap); // Ok >numberMapToArray(numberMap) : Function[] > : ^^^^^^^^^^ >numberMapToArray : (object: NumberMap) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >numberMap : NumberMap > : ^^^^^^^^^^^^^^^^^^^ @@ -53,7 +53,7 @@ var v1 = numberMapToArray(stringMap); // Ok >numberMapToArray(stringMap) : Function[] > : ^^^^^^^^^^ >numberMapToArray : (object: NumberMap) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >stringMap : StringMap > : ^^^^^^^^^^^^^^^^^^^ @@ -63,7 +63,7 @@ var v1 = stringMapToArray(numberMap); // Error expected here >stringMapToArray(numberMap) : unknown[] > : ^^^^^^^^^ >stringMapToArray : (object: StringMap) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >numberMap : NumberMap > : ^^^^^^^^^^^^^^^^^^^ @@ -73,7 +73,7 @@ var v1 = stringMapToArray(stringMap); // Ok >stringMapToArray(stringMap) : Function[] > : ^^^^^^^^^^ >stringMapToArray : (object: StringMap) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >stringMap : StringMap > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/indexSignatures1.types b/tests/baselines/reference/indexSignatures1.types index f33d4ebdf16eb..f0f3ab5517a05 100644 --- a/tests/baselines/reference/indexSignatures1.types +++ b/tests/baselines/reference/indexSignatures1.types @@ -1327,7 +1327,7 @@ const directive = Symbol('directive'); declare function foo(options: { [x in string]: (arg: TArg) => TRet } & { [directive]?: TDir }): void; >foo : (options: { [x in string]: (arg: TArg) => TRet; } & { [directive]?: TDir; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >options : { [x: string]: (arg: TArg) => TRet; } & { [directive]?: TDir; } > : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >arg : TArg @@ -1343,7 +1343,7 @@ let case1 = foo({ >foo({ [directive]: (x: string) => 'str', addOne: (x: number) => x + 1, double: (x: number) => x + x,}) : void > : ^^^^ >foo : (options: { [x in string]: (arg: TArg) => TRet; } & { [directive]?: TDir; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ [directive]: (x: string) => 'str', addOne: (x: number) => x + 1, double: (x: number) => x + x,} : { [directive]: (x: string) => "str"; addOne: (x: number) => number; double: (x: number) => number; } > : ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ @@ -1395,7 +1395,7 @@ let case2 = foo({ >foo({ addOne: (x: number) => x + 1, double: (x: number) => x + x, [directive]: (x: string) => 'str',}) : void > : ^^^^ >foo : (options: { [x in string]: (arg: TArg) => TRet; } & { [directive]?: TDir; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ addOne: (x: number) => x + 1, double: (x: number) => x + x, [directive]: (x: string) => 'str',} : { addOne: (x: number) => number; double: (x: number) => number; [directive]: (x: string) => "str"; } > : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ @@ -1447,7 +1447,7 @@ let case3 = foo({ >foo({ [directive]: 'str', addOne: (x: number) => x + 1, double: (x: number) => x + x,}) : void > : ^^^^ >foo : (options: { [x in string]: (arg: TArg) => TRet; } & { [directive]?: TDir; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ [directive]: 'str', addOne: (x: number) => x + 1, double: (x: number) => x + x,} : { [directive]: string; addOne: (x: number) => number; double: (x: number) => number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/indexSignaturesInferentialTyping.types b/tests/baselines/reference/indexSignaturesInferentialTyping.types index 7fabdd84f722e..3f032d536cd60 100644 --- a/tests/baselines/reference/indexSignaturesInferentialTyping.types +++ b/tests/baselines/reference/indexSignaturesInferentialTyping.types @@ -3,7 +3,7 @@ === indexSignaturesInferentialTyping.ts === function foo(items: { [index: number]: T }): T { return undefined; } >foo : (items: { [index: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >items : { [index: number]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >index : number @@ -13,7 +13,7 @@ function foo(items: { [index: number]: T }): T { return undefined; } function bar(items: { [index: string]: T }): T { return undefined; } >bar : (items: { [index: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >items : { [index: string]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >index : string @@ -27,7 +27,7 @@ var x1 = foo({ 0: 0, 1: 1 }); // type should be number >foo({ 0: 0, 1: 1 }) : number > : ^^^^^^ >foo : (items: { [index: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ 0: 0, 1: 1 } : { 0: number; 1: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : number @@ -45,7 +45,7 @@ var x2 = bar({ 0: 0, 1: 1 }); >bar({ 0: 0, 1: 1 }) : number > : ^^^^^^ >bar : (items: { [index: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ 0: 0, 1: 1 } : { 0: number; 1: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : number @@ -63,7 +63,7 @@ var x3 = bar({ zero: 0, one: 1 }); // type should be number >bar({ zero: 0, one: 1 }) : number > : ^^^^^^ >bar : (items: { [index: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ zero: 0, one: 1 } : { zero: number; one: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >zero : number diff --git a/tests/baselines/reference/indexedAccessAndNullableNarrowing.types b/tests/baselines/reference/indexedAccessAndNullableNarrowing.types index b2cd3aae039cf..4170b3f0a653c 100644 --- a/tests/baselines/reference/indexedAccessAndNullableNarrowing.types +++ b/tests/baselines/reference/indexedAccessAndNullableNarrowing.types @@ -3,7 +3,7 @@ === indexedAccessAndNullableNarrowing.ts === function f1, K extends keyof T>(x: T[K] | undefined) { >f1 : , K extends keyof T>(x: T[K] | undefined) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T[K] | undefined > : ^^^^^^^^^^^^^^^^ @@ -34,7 +34,7 @@ function f1, K extends keyof T>(x: T[K] | undefine function f2, K extends keyof T>(x: T[K] | null) { >f2 : , K extends keyof T>(x: T[K] | null) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T[K] | null > : ^^^^^^^^^^^ @@ -61,7 +61,7 @@ function f2, K extends keyof T>(x: T[K] | null) { function f3(t: T[K], p1: Partial[K] & {}, p2: Partial[K] & ({} | null)) { >f3 : (t: T[K], p1: Partial[K] & {}, p2: Partial[K] & ({} | null)) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T[K] > : ^^^^ >p1 : Partial[K] & {} @@ -98,7 +98,7 @@ type State = AnyObject; declare function hasOwnProperty( >hasOwnProperty : (object: T, prop: PropertyKey) => prop is keyof T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ object: T, >object : T @@ -113,7 +113,7 @@ declare function hasOwnProperty( interface Store { setState(key: K, value: S[K]): void; >setState : (key: K, value: S[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : S[K] @@ -122,7 +122,7 @@ interface Store { export function syncStoreProp< >syncStoreProp : , K extends keyof S>(store: Store, props: P, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ S extends State, P extends Partial, @@ -143,7 +143,7 @@ export function syncStoreProp< >hasOwnProperty(props, key) : boolean > : ^^^^^^^ >hasOwnProperty : (object: T, prop: PropertyKey) => prop is keyof T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >props : P > : ^ >key : string | number | symbol diff --git a/tests/baselines/reference/indexedAccessCanBeHighOrder.types b/tests/baselines/reference/indexedAccessCanBeHighOrder.types index d1ebf975098f1..3cd7cccfc119a 100644 --- a/tests/baselines/reference/indexedAccessCanBeHighOrder.types +++ b/tests/baselines/reference/indexedAccessCanBeHighOrder.types @@ -3,7 +3,7 @@ === indexedAccessCanBeHighOrder.ts === declare function get(x: U, y: Y): U[Y]; >get : (x: U, y: Y) => U[Y] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : U > : ^ >y : Y @@ -11,13 +11,13 @@ declare function get(x: U, y: Y): U[Y]; declare function find(o: T[K]): [T, K]; >find : (o: T[K]) => [T, K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >o : T[K] > : ^^^^ function impl(a: A, b: B) { >impl : (a: A, b: B) => [A, B] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >a : A > : ^ >b : B @@ -29,7 +29,7 @@ function impl(a: A, b: B) { >get(a, b) : A[B] > : ^^^^ >get : (x: U, y: Y) => U[Y] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -39,7 +39,7 @@ function impl(a: A, b: B) { >find(item) : [A, B] > : ^^^^^^ >find : (o: T[K]) => [T, K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >item : A[B] > : ^^^^ } @@ -60,7 +60,7 @@ const r = impl(o, "x"); >impl(o, "x") : [{ x: number; }, "x"] > : ^^^^^^^^^^^^^^^^^^^^^ >impl : (a: A, b: B) => [A, B] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >o : { x: number; } > : ^^^^^^^^^^^^^^ >"x" : "x" diff --git a/tests/baselines/reference/indexedAccessConstraints.types b/tests/baselines/reference/indexedAccessConstraints.types index cf4424a04681e..c0d824ac40f73 100644 --- a/tests/baselines/reference/indexedAccessConstraints.types +++ b/tests/baselines/reference/indexedAccessConstraints.types @@ -3,7 +3,7 @@ === indexedAccessConstraints.ts === function foo(a: T[keyof T]) { >foo : (a: T[keyof T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : T[keyof T] > : ^^^^^^^^^^ @@ -18,7 +18,7 @@ function foo(a: T[keyof T]) { export function methodFnLength(obj: T, methodKey: K): number { >methodFnLength : (obj: T, methodKey: K) => number -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >methodKey : K @@ -61,7 +61,7 @@ export function methodFnLength(obj: T, methodKe function getField(x: T | null, k: keyof T) { >getField : (x: T | null, k: keyof T) => T[keyof T] | null -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >x : T | null > : ^^^^^^^^ >k : keyof T diff --git a/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types b/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types index 96b4f67f41db9..aba743afd1d05 100644 --- a/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types +++ b/tests/baselines/reference/indexedAccessKeyofNestedSimplifiedSubstituteUnwrapped.types @@ -14,7 +14,7 @@ type Params = Parameters>; interface Wrapper { call(event: K, ...args: Params): void; >call : (event: K, ...args: Params) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >event : K > : ^ >args : Parameters> diff --git a/tests/baselines/reference/indexedAccessNormalization.types b/tests/baselines/reference/indexedAccessNormalization.types index 7d373821593d1..52a502a53a742 100644 --- a/tests/baselines/reference/indexedAccessNormalization.types +++ b/tests/baselines/reference/indexedAccessNormalization.types @@ -16,13 +16,13 @@ type MyMap = { declare function g(value?: T): void; >g : (value?: T) => void -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >value : T | undefined > : ^^^^^^^^^^^^^ function f1(mymap: MyMap, k: keyof M) { >f1 : (mymap: MyMap, k: keyof M) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >mymap : MyMap > : ^^^^^^^^ >k : keyof M @@ -42,14 +42,14 @@ function f1(mymap: MyMap, k: keyof M) { >g(elemofM) : void > : ^^^^ >g : (value?: T) => void -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >elemofM : MyMap[keyof M] > : ^^^^^^^^^^^^^^^^^ } function f2(mymap: MyMap, k: keyof M, z: { x: number }) { >f2 : (mymap: MyMap, k: keyof M, z: { x: number; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >mymap : MyMap > : ^^^^^^^^ >k : keyof M diff --git a/tests/baselines/reference/indexedAccessRelation.types b/tests/baselines/reference/indexedAccessRelation.types index e97a9eac736b8..06228d3f46949 100644 --- a/tests/baselines/reference/indexedAccessRelation.types +++ b/tests/baselines/reference/indexedAccessRelation.types @@ -9,7 +9,7 @@ class Component { setState(state: Pick) {} >setState : (state: Pick) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >state : Pick > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/indexedAccessTypeConstraints.types b/tests/baselines/reference/indexedAccessTypeConstraints.types index 29721e2e95ce5..a23fade8f116a 100644 --- a/tests/baselines/reference/indexedAccessTypeConstraints.types +++ b/tests/baselines/reference/indexedAccessTypeConstraints.types @@ -15,7 +15,7 @@ type Data = { get: (prop: K) => T[K]; >get : (prop: K) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >prop : K > : ^ @@ -57,17 +57,17 @@ export class Foo extends Parent> { >this.getData().get('content') : C > : ^ >this.getData().get : (prop: K) => IData[K] -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^ ^ >this.getData() : Data> > : ^^^^^^^^^^^^^^ >this.getData : () => Data> -> : ^^^^^^ ^^^^^^^^ +> : ^^^^^^ ^^^^^ ^ >this : this > : ^^^^ >getData : () => Data> -> : ^^^^^^ ^^^^^^^^ +> : ^^^^^^ ^^^^^ ^ >get : (prop: K) => IData[K] -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^ ^ >'content' : "content" > : ^^^^^^^^^ } @@ -107,7 +107,7 @@ export class Bar> extends Parent { function foo(x: C, y: T['content']) { >foo : (x: C, y: T["content"]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >content : C > : ^ >x : C diff --git a/tests/baselines/reference/indexerReturningTypeParameter1.types b/tests/baselines/reference/indexerReturningTypeParameter1.types index bfc9e18a33534..3adcad83c7eb2 100644 --- a/tests/baselines/reference/indexerReturningTypeParameter1.types +++ b/tests/baselines/reference/indexerReturningTypeParameter1.types @@ -4,7 +4,7 @@ interface f { groupBy(): { [key: string]: T[]; }; >groupBy : () => { [key: string]: T[]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >key : string > : ^^^^^^ } @@ -18,11 +18,11 @@ var r = a.groupBy(); >a.groupBy() : { [key: string]: unknown[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a.groupBy : () => { [key: string]: T[]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : f > : ^ >groupBy : () => { [key: string]: T[]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ class c { >c : c @@ -30,7 +30,7 @@ class c { groupBy(): { [key: string]: T[]; } { >groupBy : () => { [key: string]: T[]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >key : string > : ^^^^^^ @@ -47,9 +47,9 @@ var r2 = a2.groupBy(); >a2.groupBy() : { [key: string]: unknown[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a2.groupBy : () => { [key: string]: T[]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a2 : c > : ^ >groupBy : () => { [key: string]: T[]; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/indexingTypesWithNever.types b/tests/baselines/reference/indexingTypesWithNever.types index 2ee4cf8e349a1..f371014b1109e 100644 --- a/tests/baselines/reference/indexingTypesWithNever.types +++ b/tests/baselines/reference/indexingTypesWithNever.types @@ -31,7 +31,7 @@ type Result2 = EmptyObj[keyof EmptyObj]; declare function genericFn1(obj: T): T[never]; >genericFn1 : (obj: T) => T[never] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -42,7 +42,7 @@ const result3 = genericFn1({ c: "ctest", d: "dtest" }); >genericFn1({ c: "ctest", d: "dtest" }) : never > : ^^^^^ >genericFn1 : (obj: T) => T[never] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ c: "ctest", d: "dtest" } : { c: string; d: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >c : string @@ -56,7 +56,7 @@ const result3 = genericFn1({ c: "ctest", d: "dtest" }); declare function genericFn2( >genericFn2 : (obj: T) => T[never] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >ind : string > : ^^^^^^ @@ -73,7 +73,7 @@ const result4 = genericFn2({ e: "etest", f: "ftest" }); >genericFn2({ e: "etest", f: "ftest" }) : never > : ^^^^^ >genericFn2 : (obj: T) => T[never] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ e: "etest", f: "ftest" } : { e: string; f: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >e : string @@ -87,7 +87,7 @@ const result4 = genericFn2({ e: "etest", f: "ftest" }); declare function genericFn3< >genericFn3 : (obj: T, u: U, v: V) => T[U & V] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ T extends { [K in keyof T]: T[K] }, U extends keyof T, @@ -107,7 +107,7 @@ const result5 = genericFn3({ g: "gtest", h: "htest" }, "g", "h"); // 'g' & 'h' w >genericFn3({ g: "gtest", h: "htest" }, "g", "h") : never > : ^^^^^ >genericFn3 : (obj: T, u: U, v: V) => T[U & V] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ g: "gtest", h: "htest" } : { g: string; h: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >g : string diff --git a/tests/baselines/reference/indirectGlobalSymbolPartOfObjectType.types b/tests/baselines/reference/indirectGlobalSymbolPartOfObjectType.types index 8712cb2a3e9df..31309e1a3a2f7 100644 --- a/tests/baselines/reference/indirectGlobalSymbolPartOfObjectType.types +++ b/tests/baselines/reference/indirectGlobalSymbolPartOfObjectType.types @@ -14,7 +14,7 @@ const Symbol = globalThis.Symbol; [][Symbol.iterator]; >[][Symbol.iterator] : () => IterableIterator -> : ^^^^^^ ^^^^^^^^^ +> : ^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >Symbol.iterator : unique symbol diff --git a/tests/baselines/reference/indirectTypeParameterReferences.types b/tests/baselines/reference/indirectTypeParameterReferences.types index b4165f151e9be..ce11f128af225 100644 --- a/tests/baselines/reference/indirectTypeParameterReferences.types +++ b/tests/baselines/reference/indirectTypeParameterReferences.types @@ -11,9 +11,9 @@ type B = {b: string} const flowtypes = (b: B) => { >flowtypes : (b: B) => { combined: (fn: (combined: A & B) => void) => any; literal: (fn: (aPlusB: A & B) => void) => any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >(b: B) => { type Combined = A & B const combined = (fn: (combined: Combined) => void) => null const literal = (fn: (aPlusB: A & B) => void) => null return {combined, literal}} : (b: B) => { combined: (fn: (combined: A & B) => void) => any; literal: (fn: (aPlusB: A & B) => void) => any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >b : B > : ^ @@ -23,11 +23,11 @@ const flowtypes = (b: B) => { const combined = (fn: (combined: Combined) => void) => null >combined : (fn: (combined: A & B) => void) => any -> : ^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^ ^ ^ ^^^^^^^^ >(fn: (combined: Combined) => void) => null : (fn: (combined: A & B) => void) => any -> : ^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^ ^ ^ ^^^^^^^^ >fn : (combined: A & B) => void -> : ^ ^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^ >combined : A & B > : ^^^^^ @@ -43,9 +43,9 @@ const flowtypes = (b: B) => { return {combined, literal} >{combined, literal} : { combined: (fn: (combined: A & B) => void) => any; literal: (fn: (aPlusB: A & B) => void) => any; } -> : ^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >combined : (fn: (combined: A & B) => void) => any -> : ^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^ ^ ^ ^^^^^^^^ >literal : (fn: (aPlusB: A & B) => void) => any > : ^ ^^ ^^^^^^^^ } @@ -58,7 +58,7 @@ const {combined, literal} = flowtypes<{a: string}>({b: 'b-value'}) >flowtypes<{a: string}>({b: 'b-value'}) : { combined: (fn: (combined: { a: string; } & B) => void) => any; literal: (fn: (aPlusB: { a: string; } & B) => void) => any; } > : ^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ >flowtypes : (b: B) => { combined: (fn: (combined: A & B) => void) => any; literal: (fn: (aPlusB: A & B) => void) => any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >a : string > : ^^^^^^ >{b: 'b-value'} : { b: string; } @@ -126,7 +126,7 @@ combined(comb => { declare function f(a: T): { a: typeof a }; >f : (a: T) => { a: typeof a; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ >a : T @@ -142,7 +142,7 @@ let n: number = f(2).a; >f(2) : { a: number; } > : ^^^^^^^^^^^^^^ >f : (a: T) => { a: typeof a; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >2 : 2 > : ^ >a : number diff --git a/tests/baselines/reference/inferFromBindingPattern.types b/tests/baselines/reference/inferFromBindingPattern.types index 0c1ba7f3b83aa..1265a52d18050 100644 --- a/tests/baselines/reference/inferFromBindingPattern.types +++ b/tests/baselines/reference/inferFromBindingPattern.types @@ -3,15 +3,15 @@ === inferFromBindingPattern.ts === declare function f1(): T; >f1 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ declare function f2(): [T]; >f2 : () => [T] -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ declare function f3(): { x: T }; >f3 : () => { x: T; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >x : T > : ^ @@ -21,7 +21,7 @@ let x1 = f1(); // string >f1() : string > : ^^^^^^ >f1 : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ let [x2] = f2(); // string >x2 : string @@ -29,7 +29,7 @@ let [x2] = f2(); // string >f2() : [string] > : ^^^^^^^^ >f2 : () => [T] -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ let { x: x3 } = f3(); // string >x : any @@ -39,13 +39,13 @@ let { x: x3 } = f3(); // string >f3() : { x: string; } > : ^^^^^^^^^^^^^^ >f3 : () => { x: T; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ // Repro from #30379 function foo(): [T] { >foo : () => [T] -> : ^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ return [42 as any] >[42 as any] : [any] @@ -60,7 +60,7 @@ const [x] = foo(); // [number] >foo() : [number] > : ^^^^^^^^ >foo : () => [T] -> : ^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ // Repro from #35291 @@ -88,7 +88,7 @@ interface Person { declare function selectJohn(props?: SelectProps): SelectResult; >selectJohn : (props?: SelectProps) => SelectResult -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ >props : SelectProps | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -98,7 +98,7 @@ const [person] = selectJohn(); >selectJohn() : SelectResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >selectJohn : (props?: SelectProps) => SelectResult -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ const [any, whatever] = selectJohn(); >any : Person @@ -108,7 +108,7 @@ const [any, whatever] = selectJohn(); >selectJohn() : SelectResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >selectJohn : (props?: SelectProps) => SelectResult -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ const john = selectJohn(); >john : SelectResult @@ -116,7 +116,7 @@ const john = selectJohn(); >selectJohn() : SelectResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >selectJohn : (props?: SelectProps) => SelectResult -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ const [personAgain, nufinspecial] = john; >personAgain : Person @@ -130,13 +130,13 @@ const [personAgain, nufinspecial] = john; declare function makeTuple(arg: T1): [T1]; >makeTuple : (arg: T1) => [T1] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^ ^^ ^^^^^ >arg : T1 > : ^^ declare function stringy(arg?: T): T; >stringy : (arg?: T) => T -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ >arg : T | undefined > : ^^^^^^^^^^^^^ @@ -146,11 +146,11 @@ const isStringTuple = makeTuple(stringy()); // [string] >makeTuple(stringy()) : [string] > : ^^^^^^^^ >makeTuple : (arg: T1) => [T1] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^ ^^ ^^^^^ >stringy() : string > : ^^^^^^ >stringy : (arg?: T) => T -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ const [isAny] = makeTuple(stringy()); // [string] >isAny : string @@ -158,9 +158,9 @@ const [isAny] = makeTuple(stringy()); // [string] >makeTuple(stringy()) : [string] > : ^^^^^^^^ >makeTuple : (arg: T1) => [T1] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^ ^^ ^^^^^ >stringy() : string > : ^^^^^^ >stringy : (arg?: T) => T -> : ^ ^^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes1.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes1.types index 22a3f43f5ab93..f4af5d76544b0 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes1.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes1.types @@ -37,7 +37,7 @@ class SetOf { transform(transformer: (a: SetOf) => SetOf): SetOf { >transform : (transformer: (a: SetOf) => SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >transformer : (a: SetOf) => SetOf > : ^ ^^ ^^^^^ >a : SetOf @@ -94,7 +94,7 @@ class SetOf { function compose( >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ fnA: (a: SetOf) => SetOf, >fnA : (a: SetOf) => SetOf @@ -127,7 +127,7 @@ function compose( /* ... etc ... */ function compose(...fns: ((x: T) => T)[]): (x: T) => T { >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >fns : ((x: T) => T)[] > : ^^ ^^ ^^^^^ ^^^ >x : T @@ -143,11 +143,11 @@ function compose(...fns: ((x: T) => T)[]): (x: T) => T { >fns.reduce((prev, fn) => fn(prev), x) : T > : ^ >fns.reduce : { (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T): (x: T) => T; (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T, initialValue: (x: T) => T): (x: T) => T; (callbackfn: (previousValue: U, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^^^ ^^^ ^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ >fns : ((x: T) => T)[] > : ^^ ^^ ^^^^^ ^^^ >reduce : { (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T): (x: T) => T; (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T, initialValue: (x: T) => T): (x: T) => T; (callbackfn: (previousValue: U, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^^^ ^^^ ^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ >(prev, fn) => fn(prev) : (prev: T, fn: (x: T) => T) => T > : ^ ^^^^^ ^^^ ^^ ^^^^^ ^^^^^^ >prev : T @@ -166,7 +166,7 @@ function compose(...fns: ((x: T) => T)[]): (x: T) => T { function map(fn: (a: A) => B): (s: SetOf) => SetOf { >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >fn : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -224,7 +224,7 @@ function map(fn: (a: A) => B): (s: SetOf) => SetOf { function filter(predicate: (a: A) => boolean): (s: SetOf) => SetOf { >filter : (predicate: (a: A) => boolean) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >predicate : (a: A) => boolean > : ^ ^^ ^^^^^ >a : A @@ -341,15 +341,15 @@ testSet.transform( compose( >compose( filter(x => x % 1 === 0), map(x => x + x), map(x => x + '!!!'), map(x => x.toUpperCase()) ) : (x: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ filter(x => x % 1 === 0), >filter(x => x % 1 === 0) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >filter : (predicate: (a: A) => boolean) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x % 1 === 0 : (x: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : number @@ -367,9 +367,9 @@ testSet.transform( map(x => x + x), >map(x => x + x) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x + x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -383,9 +383,9 @@ testSet.transform( map(x => x + '!!!'), >map(x => x + '!!!') : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x + '!!!' : (x: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -399,9 +399,9 @@ testSet.transform( map(x => x.toUpperCase()) >map(x => x.toUpperCase()) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x.toUpperCase() : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string @@ -430,15 +430,15 @@ testSet.transform( compose( >compose( filter(x => x % 1 === 0), map(x => x + x), map(x => 123), // Whoops a bug map(x => x.toUpperCase()) // causes an error! ) : (x: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ filter(x => x % 1 === 0), >filter(x => x % 1 === 0) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >filter : (predicate: (a: A) => boolean) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x % 1 === 0 : (x: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : number @@ -456,9 +456,9 @@ testSet.transform( map(x => x + x), >map(x => x + x) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x + x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -472,9 +472,9 @@ testSet.transform( map(x => 123), // Whoops a bug >map(x => 123) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => 123 : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -484,9 +484,9 @@ testSet.transform( map(x => x.toUpperCase()) // causes an error! >map(x => x.toUpperCase()) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x.toUpperCase() : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types index ae79c3944e7eb..541dcc4d028bb 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes2.types @@ -9,19 +9,19 @@ type Mapper = (x: T) => U; declare function wrap(cb: Mapper): Mapper; >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >cb : Mapper > : ^^^^^^^^^^^^ declare function arrayize(cb: Mapper): Mapper; >arrayize : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >cb : Mapper > : ^^^^^^^^^^^^ declare function combine(f: (x: A) => B, g: (x: B) => C): (x: A) => C; >combine : (f: (x: A) => B, g: (x: B) => C) => (x: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >f : (x: A) => B > : ^ ^^ ^^^^^ >x : A @@ -59,7 +59,7 @@ let f2: Mapper = wrap(s => s.length); >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -77,11 +77,11 @@ let f3: Mapper = arrayize(wrap(s => s.length)); >arrayize(wrap(s => s.length)) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^^ >arrayize : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -97,13 +97,13 @@ let f4: Mapper = combine(wrap(s => s.length), wrap(n => n >= 10 >f4 : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^ >combine(wrap(s => s.length), wrap(n => n >= 10)) : (x: string) => boolean -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >combine : (f: (x: A) => B, g: (x: B) => C) => (x: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -117,7 +117,7 @@ let f4: Mapper = combine(wrap(s => s.length), wrap(n => n >= 10 >wrap(n => n >= 10) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >n => n >= 10 : (n: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >n : number @@ -137,7 +137,7 @@ foo(wrap(s => s.length)); >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -193,7 +193,7 @@ let a2 = ["a", "b"].map(wrap(s => s.length)); >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -223,11 +223,11 @@ let a3 = ["a", "b"].map(wrap(arrayize(s => s.length))); >wrap(arrayize(s => s.length)) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >arrayize(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^^ >arrayize : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -255,13 +255,13 @@ let a4 = ["a", "b"].map(combine(wrap(s => s.length), wrap(n => n > 10))); >map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] > : ^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ >combine(wrap(s => s.length), wrap(n => n > 10)) : (x: string) => boolean -> : ^ ^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >combine : (f: (x: A) => B, g: (x: B) => C) => (x: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -275,7 +275,7 @@ let a4 = ["a", "b"].map(combine(wrap(s => s.length), wrap(n => n > 10))); >wrap(n => n > 10) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >n => n > 10 : (n: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >n : number @@ -303,15 +303,15 @@ let a5 = ["a", "b"].map(combine(identity, wrap(s => s.length))); >map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] > : ^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ >combine(identity, wrap(s => s.length)) : (x: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >combine : (f: (x: A) => B, g: (x: B) => C) => (x: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -339,13 +339,13 @@ let a6 = ["a", "b"].map(combine(wrap(s => s.length), identity)); >map : (callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any) => U[] > : ^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ >combine(wrap(s => s.length), identity) : (x: string) => number -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >combine : (f: (x: A) => B, g: (x: B) => C) => (x: A) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >wrap(s => s.length) : Mapper > : ^^^^^^^^^^^^^^^^^^^^^^ >wrap : (cb: Mapper) => Mapper -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >s => s.length : (s: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >s : string @@ -357,7 +357,7 @@ let a6 = ["a", "b"].map(combine(wrap(s => s.length), identity)); >length : number > : ^^^^^^ >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // This is a contrived class. We could do the same thing with Observables, etc. class SetOf { @@ -393,7 +393,7 @@ class SetOf { transform(transformer: (a: SetOf) => SetOf): SetOf { >transform : (transformer: (a: SetOf) => SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >transformer : (a: SetOf) => SetOf > : ^ ^^ ^^^^^ >a : SetOf @@ -450,7 +450,7 @@ class SetOf { function compose( >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ fnA: (a: SetOf) => SetOf, >fnA : (a: SetOf) => SetOf @@ -483,7 +483,7 @@ function compose( /* ... etc ... */ function compose(...fns: ((x: T) => T)[]): (x: T) => T { >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >fns : ((x: T) => T)[] > : ^^ ^^ ^^^^^ ^^^ >x : T @@ -499,11 +499,11 @@ function compose(...fns: ((x: T) => T)[]): (x: T) => T { >fns.reduce((prev, fn) => fn(prev), x) : T > : ^ >fns.reduce : { (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T): (x: T) => T; (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T, initialValue: (x: T) => T): (x: T) => T; (callbackfn: (previousValue: U, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^^^ ^^^ ^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ >fns : ((x: T) => T)[] > : ^^ ^^ ^^^^^ ^^^ >reduce : { (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T): (x: T) => T; (callbackfn: (previousValue: (x: T) => T, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => (x: T) => T, initialValue: (x: T) => T): (x: T) => T; (callbackfn: (previousValue: U, currentValue: (x: T) => T, currentIndex: number, array: ((x: T) => T)[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^^^ ^^ ^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^^^ ^^^ ^^ ^^^^^^ ^^^ ^^^^^ ^^^ ^^ ^^^^^ ^^ ^^ ^^ ^^^^ ^^ ^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^ >(prev, fn) => fn(prev) : (prev: T, fn: (x: T) => T) => T > : ^ ^^^^^ ^^^ ^^ ^^^^^ ^^^^^^ >prev : T @@ -522,7 +522,7 @@ function compose(...fns: ((x: T) => T)[]): (x: T) => T { function map(fn: (a: A) => B): (s: SetOf) => SetOf { >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >fn : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -580,7 +580,7 @@ function map(fn: (a: A) => B): (s: SetOf) => SetOf { function filter(predicate: (a: A) => boolean): (s: SetOf) => SetOf { >filter : (predicate: (a: A) => boolean) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >predicate : (a: A) => boolean > : ^ ^^ ^^^^^ >a : A @@ -699,15 +699,15 @@ const t1 = testSet.transform( compose( >compose( filter(x => x % 1 === 0), map(x => x + x), map(x => x + '!!!'), map(x => x.toUpperCase()) ) : (x: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ filter(x => x % 1 === 0), >filter(x => x % 1 === 0) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >filter : (predicate: (a: A) => boolean) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x % 1 === 0 : (x: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : number @@ -725,9 +725,9 @@ const t1 = testSet.transform( map(x => x + x), >map(x => x + x) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x + x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -741,9 +741,9 @@ const t1 = testSet.transform( map(x => x + '!!!'), >map(x => x + '!!!') : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x + '!!!' : (x: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -757,9 +757,9 @@ const t1 = testSet.transform( map(x => x.toUpperCase()) >map(x => x.toUpperCase()) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x.toUpperCase() : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string @@ -778,7 +778,7 @@ const t1 = testSet.transform( declare function identity(x: T): T; >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -796,15 +796,15 @@ const t2 = testSet.transform( compose( >compose( filter(x => x % 1 === 0), identity, map(x => x + '!!!'), map(x => x.toUpperCase()) ) : (x: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >compose : (fnA: (a: SetOf) => SetOf, fnB: (b: SetOf) => SetOf, fnC: (c: SetOf) => SetOf, fnD: (c: SetOf) => SetOf) => (x: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ filter(x => x % 1 === 0), >filter(x => x % 1 === 0) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >filter : (predicate: (a: A) => boolean) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x % 1 === 0 : (x: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >x : number @@ -822,13 +822,13 @@ const t2 = testSet.transform( identity, >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ map(x => x + '!!!'), >map(x => x + '!!!') : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x + '!!!' : (x: number) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -842,9 +842,9 @@ const t2 = testSet.transform( map(x => x.toUpperCase()) >map(x => x.toUpperCase()) : (s: SetOf) => SetOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ >map : (fn: (a: A) => B) => (s: SetOf) => SetOf -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x => x.toUpperCase() : (x: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index 12b302a629e52..818932d1af5fb 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -13,11 +13,11 @@ function truePromise(): Promise { >Promise.resolve(true) : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >true : true > : ^^^^ } @@ -30,7 +30,7 @@ interface Wrap { function wrap(value: T): Wrap { >wrap : (value: T) => Wrap -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -49,7 +49,7 @@ function wrappedFoo(): Wrap<'foo'> { >wrap('foo') : Wrap<"foo"> > : ^^^^^^^^^^^ >wrap : (value: T) => Wrap -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ } @@ -117,7 +117,7 @@ function wrappedBar(): Wrap<'bar'> { >wrap(value) : Wrap<"bar"> > : ^^^^^^^^^^^ >wrap : (value: T) => Wrap -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : "bar" > : ^^^^^ } @@ -136,7 +136,7 @@ function wrappedBaz(): Wrap<'baz'> { >wrap(value) : Wrap<"baz"> > : ^^^^^^^^^^^ >wrap : (value: T) => Wrap -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : "baz" > : ^^^^^ } @@ -441,7 +441,7 @@ type Box = { value: T }; declare function box(value: T): Box; >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -465,7 +465,7 @@ let zz: Box = box({ type: 'draw' }); >box({ type: 'draw' }) : Box<{ type: "draw"; }> > : ^^^^^^^^^^^^^^^^^^^^^^ >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ type: 'draw' } : { type: "draw"; } > : ^^^^^^^^^^^^^^^^^ >type : "draw" @@ -483,7 +483,7 @@ let yy: Box = box('draw'); >box('draw') : Box<"draw"> > : ^^^^^^^^^^^ >box : (value: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'draw' : "draw" > : ^^^^^^ @@ -500,7 +500,7 @@ interface OK { } export function ok(value: T): OK { >ok : (value: T) => OK -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -529,7 +529,7 @@ let result: OK<[string, number]> = ok(["hello", 12]); >ok(["hello", 12]) : OK<[string, number]> > : ^^^^^^^^^^^^^^^^^^^^ >ok : (value: T) => OK -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >["hello", 12] : [string, number] > : ^^^^^^^^^^^^^^^^ >"hello" : "hello" @@ -619,11 +619,11 @@ const f1: F = () => { >Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]) : Promise<({ name: string; age: number; position: "GOALKEEPER"; } | { name: string; age: number; position: "STRIKER"; })[]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ] : ({ name: string; age: number; position: "GOALKEEPER"; } | { name: string; age: number; position: "STRIKER"; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { @@ -677,7 +677,7 @@ const f1: F = () => { declare function foldLeft(z: U, f: (acc: U, t: boolean) => U): U; >foldLeft : (z: U, f: (acc: U, t: boolean) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >z : U > : ^ >f : (acc: U, t: boolean) => U @@ -693,7 +693,7 @@ let res: boolean = foldLeft(true, (acc, t) => acc && t); // Error >foldLeft(true, (acc, t) => acc && t) : boolean > : ^^^^^^^ >foldLeft : (z: U, f: (acc: U, t: boolean) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >true : true > : ^^^^ >(acc, t) => acc && t : (acc: boolean, t: boolean) => boolean @@ -725,7 +725,7 @@ type Foo = { state: State } declare function bar(f: () => T[]): T[]; >bar : (f: () => T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : () => T[] > : ^^^^^^ @@ -735,7 +735,7 @@ let x: Foo[] = bar(() => !!true ? [{ state: State.A }] : [{ state: State.B }]); >bar(() => !!true ? [{ state: State.A }] : [{ state: State.B }]) : { state: State.A; }[] > : ^^^^^^^^^^^^^^^^^^^^^ >bar : (f: () => T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => !!true ? [{ state: State.A }] : [{ state: State.B }] : () => { state: State.A; }[] | { state: State.B; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >!!true ? [{ state: State.A }] : [{ state: State.B }] : { state: State.A; }[] | { state: State.B; }[] @@ -802,7 +802,7 @@ class ClassWithConvert { function fn(arg: ClassWithConvert, f: () => ClassWithConvert) { } >fn : (arg: ClassWithConvert, f: () => ClassWithConvert) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >arg : ClassWithConvert > : ^^^^^^^^^^^^^^^^^^^ >f : () => ClassWithConvert @@ -812,7 +812,7 @@ fn(new ClassWithConvert(Enum.A), () => new ClassWithConvert(Enum.A)); >fn(new ClassWithConvert(Enum.A), () => new ClassWithConvert(Enum.A)) : void > : ^^^^ >fn : (arg: ClassWithConvert, f: () => ClassWithConvert) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >new ClassWithConvert(Enum.A) : ClassWithConvert > : ^^^^^^^^^^^^^^^^^^^^^^ >ClassWithConvert : typeof ClassWithConvert @@ -844,13 +844,13 @@ type Func = (x: T) => T; declare function makeFoo(x: T): Func; >makeFoo : (x: T) => Func -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function baz(x: Func, y: Func): void; >baz : (x: Func, y: Func) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : Func > : ^^^^^^^ >y : Func @@ -860,11 +860,11 @@ baz(makeFoo(Enum.A), makeFoo(Enum.A)); >baz(makeFoo(Enum.A), makeFoo(Enum.A)) : void > : ^^^^ >baz : (x: Func, y: Func) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >makeFoo(Enum.A) : Func > : ^^^^^^^^^^ >makeFoo : (x: T) => Func -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >Enum.A : Enum.A > : ^^^^^^ >Enum : typeof Enum @@ -874,7 +874,7 @@ baz(makeFoo(Enum.A), makeFoo(Enum.A)); >makeFoo(Enum.A) : Func > : ^^^^^^^^^^ >makeFoo : (x: T) => Func -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >Enum.A : Enum.A > : ^^^^^^ >Enum : typeof Enum diff --git a/tests/baselines/reference/inferFromNestedSameShapeTuple.types b/tests/baselines/reference/inferFromNestedSameShapeTuple.types index 423bf38a71dd9..a8477c70f43fb 100644 --- a/tests/baselines/reference/inferFromNestedSameShapeTuple.types +++ b/tests/baselines/reference/inferFromNestedSameShapeTuple.types @@ -28,7 +28,7 @@ type Recursive = { declare function getIds(items: readonly Recursive[]): Id[]; >getIds : (items: readonly Recursive[]) => Id[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^ ^^ ^^^^^ >items : readonly Recursive[] > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -79,7 +79,7 @@ const foo = getIds(items) >getIds(items) : ("a" | "b")[] > : ^^^^^^^^^^^^^ >getIds : (items: readonly Recursive[]) => Id[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^ ^^ ^^^^^ >items : readonly [{ readonly id: "a"; readonly children: readonly [{ readonly id: "b"; readonly children: readonly []; }]; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -90,7 +90,7 @@ const foo2 = getIds([{ >getIds([{ id: 'a', children: [{ id: 'b', children: [] }]}] as const) : ("a" | "b")[] > : ^^^^^^^^^^^^^ >getIds : (items: readonly Recursive[]) => Id[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^ ^^ ^^^^^ >[{ id: 'a', children: [{ id: 'b', children: [] }]}] as const : readonly [{ readonly id: "a"; readonly children: readonly [{ readonly id: "b"; readonly children: readonly []; }]; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[{ id: 'a', children: [{ id: 'b', children: [] }]}] : readonly [{ readonly id: "a"; readonly children: readonly [{ readonly id: "b"; readonly children: readonly []; }]; }] @@ -143,7 +143,7 @@ type T2 = [42, T2<{ x: T }>]; function qq(x: T1, y: T2) { >qq : (x: T1, y: T2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T1 > : ^^^^^ >y : T2 diff --git a/tests/baselines/reference/inferObjectTypeFromStringLiteralToKeyof.types b/tests/baselines/reference/inferObjectTypeFromStringLiteralToKeyof.types index b228174004c60..b5891abb50154 100644 --- a/tests/baselines/reference/inferObjectTypeFromStringLiteralToKeyof.types +++ b/tests/baselines/reference/inferObjectTypeFromStringLiteralToKeyof.types @@ -3,13 +3,13 @@ === inferObjectTypeFromStringLiteralToKeyof.ts === declare function inference1(name: keyof T): T; >inference1 : (name: keyof T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >name : keyof T > : ^^^^^^^ declare function inference2(target: T, name: keyof T): T; >inference2 : (target: T, name: keyof T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >target : T > : ^ >name : keyof T @@ -25,7 +25,7 @@ const x = inference1(two); >inference1(two) : { a: any; d: any; } > : ^^^^^^^^^^^^^^^^^^^ >inference1 : (name: keyof T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >two : "a" | "d" > : ^^^^^^^^^ @@ -35,7 +35,7 @@ const y = inference2({ a: 1, b: 2, c: 3, d(n) { return n } }, two); >inference2({ a: 1, b: 2, c: 3, d(n) { return n } }, two) : { a: number; b: number; c: number; d(n: any): any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ >inference2 : (target: T, name: keyof T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: 2, c: 3, d(n) { return n } } : { a: number; b: number; c: number; d(n: any): any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ >a : number diff --git a/tests/baselines/reference/inferPropertyWithContextSensitiveReturnStatement.types b/tests/baselines/reference/inferPropertyWithContextSensitiveReturnStatement.types index 08a2b11f7301e..168cc3f678bd7 100644 --- a/tests/baselines/reference/inferPropertyWithContextSensitiveReturnStatement.types +++ b/tests/baselines/reference/inferPropertyWithContextSensitiveReturnStatement.types @@ -5,7 +5,7 @@ declare function repro(config: { >repro : (config: { params: T; callback: () => (params: T) => number; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >config : { params: T; callback: () => (params: T) => number; } > : ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ @@ -25,7 +25,7 @@ repro({ >repro({ params: 1, callback: () => { return a => a + 1 },}) : void > : ^^^^ >repro : (config: { params: T; callback: () => (params: T) => number; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ params: 1, callback: () => { return a => a + 1 },} : { params: number; callback: () => (a: number) => number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/inferRestArgumentsMappedTuple.types b/tests/baselines/reference/inferRestArgumentsMappedTuple.types index 33169cbccaa35..f30a9d0e009bc 100644 --- a/tests/baselines/reference/inferRestArgumentsMappedTuple.types +++ b/tests/baselines/reference/inferRestArgumentsMappedTuple.types @@ -24,7 +24,7 @@ type MyMappedTupleOld = TupleMapperOld<[string, number]>; // [MyMappedType(...mappedTypes: TupleMapperOld): Tuple; >extractPrimitivesOld : (...mappedTypes: TupleMapperOld) => Tuple -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >mappedTypes : TupleMapperOld > : ^^^^^^^^^^^^^^^^^^^^^ @@ -34,7 +34,7 @@ const myPrimitiveTupleOld: [string, number] = extractPrimitivesOld({ primitive: >extractPrimitivesOld({ primitive: "" }, { primitive: 0 }) : [string, number] > : ^^^^^^^^^^^^^^^^ >extractPrimitivesOld : (...mappedTypes: TupleMapperOld) => Tuple -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >{ primitive: "" } : { primitive: string; } > : ^^^^^^^^^^^^^^^^^^^^^^ >primitive : string @@ -61,7 +61,7 @@ type MyMappedTupleNew = TupleMapperNew<[string, number]>; declare function extractPrimitivesNew(...mappedTypes: TupleMapperNew): Tuple; >extractPrimitivesNew : (...mappedTypes: TupleMapperNew) => Tuple -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >mappedTypes : TupleMapperNew > : ^^^^^^^^^^^^^^^^^^^^^ @@ -71,7 +71,7 @@ const myPrimitiveTupleNew: [string, number] = extractPrimitivesNew({ primitive: >extractPrimitivesNew({ primitive: "" }, { primitive: 0 }) : [string, number] > : ^^^^^^^^^^^^^^^^ >extractPrimitivesNew : (...mappedTypes: TupleMapperNew) => Tuple -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >{ primitive: "" } : { primitive: string; } > : ^^^^^^^^^^^^^^^^^^^^^^ >primitive : string diff --git a/tests/baselines/reference/inferStringLiteralUnionForBindingElement.types b/tests/baselines/reference/inferStringLiteralUnionForBindingElement.types index 944daace64895..3e695235b6f20 100644 --- a/tests/baselines/reference/inferStringLiteralUnionForBindingElement.types +++ b/tests/baselines/reference/inferStringLiteralUnionForBindingElement.types @@ -3,7 +3,7 @@ === inferStringLiteralUnionForBindingElement.ts === declare function func(arg: { keys: T[] }): { readonly keys: T[]; readonly firstKey: T; }; >func : (arg: { keys: T[]; }) => { readonly keys: T[]; readonly firstKey: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : { keys: T[]; } > : ^^^^^^^^ ^^^ >keys : T[] @@ -23,7 +23,7 @@ function func1() { >func({keys: ["aa", "bb"]}) : { readonly keys: ("aa" | "bb")[]; readonly firstKey: "aa" | "bb"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (arg: { keys: T[]; }) => { readonly keys: T[]; readonly firstKey: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{keys: ["aa", "bb"]} : { keys: ("aa" | "bb")[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >keys : ("aa" | "bb")[] @@ -47,7 +47,7 @@ function func1() { >func({keys: ["aa", "bb"]}) : { readonly keys: ("aa" | "bb")[]; readonly firstKey: "aa" | "bb"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (arg: { keys: T[]; }) => { readonly keys: T[]; readonly firstKey: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{keys: ["aa", "bb"]} : { keys: ("aa" | "bb")[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >keys : ("aa" | "bb")[] @@ -78,7 +78,7 @@ function func2() { >func({keys: ["aa", "bb"]}) : { readonly keys: ("aa" | "bb")[]; readonly firstKey: "aa" | "bb"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (arg: { keys: T[]; }) => { readonly keys: T[]; readonly firstKey: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{keys: ["aa", "bb"]} : { keys: ("aa" | "bb")[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >keys : ("aa" | "bb")[] @@ -113,7 +113,7 @@ function func3() { >func({keys: ["aa", "bb"]}) : { readonly keys: ("aa" | "bb")[]; readonly firstKey: "aa" | "bb"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (arg: { keys: T[]; }) => { readonly keys: T[]; readonly firstKey: T; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{keys: ["aa", "bb"]} : { keys: ("aa" | "bb")[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >keys : ("aa" | "bb")[] diff --git a/tests/baselines/reference/inferThis.types b/tests/baselines/reference/inferThis.types index 575320075141a..8dd2b9fbe9a24 100644 --- a/tests/baselines/reference/inferThis.types +++ b/tests/baselines/reference/inferThis.types @@ -12,7 +12,7 @@ export class C { */ static a() { >a : (this: T) => T -> : ^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ return this; >this : T @@ -26,7 +26,7 @@ export class C { */ b() { >b : (this: T) => T -> : ^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ return this; >this : T @@ -40,11 +40,11 @@ const a = C.a(); >C.a() : typeof C > : ^^^^^^^^ >C.a : (this: T) => T -> : ^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ >C : typeof C > : ^^^^^^^^ >a : (this: T) => T -> : ^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ a; // typeof C >a : typeof C @@ -64,11 +64,11 @@ const b = c.b(); >c.b() : C > : ^ >c.b : (this: T) => T -> : ^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ >c : C > : ^ >b : (this: T) => T -> : ^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ b; // C >b : C diff --git a/tests/baselines/reference/inferThisType.types b/tests/baselines/reference/inferThisType.types index d29d3a3a1ba83..cb07302d16007 100644 --- a/tests/baselines/reference/inferThisType.types +++ b/tests/baselines/reference/inferThisType.types @@ -3,7 +3,7 @@ === inferThisType.ts === declare function f(g: (this: T) => void): T >f : (g: (this: T) => void) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : (this: T) => void > : ^ ^^ ^^^^^ >this : T @@ -19,7 +19,7 @@ f(h) >f(h) : number > : ^^^^^^ >f : (g: (this: T) => void) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >h : (this: number) => void > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/inferTupleFromBindingPattern.types b/tests/baselines/reference/inferTupleFromBindingPattern.types index 7506ede632962..a4ef1f900f8a9 100644 --- a/tests/baselines/reference/inferTupleFromBindingPattern.types +++ b/tests/baselines/reference/inferTupleFromBindingPattern.types @@ -3,7 +3,7 @@ === inferTupleFromBindingPattern.ts === declare function f(cb: () => T): T; >f : (cb: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : () => T > : ^^^^^^ @@ -17,7 +17,7 @@ const [e1, e2, e3] = f(() => [1, "hi", true]); >f(() => [1, "hi", true]) : [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (cb: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => [1, "hi", true] : () => [number, string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[1, "hi", true] : [number, string, true] diff --git a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types index 9e7c67a4a2ecd..0ffd0e4511f92 100644 --- a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types +++ b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.types @@ -3,7 +3,7 @@ === inferTypeArgumentsInSignatureWithRestParameters.ts === function f(array: T[], ...args) { } >f : (array: T[], ...args: any[]) => void -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >array : T[] > : ^^^ >args : any[] @@ -19,7 +19,7 @@ function g(array: number[], ...args) { } function h(nonarray: T, ...args) { } >h : (nonarray: T, ...args: any[]) => void -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >nonarray : T > : ^ >args : any[] @@ -27,7 +27,7 @@ function h(nonarray: T, ...args) { } function i(array: T[], opt?: any[]) { } >i : (array: T[], opt?: any[]) => void -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^ >array : T[] > : ^^^ >opt : any[] @@ -53,7 +53,7 @@ f(a); // OK >f(a) : void > : ^^^^ >f : (array: T[], ...args: any[]) => void -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >a : number[] > : ^^^^^^^^ @@ -69,7 +69,7 @@ h(a); // OK >h(a) : void > : ^^^^ >h : (nonarray: T, ...args: any[]) => void -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >a : number[] > : ^^^^^^^^ @@ -77,7 +77,7 @@ i(a); // OK >i(a) : void > : ^^^^ >i : (array: T[], opt?: any[]) => void -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^ >a : number[] > : ^^^^^^^^ diff --git a/tests/baselines/reference/inferTypePredicates.types b/tests/baselines/reference/inferTypePredicates.types index 7c31001eda6eb..2fcee2bc737d5 100644 --- a/tests/baselines/reference/inferTypePredicates.types +++ b/tests/baselines/reference/inferTypePredicates.types @@ -23,11 +23,11 @@ const filteredNumsTruthy: number[] = numsOrNull.filter(x => !!x); // should err >numsOrNull.filter(x => !!x) : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >numsOrNull.filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >numsOrNull : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >x => !!x : (x: number | null) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number | null @@ -45,11 +45,11 @@ const filteredNumsNonNullish: number[] = numsOrNull.filter(x => x !== null); // >numsOrNull.filter(x => x !== null) : number[] > : ^^^^^^^^ >numsOrNull.filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >numsOrNull : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >x => x !== null : (x: number | null) => x is number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number | null @@ -67,7 +67,7 @@ const evenSquaresInline: number[] = // should error >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) .filter(x => !!x) : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) .filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >[1, 2, 3, 4] .map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] @@ -111,7 +111,7 @@ const evenSquaresInline: number[] = // should error .filter(x => !!x); // tests truthiness, not non-nullishness >filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >x => !!x : (x: number | null) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number | null @@ -145,7 +145,7 @@ const evenSquares: number[] = // should error >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) .filter(isTruthy) : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) .filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >[1, 2, 3, 4] .map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] @@ -189,7 +189,7 @@ const evenSquares: number[] = // should error .filter(isTruthy); >filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >isTruthy : (x: number | null) => boolean > : ^ ^^ ^^^^^^^^^^^^ @@ -201,7 +201,7 @@ const evenSquaresNonNull: number[] = // should ok >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) .filter(x => x !== null) : number[] > : ^^^^^^^^ >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) .filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >[1, 2, 3, 4] .map(x => x % 2 === 0 ? x * x : null) : (number | null)[] > : ^^^^^^^^^^^^^^^^^ >[1, 2, 3, 4] .map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] @@ -245,7 +245,7 @@ const evenSquaresNonNull: number[] = // should ok .filter(x => x !== null); >filter : { (predicate: (value: number | null, index: number, array: (number | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | null, index: number, array: (number | null)[]) => unknown, thisArg?: any): (number | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^ ^^^ >x => x !== null : (x: number | null) => x is number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number | null @@ -290,7 +290,7 @@ function isNonNullVar(x: number | null) { function isNonNullGeneric(x: T) { >isNonNullGeneric : (x: T) => x is T & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -361,7 +361,7 @@ const result = myArray >myArray .map((arr) => arr.list) .filter((arr) => arr && arr.length) : (MyObj[] | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >myArray .map((arr) => arr.list) .filter : { (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => unknown, thisArg?: any): (MyObj[] | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >myArray .map((arr) => arr.list) : (MyObj[] | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >myArray .map : (callbackfn: (value: { list?: MyObj[]; }, index: number, array: { list?: MyObj[]; }[]) => U, thisArg?: any) => U[] @@ -385,7 +385,7 @@ const result = myArray .filter((arr) => arr && arr.length) >filter : { (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => unknown, thisArg?: any): (MyObj[] | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >(arr) => arr && arr.length : (arr: MyObj[] | undefined) => number | undefined > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : MyObj[] | undefined @@ -471,11 +471,11 @@ const result2 = myArray >myArray .map((arr) => arr.list) .filter((arr) => !!arr) .filter(arr => arr.length) : MyObj[][] > : ^^^^^^^^^ >myArray .map((arr) => arr.list) .filter((arr) => !!arr) .filter : { (predicate: (value: MyObj[], index: number, array: MyObj[][]) => value is S, thisArg?: any): S[]; (predicate: (value: MyObj[], index: number, array: MyObj[][]) => unknown, thisArg?: any): MyObj[][]; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^^ >myArray .map((arr) => arr.list) .filter((arr) => !!arr) : MyObj[][] > : ^^^^^^^^^ >myArray .map((arr) => arr.list) .filter : { (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => unknown, thisArg?: any): (MyObj[] | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >myArray .map((arr) => arr.list) : (MyObj[] | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >myArray .map : (callbackfn: (value: { list?: MyObj[]; }, index: number, array: { list?: MyObj[]; }[]) => U, thisArg?: any) => U[] @@ -499,7 +499,7 @@ const result2 = myArray .filter((arr) => !!arr) >filter : { (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: MyObj[] | undefined, index: number, array: (MyObj[] | undefined)[]) => unknown, thisArg?: any): (MyObj[] | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >(arr) => !!arr : (arr: MyObj[] | undefined) => arr is MyObj[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : MyObj[] | undefined @@ -513,7 +513,7 @@ const result2 = myArray .filter(arr => arr.length) >filter : { (predicate: (value: MyObj[], index: number, array: MyObj[][]) => value is S, thisArg?: any): S[]; (predicate: (value: MyObj[], index: number, array: MyObj[][]) => unknown, thisArg?: any): MyObj[][]; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^^ >arr => arr.length : (arr: MyObj[]) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >arr : MyObj[] @@ -630,11 +630,11 @@ const resultBars: Bar[] = list.filter((value) => 'bar' in value); // should ok >list.filter((value) => 'bar' in value) : Bar[] > : ^^^^^ >list.filter : { (predicate: (value: Foo | Bar, index: number, array: (Foo | Bar)[]) => value is S, thisArg?: any): S[]; (predicate: (value: Foo | Bar, index: number, array: (Foo | Bar)[]) => unknown, thisArg?: any): (Foo | Bar)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^ ^^^ >list : (Foo | Bar)[] > : ^^^^^^^^^^^^^ >filter : { (predicate: (value: Foo | Bar, index: number, array: (Foo | Bar)[]) => value is S, thisArg?: any): S[]; (predicate: (value: Foo | Bar, index: number, array: (Foo | Bar)[]) => unknown, thisArg?: any): (Foo | Bar)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^ ^^^ >(value) => 'bar' in value : (value: Foo | Bar) => value is Bar > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : Foo | Bar @@ -697,7 +697,7 @@ const a = [1, "foo", 2, "bar"].filter(x => typeof x === "string"); >[1, "foo", 2, "bar"].filter(x => typeof x === "string") : string[] > : ^^^^^^^^ >[1, "foo", 2, "bar"].filter : { (predicate: (value: string | number, index: number, array: (string | number)[]) => value is S, thisArg?: any): S[]; (predicate: (value: string | number, index: number, array: (string | number)[]) => unknown, thisArg?: any): (string | number)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^ >[1, "foo", 2, "bar"] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -709,7 +709,7 @@ const a = [1, "foo", 2, "bar"].filter(x => typeof x === "string"); >"bar" : "bar" > : ^^^^^ >filter : { (predicate: (value: string | number, index: number, array: (string | number)[]) => value is S, thisArg?: any): S[]; (predicate: (value: string | number, index: number, array: (string | number)[]) => unknown, thisArg?: any): (string | number)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^ >x => typeof x === "string" : (x: string | number) => x is string > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string | number diff --git a/tests/baselines/reference/inferTypes1.types b/tests/baselines/reference/inferTypes1.types index 23e9586745ede..a8e396c377097 100644 --- a/tests/baselines/reference/inferTypes1.types +++ b/tests/baselines/reference/inferTypes1.types @@ -657,7 +657,7 @@ type Test2 = EnsureIsString<42>; // never function invoker (key: K, ...args: A) { >invoker : (key: K, ...args: A) => any>>(obj: T) => ReturnType -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ >args : A @@ -665,7 +665,7 @@ function invoker (key: K, return any>> (obj: T): ReturnType => obj[key](...args) > any>> (obj: T): ReturnType => obj[key](...args) : any>>(obj: T) => ReturnType -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : A > : ^ >obj : T @@ -692,7 +692,7 @@ const result = invoker('test', true)({ test: (a: boolean) => 123 }) >invoker('test', true) : any>>(obj: T) => ReturnType > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^ ^^^^^^ >invoker : (key: K, ...args: A) => any>>(obj: T) => ReturnType -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >'test' : "test" > : ^^^^^^ >true : true diff --git a/tests/baselines/reference/inferTypes2.types b/tests/baselines/reference/inferTypes2.types index 6c47293cf8049..2d83ad7aeb9b4 100644 --- a/tests/baselines/reference/inferTypes2.types +++ b/tests/baselines/reference/inferTypes2.types @@ -5,13 +5,13 @@ export declare function foo(obj: T): T extends () => infer P ? P : never; >foo : (obj: T) => T extends () => infer P ? P : never -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ export function bar(obj: T) { >bar : (obj: T) => T extends () => infer P ? P : never -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >obj : T > : ^ @@ -19,7 +19,7 @@ export function bar(obj: T) { >foo(obj) : T extends () => infer P ? P : never > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >foo : (obj: T_1) => T_1 extends () => infer P ? P : never -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >obj : T > : ^ } @@ -32,13 +32,13 @@ export type BadNested = { x: T extends number ? T : string }; export declare function foo2(obj: T): T extends { [K in keyof BadNested]: BadNested[K] } ? P : never; >foo2 : (obj: T) => T extends { [K in keyof BadNested]: BadNested[K]; } ? P : never -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ export function bar2(obj: T) { >bar2 : (obj: T) => T extends { x: infer P extends number ? infer P : string; } ? P : never -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : T > : ^ @@ -46,7 +46,7 @@ export function bar2(obj: T) { >foo2(obj) : T extends { x: infer P extends number ? infer P : string; } ? P : never > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo2 : (obj: T_1) => T_1 extends { [K in keyof BadNested]: BadNested[K]; } ? P : never -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >obj : T > : ^ } diff --git a/tests/baselines/reference/inferTypesWithExtends1.types b/tests/baselines/reference/inferTypesWithExtends1.types index e24355d4ff35a..cdbcf8bcc458b 100644 --- a/tests/baselines/reference/inferTypesWithExtends1.types +++ b/tests/baselines/reference/inferTypesWithExtends1.types @@ -432,15 +432,15 @@ type IfEquals = (() => T extends X ? 1 : 2) extends () => T ex declare const x1: () => (T extends infer U extends number ? 1 : 0); >x1 : () => (T extends infer U extends number ? 1 : 0) -> : ^ ^^^^^^^ +> : ^^^^^^^^^ function f1() { >f1 : () => () => (T extends infer U extends number ? 1 : 0) -> : ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^ return x1; >x1 : () => (T extends infer U extends number ? 1 : 0) -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } type ExpectNumber = T; @@ -449,13 +449,13 @@ type ExpectNumber = T; declare const x2: () => (T extends ExpectNumber ? 1 : 0); >x2 : () => (T extends ExpectNumber ? 1 : 0) -> : ^ ^^^^^^^ +> : ^^^^^^^^^ function f2() { >f2 : () => () => (T extends ExpectNumber ? 1 : 0) -> : ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^ return x2; >x2 : () => (T extends ExpectNumber ? 1 : 0) -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } diff --git a/tests/baselines/reference/inferenceAndHKTs.types b/tests/baselines/reference/inferenceAndHKTs.types index fb4b865f063fe..2d86f5b0b256b 100644 --- a/tests/baselines/reference/inferenceAndHKTs.types +++ b/tests/baselines/reference/inferenceAndHKTs.types @@ -45,7 +45,7 @@ export interface TTypeLambda extends TypeLambda { export declare const map: (F: TypeClass) => (a: Apply, f: (a: A) => B) => Apply; >map : (F: TypeClass) => (a: Apply, f: (a: A) => B) => Apply -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >F : TypeClass > : ^^^^^^^^^^^^ >a : Apply @@ -69,7 +69,7 @@ const x1 = map(typeClass); >map(typeClass) : (a: T, f: (a: A) => B) => Apply > : ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^ >map : (F: TypeClass) => (a: Apply, f: (a: A) => B) => Apply -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >typeClass : TypeClass > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -81,7 +81,7 @@ const x2 = map(typeClass)(a, (_) => _); // T >map(typeClass) : (a: T, f: (a: A) => B) => Apply > : ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^ >map : (F: TypeClass) => (a: Apply, f: (a: A) => B) => Apply -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >typeClass : TypeClass > : ^^^^^^^^^^^^^^^^^^^^^^ >a : T diff --git a/tests/baselines/reference/inferenceAndSelfReferentialConstraint.types b/tests/baselines/reference/inferenceAndSelfReferentialConstraint.types index f027a2ff9b808..45289d5f81812 100644 --- a/tests/baselines/reference/inferenceAndSelfReferentialConstraint.types +++ b/tests/baselines/reference/inferenceAndSelfReferentialConstraint.types @@ -16,7 +16,7 @@ type Test = { function test>(arg: T) { >test : >(arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >arg : T > : ^ @@ -31,7 +31,7 @@ const res1 = test({ >test({ foo: true, bar() { }}) : { foo: true; bar(): void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : >(arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ foo: true, bar() { }} : { foo: true; bar(): void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -53,7 +53,7 @@ const res2 = test({ >test({ foo: true, bar: function () { }}) : { foo: true; bar: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : >(arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ foo: true, bar: function () { }} : { foo: true; bar: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -77,7 +77,7 @@ const res3 = test({ >test({ foo: true, bar: () => { }}) : { foo: true; bar: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : >(arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >{ foo: true, bar: () => { }} : { foo: true; bar: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/inferenceDoesNotAddUndefinedOrNull.types b/tests/baselines/reference/inferenceDoesNotAddUndefinedOrNull.types index a843f17dad318..d16c18891fa4c 100644 --- a/tests/baselines/reference/inferenceDoesNotAddUndefinedOrNull.types +++ b/tests/baselines/reference/inferenceDoesNotAddUndefinedOrNull.types @@ -6,7 +6,7 @@ interface NodeArray extends ReadonlyArray {} interface Node { forEachChild(cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray) => T | undefined): T | undefined; >forEachChild : (cbNode: (node: Node) => T | undefined, cbNodeArray?: (nodes: NodeArray) => T | undefined) => T | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >cbNode : (node: Node) => T | undefined > : ^ ^^ ^^^^^ >node : Node @@ -19,19 +19,19 @@ interface Node { declare function toArray(value: T | T[]): T[]; >toArray : { (value: T | T[]): T[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >value : T | T[] > : ^^^^^^^ declare function toArray(value: T | readonly T[]): readonly T[]; >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T | readonly T[]): readonly T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >value : T | readonly T[] > : ^^^^^^^^^^^^^^^^ function flatMapChildren(node: Node, cb: (child: Node) => readonly T[] | T | undefined): readonly T[] { >flatMapChildren : (node: Node, cb: (child: Node) => readonly T[] | T | undefined) => readonly T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >node : Node > : ^^^^ >cb : (child: Node) => readonly T[] | T | undefined @@ -49,11 +49,11 @@ function flatMapChildren(node: Node, cb: (child: Node) => readonly T[] | T | >node.forEachChild(child => { const value = cb(child); if (value !== undefined) { result.push(...toArray(value)); } }) : void | undefined > : ^^^^^^^^^^^^^^^^ >node.forEachChild : (cbNode: (node: Node) => T_1 | undefined, cbNodeArray?: (nodes: NodeArray) => T_1 | undefined) => T_1 | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >node : Node > : ^^^^ >forEachChild : (cbNode: (node: Node) => T_1 | undefined, cbNodeArray?: (nodes: NodeArray) => T_1 | undefined) => T_1 | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >child => { const value = cb(child); if (value !== undefined) { result.push(...toArray(value)); } } : (child: Node) => void > : ^ ^^^^^^^^^^^^^^^ >child : Node @@ -91,7 +91,7 @@ function flatMapChildren(node: Node, cb: (child: Node) => readonly T[] | T | >toArray(value) : readonly T[] > : ^^^^^^^^^^^^ >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >value : readonly T[] | (T & ({} | null)) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -103,7 +103,7 @@ function flatMapChildren(node: Node, cb: (child: Node) => readonly T[] | T | function flatMapChildren2(node: Node, cb: (child: Node) => readonly T[] | T | null): readonly T[] { >flatMapChildren2 : (node: Node, cb: (child: Node) => readonly T[] | T | null) => readonly T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >node : Node > : ^^^^ >cb : (child: Node) => readonly T[] | T | null @@ -121,11 +121,11 @@ function flatMapChildren2(node: Node, cb: (child: Node) => readonly T[] | T | >node.forEachChild(child => { const value = cb(child); if (value !== null) { result.push(...toArray(value)); } }) : void | undefined > : ^^^^^^^^^^^^^^^^ >node.forEachChild : (cbNode: (node: Node) => T_1 | undefined, cbNodeArray?: (nodes: NodeArray) => T_1 | undefined) => T_1 | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >node : Node > : ^^^^ >forEachChild : (cbNode: (node: Node) => T_1 | undefined, cbNodeArray?: (nodes: NodeArray) => T_1 | undefined) => T_1 | undefined -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^^^ >child => { const value = cb(child); if (value !== null) { result.push(...toArray(value)); } } : (child: Node) => void > : ^ ^^^^^^^^^^^^^^^ >child : Node @@ -161,7 +161,7 @@ function flatMapChildren2(node: Node, cb: (child: Node) => readonly T[] | T | >toArray(value) : readonly T[] > : ^^^^^^^^^^^^ >toArray : { (value: T_1 | T_1[]): T_1[]; (value: T_1 | readonly T_1[]): readonly T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >value : readonly T[] | (T & ({} | undefined)) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/inferenceErasedSignatures.types b/tests/baselines/reference/inferenceErasedSignatures.types index d3fefd059887d..36a6406cb6f0d 100644 --- a/tests/baselines/reference/inferenceErasedSignatures.types +++ b/tests/baselines/reference/inferenceErasedSignatures.types @@ -9,7 +9,7 @@ declare class SomeBaseClass { set(key: K, value: this[K]): this[K]; >set : (key: K, value: this[K]) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : this[K] @@ -89,7 +89,7 @@ type SomeClassR = RType; // boolean interface BaseType { set(key: K, value: this[K]): this[K]; >set : (key: K, value: this[K]) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : this[K] @@ -126,7 +126,7 @@ interface InheritedType extends BaseType { interface StructuralVersion { set(key: K, value: this[K]): this[K]; >set : (key: K, value: this[K]) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : this[K] diff --git a/tests/baselines/reference/inferenceExactOptionalProperties2.types b/tests/baselines/reference/inferenceExactOptionalProperties2.types index 8f0e9d5dcbfd1..209a32daca153 100644 --- a/tests/baselines/reference/inferenceExactOptionalProperties2.types +++ b/tests/baselines/reference/inferenceExactOptionalProperties2.types @@ -59,7 +59,7 @@ interface MachineConfig { declare function assign( >assign : (_: (spawn: (actor: TActor["src"]) => void) => {}) => AssignAction -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ _: (spawn: (actor: TActor["src"]) => void) => {}, >_ : (spawn: (actor: TActor["src"]) => void) => {} @@ -90,7 +90,7 @@ type ToProvidedActor> = declare function setup< >setup : = {}>(implementations?: { actors?: { [K in keyof TActors]: TActors[K]; }; }) => { createMachine: >>(config: TConfig) => void; } -> : ^ ^^^^^^^^^ ^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^^^ TActors extends Record = {}, >(implementations?: { @@ -104,7 +104,7 @@ declare function setup< }): { createMachine: < >createMachine : >>(config: TConfig) => void -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ const TConfig extends MachineConfig>, >( @@ -130,7 +130,7 @@ setup({ >setup({ actors: { counter: counterLogic },}) : { createMachine: ; }>>(config: TConfig) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ >setup : = {}>(implementations?: { actors?: { [K in keyof TActors]: TActors[K]; }; }) => { createMachine: >>(config: TConfig) => void; } -> : ^ ^^^^^^^^^ ^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^^^ >{ actors: { counter: counterLogic },} : { actors: { counter: ActorLogic<{ type: "INCREMENT"; }>; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ @@ -156,7 +156,7 @@ setup({ >assign((spawn) => { spawn("counter"); // ok spawn("alarm"); // error return {}; }) : AssignAction<{ src: "counter"; logic: ActorLogic<{ type: "INCREMENT"; }>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ >assign : (_: (spawn: (actor: TActor["src"]) => void) => {}) => AssignAction -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(spawn) => { spawn("counter"); // ok spawn("alarm"); // error return {}; } : (spawn: (actor: "counter") => void) => {} > : ^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ >spawn : (actor: "counter") => void @@ -194,7 +194,7 @@ setup().createMachine({ >setup() : { createMachine: >(config: TConfig) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ >setup : = {}>(implementations?: { actors?: { [K in keyof TActors]: TActors[K]; }; }) => { createMachine: >>(config: TConfig) => void; } -> : ^ ^^^^^^^^^ ^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^^^ >createMachine : >(config: TConfig) => void > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ >{ entry: assign(() => ({})),} : { entry: AssignAction; } @@ -206,7 +206,7 @@ setup().createMachine({ >assign(() => ({})) : AssignAction > : ^^^^^^^^^^^^^^^^^^^ >assign : (_: (spawn: (actor: TActor["src"]) => void) => {}) => AssignAction -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >() => ({}) : () => {} > : ^^^^^^^^ >({}) : {} diff --git a/tests/baselines/reference/inferenceFromIncompleteSource.types b/tests/baselines/reference/inferenceFromIncompleteSource.types index e634c003fdbde..f926d61976c21 100644 --- a/tests/baselines/reference/inferenceFromIncompleteSource.types +++ b/tests/baselines/reference/inferenceFromIncompleteSource.types @@ -19,7 +19,7 @@ interface ListProps { declare const Component: (x: ListProps) => void; >Component : (x: ListProps) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : ListProps > : ^^^^^^^^^^^^^^^ @@ -27,7 +27,7 @@ Component({items: [{name:' string'}], itemKey: 'name' }); >Component({items: [{name:' string'}], itemKey: 'name' }) : void > : ^^^^ >Component : (x: ListProps) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{items: [{name:' string'}], itemKey: 'name' } : { items: { name: string; }[]; itemKey: "name"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >items : { name: string; }[] diff --git a/tests/baselines/reference/inferenceFromParameterlessLambda.types b/tests/baselines/reference/inferenceFromParameterlessLambda.types index c0938298026cd..5e454f96f8f87 100644 --- a/tests/baselines/reference/inferenceFromParameterlessLambda.types +++ b/tests/baselines/reference/inferenceFromParameterlessLambda.types @@ -3,7 +3,7 @@ === inferenceFromParameterlessLambda.ts === function foo(o: Take, i: Make) { } >foo : (o: Take, i: Make) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >o : Take > : ^^^^^^^ >i : Make @@ -22,7 +22,7 @@ foo(n => n.length, () => 'hi'); >foo(n => n.length, () => 'hi') : void > : ^^^^ >foo : (o: Take, i: Make) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n.length : (n: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >n : string diff --git a/tests/baselines/reference/inferenceLimit.types b/tests/baselines/reference/inferenceLimit.types index 5e462a6227fa0..c761de5b48f01 100644 --- a/tests/baselines/reference/inferenceLimit.types +++ b/tests/baselines/reference/inferenceLimit.types @@ -121,11 +121,11 @@ export class BrokenClass { >Promise.all(result.map(populateItems)) : Promise > : ^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >result.map(populateItems) : Promise[] > : ^^^^^^^^^^^^^^^^^^ >result.map : (callbackfn: (value: MyModule.MyModel, index: number, array: MyModule.MyModel[]) => U, thisArg?: any) => U[] diff --git a/tests/baselines/reference/inferenceOfNullableObjectTypesWithCommonBase.types b/tests/baselines/reference/inferenceOfNullableObjectTypesWithCommonBase.types index a783ee1e541b5..839ae9c2837d6 100644 --- a/tests/baselines/reference/inferenceOfNullableObjectTypesWithCommonBase.types +++ b/tests/baselines/reference/inferenceOfNullableObjectTypesWithCommonBase.types @@ -3,7 +3,7 @@ === inferenceOfNullableObjectTypesWithCommonBase.ts === function equal(a: T, b: T) { } >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : T @@ -35,7 +35,7 @@ equal(v as B, v as undefined | D) >equal(v as B, v as undefined | D) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as B : B > : ^ >v : never @@ -49,7 +49,7 @@ equal(v as undefined | D, v as B) >equal(v as undefined | D, v as B) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as undefined | D : D | undefined > : ^^^^^^^^^^^^^ >v : never @@ -63,7 +63,7 @@ equal(v as B, v as undefined | D) >equal(v as B, v as undefined | D) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as B : B > : ^ >v : never @@ -77,7 +77,7 @@ equal(v as undefined | D, v as B) >equal(v as undefined | D, v as B) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as undefined | D : D | undefined > : ^^^^^^^^^^^^^ >v : never @@ -91,7 +91,7 @@ equal(v as B, v as undefined) >equal(v as B, v as undefined) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as B : B > : ^ >v : never @@ -105,7 +105,7 @@ equal(v as undefined, v as B) >equal(v as undefined, v as B) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as undefined : undefined > : ^^^^^^^^^ >v : never @@ -119,7 +119,7 @@ equal(v as B, v as D) >equal(v as B, v as D) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as B : B > : ^ >v : never @@ -133,7 +133,7 @@ equal(v as D, v as B) >equal(v as D, v as B) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as D : D > : ^ >v : never @@ -147,7 +147,7 @@ equal(v as B, v as B | undefined) >equal(v as B, v as B | undefined) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as B : B > : ^ >v : never @@ -161,7 +161,7 @@ equal(v as B | undefined, v as B) >equal(v as B | undefined, v as B) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as B | undefined : B | undefined > : ^^^^^^^^^^^^^ >v : never @@ -175,7 +175,7 @@ equal(v as 'a' | undefined, v as 'b'); >equal(v as 'a' | undefined, v as 'b') : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as 'a' | undefined : "a" | undefined > : ^^^^^^^^^^^^^^^ >v : never @@ -189,7 +189,7 @@ equal(v as 'a', v as 'b' | undefined); >equal(v as 'a', v as 'b' | undefined) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as 'a' : "a" > : ^^^ >v : never @@ -203,7 +203,7 @@ equal(v as 'a' | undefined, v as 'b' | null); >equal(v as 'a' | undefined, v as 'b' | null) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as 'a' | undefined : "a" | undefined > : ^^^^^^^^^^^^^^^ >v : never @@ -217,7 +217,7 @@ equal(v as 'a' | null, v as 'b' | undefined); >equal(v as 'a' | null, v as 'b' | undefined) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as 'a' | null : "a" | null > : ^^^^^^^^^^ >v : never @@ -231,7 +231,7 @@ equal(v as string, v as string & { tag: 'foo' } | undefined); >equal(v as string, v as string & { tag: 'foo' } | undefined) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as string : string > : ^^^^^^ >v : never @@ -247,7 +247,7 @@ equal(v as string & { tag: 'foo' } | undefined, v as string); >equal(v as string & { tag: 'foo' } | undefined, v as string) : void > : ^^^^ >equal : (a: T, b: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >v as string & { tag: 'foo' } | undefined : (string & { tag: "foo"; }) | undefined > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ >v : never diff --git a/tests/baselines/reference/inferenceOptionalProperties.types b/tests/baselines/reference/inferenceOptionalProperties.types index 785bb6f8de3bf..49e93ccfead96 100644 --- a/tests/baselines/reference/inferenceOptionalProperties.types +++ b/tests/baselines/reference/inferenceOptionalProperties.types @@ -3,7 +3,7 @@ === inferenceOptionalProperties.ts === declare function test(x: { [key: string]: T }): T; >test : (x: { [key: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { [key: string]: T; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -31,7 +31,7 @@ const y1 = test(x1); >test(x1) : string | number > : ^^^^^^^^^^^^^^^ >test : (x: { [key: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x1 : { a?: string; b?: number; } > : ^^^^^^ ^^^^^^ ^^^ @@ -41,7 +41,7 @@ const y2 = test(x2); >test(x2) : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : (x: { [key: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x2 : { a?: string; b?: number | undefined; } > : ^^^^^^ ^^^^^^ ^^^ diff --git a/tests/baselines/reference/inferenceOptionalPropertiesStrict.types b/tests/baselines/reference/inferenceOptionalPropertiesStrict.types index a9f80e3f56a13..df95c142ecec5 100644 --- a/tests/baselines/reference/inferenceOptionalPropertiesStrict.types +++ b/tests/baselines/reference/inferenceOptionalPropertiesStrict.types @@ -3,7 +3,7 @@ === inferenceOptionalPropertiesStrict.ts === declare function test(x: { [key: string]: T }): T; >test : (x: { [key: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { [key: string]: T; } > : ^^^^^^^^^^^^^^^^^^^^^ >key : string @@ -31,7 +31,7 @@ const y1 = test(x1); >test(x1) : string | number > : ^^^^^^^^^^^^^^^ >test : (x: { [key: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x1 : { a?: string; b?: number; } > : ^^^^^^ ^^^^^^ ^^^ @@ -41,7 +41,7 @@ const y2 = test(x2); >test(x2) : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : (x: { [key: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x2 : { a?: string; b?: number | undefined; } > : ^^^^^^ ^^^^^^ ^^^ diff --git a/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types b/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types index c10b0f3425374..5d5abd48717f2 100644 --- a/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types +++ b/tests/baselines/reference/inferenceOptionalPropertiesToIndexSignatures.types @@ -3,7 +3,7 @@ === inferenceOptionalPropertiesToIndexSignatures.ts === declare function foo(obj: { [x: string]: T }): T; >foo : (obj: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : string @@ -47,7 +47,7 @@ let a1 = foo(x1); // string | number >foo(x1) : string | number > : ^^^^^^^^^^^^^^^ >foo : (obj: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x1 : { a: string; b: number; } > : ^^^^^ ^^^^^ ^^^ @@ -57,7 +57,7 @@ let a2 = foo(x2); // string | number | undefined >foo(x2) : string | number | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x2 : { a: string; b: number | undefined; } > : ^^^^^ ^^^^^ ^^^ @@ -67,7 +67,7 @@ let a3 = foo(x3); // string | number >foo(x3) : string | number > : ^^^^^^^^^^^^^^^ >foo : (obj: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x3 : { a: string; b?: number; } > : ^^^^^ ^^^^^^ ^^^ @@ -77,7 +77,7 @@ let a4 = foo(x4); // string | number >foo(x4) : string | number > : ^^^^^^^^^^^^^^^ >foo : (obj: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x4 : { a: string; b?: number | undefined; } > : ^^^^^ ^^^^^^ ^^^ @@ -145,11 +145,11 @@ const query = Object.entries(obj).map( >Object.entries(obj) : [string, string][] > : ^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >obj : { param2?: string | undefined; param1: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >map : (callbackfn: (value: [string, string], index: number, array: [string, string][]) => U, thisArg?: any) => U[] diff --git a/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types b/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types index ea3cff709321a..26e9b4820e1b3 100644 --- a/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types +++ b/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types @@ -14,7 +14,7 @@ export class Test { test(c: C): Test { >test : (c: C) => Test -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c : C > : ^ @@ -38,7 +38,7 @@ export class Test { interface Supervisor { zip(right: Supervisor): Supervisor<[T, A]>; >zip : (right: Supervisor) => Supervisor<[T, A]> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >right : Supervisor > : ^^^^^^^^^^^^^ } @@ -60,7 +60,7 @@ export class Zip implements Supervisor { zip(right: Supervisor): Supervisor<[[T0, T1], A]> { >zip : (right: Supervisor) => Supervisor<[[T0, T1], A]> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >right : Supervisor > : ^^^^^^^^^^^^^ @@ -110,11 +110,11 @@ export class Foo extends Base { >Object.assign(this.t, { x: 1 }) : T & { x: number; } > : ^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T_1, source: U): T_1 & U; (target: T_1, source1: U, source2: V): T_1 & U & V; (target: T_1, source1: U, source2: V, source3: W): T_1 & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T_1, source: U): T_1 & U; (target: T_1, source1: U, source2: V): T_1 & U & V; (target: T_1, source1: U, source2: V, source3: W): T_1 & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >this.t : T > : ^ >this : this diff --git a/tests/baselines/reference/inferenceShouldFailOnEvolvingArrays.types b/tests/baselines/reference/inferenceShouldFailOnEvolvingArrays.types index 4019055ec321a..25778e945ab00 100644 --- a/tests/baselines/reference/inferenceShouldFailOnEvolvingArrays.types +++ b/tests/baselines/reference/inferenceShouldFailOnEvolvingArrays.types @@ -5,7 +5,7 @@ // The type of `arg` blocks inference but simplifies to T. function logLength(arg: { [K in U]: T }[U]): T { >logLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : { [K in U]: T; }[U] > : ^^^^^^^^^^^^^^^^^^^ @@ -33,7 +33,7 @@ logLength(42); // error >logLength(42) : string > : ^^^^^^ >logLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -49,13 +49,13 @@ z = logLength(42); // no error; T is inferred as `any` >logLength(42) : string > : ^^^^^^ >logLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >42 : 42 > : ^^ function logFirstLength(arg: { [K in U]: T }[U]): T { >logFirstLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : { [K in U]: T; }[U] > : ^^^^^^^^^^^^^^^^^^^ @@ -87,7 +87,7 @@ logFirstLength([42]); // error >logFirstLength([42]) : string[] > : ^^^^^^^^ >logFirstLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[42] : number[] > : ^^^^^^^^ >42 : 42 @@ -111,7 +111,7 @@ zz.push(logLength(42)); // no error; T is inferred as `any` >logLength(42) : string > : ^^^^^^ >logLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -123,7 +123,7 @@ zz = logFirstLength([42]); // no error; T is inferred as `any[]` >logFirstLength([42]) : string[] > : ^^^^^^^^ >logFirstLength : (arg: { [K in U]: T; }[U]) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[42] : number[] > : ^^^^^^^^ >42 : 42 diff --git a/tests/baselines/reference/inferentialTypingObjectLiteralMethod1.types b/tests/baselines/reference/inferentialTypingObjectLiteralMethod1.types index a7810422c9cc4..5b8d7263c9f80 100644 --- a/tests/baselines/reference/inferentialTypingObjectLiteralMethod1.types +++ b/tests/baselines/reference/inferentialTypingObjectLiteralMethod1.types @@ -10,7 +10,7 @@ interface Int { } declare function foo(x: T, y: Int, z: Int): T; >foo : (x: T, y: Int, z: Int) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : Int @@ -22,7 +22,7 @@ foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } } >foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } }) : string > : ^^^^^^ >foo : (x: T, y: Int, z: Int) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >{ method(p1) { return p1.length } } : { method(p1: string): number; } diff --git a/tests/baselines/reference/inferentialTypingObjectLiteralMethod2.types b/tests/baselines/reference/inferentialTypingObjectLiteralMethod2.types index 084f93e089b0d..adbb0aca7d823 100644 --- a/tests/baselines/reference/inferentialTypingObjectLiteralMethod2.types +++ b/tests/baselines/reference/inferentialTypingObjectLiteralMethod2.types @@ -10,7 +10,7 @@ interface Int { } declare function foo(x: T, y: Int, z: Int): T; >foo : (x: T, y: Int, z: Int) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : Int @@ -22,7 +22,7 @@ foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } } >foo("", { method(p1) { return p1.length } }, { method(p2) { return undefined } }) : string > : ^^^^^^ >foo : (x: T, y: Int, z: Int) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >{ method(p1) { return p1.length } } : { method(p1: string): number; } diff --git a/tests/baselines/reference/inferentialTypingUsingApparentType1.types b/tests/baselines/reference/inferentialTypingUsingApparentType1.types index 22ece40629b22..3e5d75961f33f 100644 --- a/tests/baselines/reference/inferentialTypingUsingApparentType1.types +++ b/tests/baselines/reference/inferentialTypingUsingApparentType1.types @@ -3,7 +3,7 @@ === inferentialTypingUsingApparentType1.ts === function foo number>(x: T): T { >foo : number>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >p : string > : ^^^^^^ >x : T @@ -18,7 +18,7 @@ foo(x => x.length); >foo(x => x.length) : (x: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >foo : number>(x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x => x.length : (x: string) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : string diff --git a/tests/baselines/reference/inferentialTypingUsingApparentType2.types b/tests/baselines/reference/inferentialTypingUsingApparentType2.types index ae4c56f616612..ad17d37f6d763 100644 --- a/tests/baselines/reference/inferentialTypingUsingApparentType2.types +++ b/tests/baselines/reference/inferentialTypingUsingApparentType2.types @@ -3,7 +3,7 @@ === inferentialTypingUsingApparentType2.ts === function foo(x: T): T { >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >m : (p: string) => number > : ^ ^^ ^^^^^ >p : string @@ -20,7 +20,7 @@ foo({ m(x) { return x.length } }); >foo({ m(x) { return x.length } }) : { m(x: string): number; } > : ^^^^ ^^^^^^^^^^^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ m(x) { return x.length } } : { m(x: string): number; } > : ^^^^ ^^^^^^^^^^^^^^^^^^^^ >m : (x: string) => number diff --git a/tests/baselines/reference/inferentialTypingWithFunctionType.types b/tests/baselines/reference/inferentialTypingWithFunctionType.types index bad6c1ba9a134..e48ac9b40d776 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionType.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionType.types @@ -3,7 +3,7 @@ === inferentialTypingWithFunctionType.ts === declare function map(x: T, f: (s: T) => U): U; >map : (x: T, f: (s: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >f : (s: T) => U @@ -13,7 +13,7 @@ declare function map(x: T, f: (s: T) => U): U; declare function identity(y: V): V; >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : V > : ^ @@ -23,9 +23,9 @@ var s = map("", identity); >map("", identity) : string > : ^^^^^^ >map : (x: T, f: (s: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/inferentialTypingWithFunctionType2.types b/tests/baselines/reference/inferentialTypingWithFunctionType2.types index 934dc28effa6c..3d2d89b46c6e5 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionType2.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionType2.types @@ -3,7 +3,7 @@ === inferentialTypingWithFunctionType2.ts === function identity(a: A): A { >identity : (a: A) => A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : A > : ^ @@ -31,7 +31,7 @@ var x = [1, 2, 3].map(identity)[0]; >map : (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[] > : ^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ >identity : (a: A) => A -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types b/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types index de69d871f2db6..00c9ea6abc218 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeNested.types @@ -3,7 +3,7 @@ === inferentialTypingWithFunctionTypeNested.ts === declare function map(x: T, f: () => { x: (s: T) => U }): U; >map : (x: T, f: () => { x: (s: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >f : () => { x: (s: T) => U; } @@ -15,7 +15,7 @@ declare function map(x: T, f: () => { x: (s: T) => U }): U; declare function identity(y: V): V; >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : V > : ^ @@ -25,15 +25,15 @@ var s = map("", () => { return { x: identity }; }); >map("", () => { return { x: identity }; }) : string > : ^^^^^^ >map : (x: T, f: () => { x: (s: T) => U; }) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >() => { return { x: identity }; } : () => { x: (y: string) => string; } -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ >{ x: identity } : { x: (y: V) => V; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >x : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types index 7253f75b4b071..43fbbbaf2722e 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeSyntacticScenarios.types @@ -3,7 +3,7 @@ === inferentialTypingWithFunctionTypeSyntacticScenarios.ts === declare function map(array: T, func: (x: T) => U): U; >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >array : T > : ^ >func : (x: T) => U @@ -13,7 +13,7 @@ declare function map(array: T, func: (x: T) => U): U; declare function identity(y: V): V; >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : V > : ^ @@ -24,13 +24,13 @@ var s: string; // dotted name var dottedIdentity = { x: identity }; >dottedIdentity : { x: (y: V) => V; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >{ x: identity } : { x: (y: V) => V; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >x : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ s = map("", dottedIdentity.x); >s = map("", dottedIdentity.x) : string @@ -40,15 +40,15 @@ s = map("", dottedIdentity.x); >map("", dottedIdentity.x) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >dottedIdentity.x : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >dottedIdentity : { x: (y: V) => V; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >x : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // index expression s = map("", dottedIdentity['x']); @@ -59,13 +59,13 @@ s = map("", dottedIdentity['x']); >map("", dottedIdentity['x']) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >dottedIdentity['x'] : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >dottedIdentity : { x: (y: V) => V; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >'x' : "x" > : ^^^ @@ -78,23 +78,23 @@ s = map("", (() => identity)()); >map("", (() => identity)()) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >(() => identity)() : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(() => identity) : () => (y: V) => V -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >() => identity : () => (y: V) => V -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // construct interface IdentityConstructor { new (): typeof identity; >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } var ic: IdentityConstructor; >ic : IdentityConstructor @@ -108,11 +108,11 @@ s = map("", new ic()); >map("", new ic()) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >new ic() : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ic : IdentityConstructor > : ^^^^^^^^^^^^^^^^^^^ @@ -128,14 +128,14 @@ s = map("", t = identity); >map("", t = identity) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >t = identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : any >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // type assertion s = map("", identity); @@ -146,15 +146,15 @@ s = map("", identity); >map("", identity) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // parenthesized expression s = map("", (identity)); @@ -165,13 +165,13 @@ s = map("", (identity)); >map("", (identity)) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >(identity) : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // comma s = map("", ("", identity)); @@ -182,15 +182,15 @@ s = map("", ("", identity)); >map("", ("", identity)) : string > : ^^^^^^ >map : (array: T, func: (x: T) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >("", identity) : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"", identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"" : "" > : ^^ >identity : (y: V) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types b/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types index e606f9e44bb3a..dfae3f233f189 100644 --- a/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types +++ b/tests/baselines/reference/inferentialTypingWithFunctionTypeZip.types @@ -3,7 +3,7 @@ === inferentialTypingWithFunctionTypeZip.ts === var pair: (x: T) => (y: S) => { x: T; y: S; } >pair : (x: T) => (y: S) => { x: T; y: S; } -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ >y : S @@ -15,7 +15,7 @@ var pair: (x: T) => (y: S) => { x: T; y: S; } var zipWith: (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[]; >zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >b : S[] @@ -33,7 +33,7 @@ var result = zipWith([1, 2], ['a', 'b'], pair); >zipWith([1, 2], ['a', 'b'], pair) : { x: number; y: unknown; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >zipWith : (a: T[], b: S[], f: (x: T) => (y: S) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >[1, 2] : number[] > : ^^^^^^^^ >1 : 1 @@ -47,7 +47,7 @@ var result = zipWith([1, 2], ['a', 'b'], pair); >'b' : "b" > : ^^^ >pair : (x: T) => (y: S) => { x: T; y: S; } -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var i = result[0].x; // number >i : number diff --git a/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.types b/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.types index 35f438956e0f2..75e8350a3f3fa 100644 --- a/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.types +++ b/tests/baselines/reference/inferentialTypingWithObjectLiteralProperties.types @@ -3,7 +3,7 @@ === inferentialTypingWithObjectLiteralProperties.ts === function f(x: T, y: T): T { >f : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -23,7 +23,7 @@ f({ x: [null] }, { x: [1] }).x[0] = "" // ok >f({ x: [null] }, { x: [1] }) : { x: number[]; } > : ^^^^^^^^^^^^^^^^ >f : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: [null] } : { x: null[]; } > : ^^^^^^^^^^^^^^ >x : null[] @@ -55,7 +55,7 @@ f({ x: [1] }, { x: [null] }).x[0] = "" // was error TS2011: Cannot convert 'stri >f({ x: [1] }, { x: [null] }) : { x: number[]; } > : ^^^^^^^^^^^^^^^^ >f : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: [1] } : { x: number[]; } > : ^^^^^^^^^^^^^^^^ >x : number[] diff --git a/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types b/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types index a4076b3bab91b..933f9852ed81d 100644 --- a/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types +++ b/tests/baselines/reference/inferentiallyTypingAnEmptyArray.types @@ -18,7 +18,7 @@ // the undefined[] type. declare function foo(arr: T[]): T; >foo : (arr: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arr : T[] > : ^^^ @@ -27,7 +27,7 @@ foo([]).bar; >foo([]) : any > : ^^^ >foo : (arr: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >bar : any diff --git a/tests/baselines/reference/inferingFromAny.types b/tests/baselines/reference/inferingFromAny.types index 2e6b90e4585ed..46644b9e159f8 100644 --- a/tests/baselines/reference/inferingFromAny.types +++ b/tests/baselines/reference/inferingFromAny.types @@ -10,25 +10,25 @@ var t: [any, any]; declare function f1(t: T): T >f1 : (t: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T > : ^ declare function f2(t: T[]): T; >f2 : (t: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T[] > : ^^^ declare function f3(t: [T, U]): [T, U]; >f3 : (t: [T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >t : [T, U] > : ^^^^^^ declare function f4(x: { bar: T; baz: T }): T; >f4 : (x: { bar: T; baz: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { bar: T; baz: T; } > : ^^^^^^^ ^^^^^^^ ^^^ >bar : T @@ -38,7 +38,7 @@ declare function f4(x: { bar: T; baz: T }): T; declare function f5(x: (a: T) => void): T; >f5 : (x: (a: T) => void) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => void > : ^ ^^ ^^^^^ >a : T @@ -46,7 +46,7 @@ declare function f5(x: (a: T) => void): T; declare function f6(x: new (a: T) => {}): T; >f6 : (x: new (a: T) => {}) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : new (a: T) => {} > : ^^^^^ ^^ ^^^^^ >a : T @@ -54,26 +54,26 @@ declare function f6(x: new (a: T) => {}): T; declare function f7(x: (a: any) => a is T): T; >f7 : (x: (a: any) => a is T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: any) => a is T > : ^ ^^ ^^^^^ >a : any declare function f8(x: () => T): T; >f8 : (x: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : () => T > : ^^^^^^ declare function f9(x: new () => T): T; >f9 : (x: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : new () => T > : ^^^^^^^^^^ declare function f10(x: { [x: string]: T }): T; >f10 : (x: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : string @@ -81,7 +81,7 @@ declare function f10(x: { [x: string]: T }): T; declare function f11(x: { [x: number]: T }): T; >f11 : (x: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : number @@ -89,19 +89,19 @@ declare function f11(x: { [x: number]: T }): T; declare function f12(x: T | U): [T, U]; >f12 : (x: T | U) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T | U > : ^^^^^ declare function f13(x: T & U): [T, U]; >f13 : (x: T & U) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T & U > : ^^^^^ declare function f14(x: { a: T | U, b: U & T }): [T, U]; >f14 : (x: { a: T | U; b: U & T; }) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { a: T | U; b: U & T; } > : ^^^^^ ^^^^^ ^^^ >a : T | U @@ -112,31 +112,31 @@ declare function f14(x: { a: T | U, b: U & T }): [T, U]; interface I { } declare function f15(x: I): T; >f15 : (x: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : I > : ^^^^ declare function f16(x: Partial): T; >f16 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Partial > : ^^^^^^^^^^ declare function f17(x: {[P in keyof T]: K}): T; >f17 : (x: { [P in keyof T]: K; }) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { [P in keyof T]: K; } > : ^^^^^^^^^^^^^^^^^^^^^^ declare function f18(x: {[P in K]: T[P]}): T; >f18 : (x: { [P in K]: T[P]; }) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { [P in K]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^ declare function f19(k: K, x: T[K]): T; >f19 : (k: K, x: T[K]) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >k : K > : ^ >x : T[K] @@ -147,14 +147,14 @@ var a = f1(a); >a : any >f1(a) : any >f1 : (t: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f2(a); >a : any >f2(a) : any >f2 : (t: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var t = f3(a); @@ -163,63 +163,63 @@ var t = f3(a); >f3(a) : [any, any] > : ^^^^^^^^^^ >f3 : (t: [T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a : any var a = f4(a); >a : any >f4(a) : any >f4 : (x: { bar: T; baz: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f5(a); >a : any >f5(a) : any >f5 : (x: (a: T) => void) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f6(a); >a : any >f6(a) : any >f6 : (x: new (a: T) => {}) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f7(a); >a : any >f7(a) : any >f7 : (x: (a: any) => a is T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f8(a); >a : any >f8(a) : any >f8 : (x: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f9(a); >a : any >f9(a) : any >f9 : (x: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f10(a); >a : any >f10(a) : any >f10 : (x: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f11(a); >a : any >f11(a) : any >f11 : (x: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var t = f12(a); @@ -228,7 +228,7 @@ var t = f12(a); >f12(a) : [any, any] > : ^^^^^^^^^^ >f12 : (x: T | U) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a : any var t = f13(a); @@ -237,7 +237,7 @@ var t = f13(a); >f13(a) : [any, any] > : ^^^^^^^^^^ >f13 : (x: T & U) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a : any var t = f14(a); @@ -246,42 +246,42 @@ var t = f14(a); >f14(a) : [any, any] > : ^^^^^^^^^^ >f14 : (x: { a: T | U; b: U & T; }) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a : any var a = f15(a); >a : any >f15(a) : any >f15 : (x: I) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f16(a); >a : any >f16(a) : any >f16 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any var a = f17(a); >a : any >f17(a) : any >f17 : (x: { [P in keyof T]: K; }) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >a : any var a = f18(a); >a : any >f18(a) : any >f18 : (x: { [P in K]: T[P]; }) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : any var a = f19(a, a); >a : any >f19(a, a) : any >f19 : (k: K, x: T[K]) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : any >a : any diff --git a/tests/baselines/reference/inferredRestTypeFixedOnce.types b/tests/baselines/reference/inferredRestTypeFixedOnce.types index db16ccb39a968..c05d3c49fde4c 100644 --- a/tests/baselines/reference/inferredRestTypeFixedOnce.types +++ b/tests/baselines/reference/inferredRestTypeFixedOnce.types @@ -3,7 +3,7 @@ === inferredRestTypeFixedOnce.ts === function wrap(_: (...args: Args) => void) {} >wrap : (_: (...args: Args) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >_ : (...args: Args) => void > : ^^^^ ^^ ^^^^^ >args : Args @@ -13,7 +13,7 @@ wrap(({ cancelable } = {}) => {}); >wrap(({ cancelable } = {}) => {}) : void > : ^^^^ >wrap : (_: (...args: Args) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >({ cancelable } = {}) => {} : ({ cancelable }?: { cancelable: any; }) => void > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >cancelable : any diff --git a/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types b/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types index 2b774fbc86038..ba47b4dfd2e1f 100644 --- a/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types +++ b/tests/baselines/reference/inferrenceInfiniteLoopWithSubtyping.types @@ -88,11 +88,11 @@ User.addResolver({ >User.addResolver({ type: User, // `User as any` fix the problem}) : ObjectTypeComposer > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >User.addResolver : (opts: { type?: import("graphql-compose").Thunk; }) => ObjectTypeComposer -> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ >User : ObjectTypeComposer > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >addResolver : (opts: { type?: import("graphql-compose").Thunk; }) => ObjectTypeComposer -> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ >{ type: User, // `User as any` fix the problem} : { type: ObjectTypeComposer; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/inferringAnyFunctionType1.types b/tests/baselines/reference/inferringAnyFunctionType1.types index 2b2b5d3a8f21c..e62e94ee3878b 100644 --- a/tests/baselines/reference/inferringAnyFunctionType1.types +++ b/tests/baselines/reference/inferringAnyFunctionType1.types @@ -3,7 +3,7 @@ === inferringAnyFunctionType1.ts === function f number }>(p: T): T { >f : number; }>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"0" : (p1: number) => number > : ^ ^^ ^^^^^ >p1 : number @@ -22,7 +22,7 @@ var v = f([x => x]); >f([x => x]) : [(x: number) => number] > : ^^ ^^^^^^^^^^^^^^^^^^^^ >f : number; }>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[x => x] : [(x: number) => number] > : ^^ ^^^^^^^^^^^^^^^^^^^^ >x => x : (x: number) => number diff --git a/tests/baselines/reference/inferringAnyFunctionType2.types b/tests/baselines/reference/inferringAnyFunctionType2.types index 1ba79c223a99c..9b90f5bb4bd4e 100644 --- a/tests/baselines/reference/inferringAnyFunctionType2.types +++ b/tests/baselines/reference/inferringAnyFunctionType2.types @@ -3,7 +3,7 @@ === inferringAnyFunctionType2.ts === function f number]>(p: T): T { >f : number]>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >p1 : number > : ^^^^^^ >p : T @@ -20,7 +20,7 @@ var v = f([x => x]); >f([x => x]) : [(x: number) => number] > : ^^ ^^^^^^^^^^^^^^^^^^^^ >f : number]>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[x => x] : [(x: number) => number] > : ^^ ^^^^^^^^^^^^^^^^^^^^ >x => x : (x: number) => number diff --git a/tests/baselines/reference/inferringAnyFunctionType3.types b/tests/baselines/reference/inferringAnyFunctionType3.types index ef3bdfedb840e..371afc11a0b9d 100644 --- a/tests/baselines/reference/inferringAnyFunctionType3.types +++ b/tests/baselines/reference/inferringAnyFunctionType3.types @@ -3,7 +3,7 @@ === inferringAnyFunctionType3.ts === function f number)[]>(p: T): T { >f : number)[]>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >p1 : number > : ^^^^^^ >p : T @@ -20,7 +20,7 @@ var v = f([x => x]); >f([x => x]) : ((x: number) => number)[] > : ^^ ^^^^^^^^^^^^^^^^^^^^^^ >f : number)[]>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[x => x] : ((x: number) => number)[] > : ^^ ^^^^^^^^^^^^^^^^^^^^^^ >x => x : (x: number) => number diff --git a/tests/baselines/reference/inferringAnyFunctionType4.types b/tests/baselines/reference/inferringAnyFunctionType4.types index f5ffc70a7d121..da416ec982a10 100644 --- a/tests/baselines/reference/inferringAnyFunctionType4.types +++ b/tests/baselines/reference/inferringAnyFunctionType4.types @@ -3,7 +3,7 @@ === inferringAnyFunctionType4.ts === function f number>(p: T): T { >f : number>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >p1 : number > : ^^^^^^ >p : T @@ -20,7 +20,7 @@ var v = f(x => x); >f(x => x) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >f : number>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x => x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/inferringAnyFunctionType5.types b/tests/baselines/reference/inferringAnyFunctionType5.types index 44ab2e3efd0c4..4c7b0acde4ac4 100644 --- a/tests/baselines/reference/inferringAnyFunctionType5.types +++ b/tests/baselines/reference/inferringAnyFunctionType5.types @@ -3,7 +3,7 @@ === inferringAnyFunctionType5.ts === function f number }>(p: T): T { >f : number; }>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >q : (p1: number) => number > : ^ ^^ ^^^^^ >p1 : number @@ -22,7 +22,7 @@ var v = f({ q: x => x }); >f({ q: x => x }) : { q: (x: number) => number; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >f : number; }>(p: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ q: x => x } : { q: (x: number) => number; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >q : (x: number) => number diff --git a/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types index 1df958c235d90..5ac6140e36d44 100644 --- a/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types +++ b/tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types @@ -49,7 +49,7 @@ class GenericNumberOrString { function g(type: new () => T): T { >g : (type: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >type : new () => T > : ^^^^^^^^^^ @@ -66,7 +66,7 @@ const g1 = g(GenericObject); >g(GenericObject) : GenericObject<{}> > : ^^^^^^^^^^^^^^^^^ >g : (type: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >GenericObject : typeof GenericObject > : ^^^^^^^^^^^^^^^^^^^^ @@ -88,7 +88,7 @@ const g2 = g(GenericNumber); >g(GenericNumber) : GenericNumber > : ^^^^^^^^^^^^^^^^^^^^^ >g : (type: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >GenericNumber : typeof GenericNumber > : ^^^^^^^^^^^^^^^^^^^^ @@ -110,7 +110,7 @@ const g3 = g(GenericNumberOrString); >g(GenericNumberOrString) : GenericNumberOrString > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >g : (type: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >GenericNumberOrString : typeof GenericNumberOrString > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -149,7 +149,7 @@ const g4 = g(C); >g(C) : C > : ^^^^^^^^^^ >g : (type: new () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ diff --git a/tests/baselines/reference/infiniteConstraints.types b/tests/baselines/reference/infiniteConstraints.types index db1a3468d2e26..8b3e64e6929e6 100644 --- a/tests/baselines/reference/infiniteConstraints.types +++ b/tests/baselines/reference/infiniteConstraints.types @@ -26,7 +26,7 @@ type AProp = T declare function myBug< >myBug : ? U : never; }>(arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ T extends { [K in keyof T]: T[K] extends AProp ? U : never } >(arg: T): T @@ -39,7 +39,7 @@ const out = myBug({obj1: {a: "test"}}) >myBug({obj1: {a: "test"}}) : { obj1: { a: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >myBug : ? U : never; }>(arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{obj1: {a: "test"}} : { obj1: { a: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >obj1 : { a: string; } @@ -57,13 +57,13 @@ type Value = Record<"val", V>; declare function value(val: V): Value; >value : (val: V) => Value -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >val : V > : ^ declare function ensureNoDuplicates< >ensureNoDuplicates : ["val"] extends Extract], Value>["val"] ? never : any; }>(vals: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ T extends { [K in keyof T]: Extract["val"] extends Extract], Value>["val"] @@ -80,7 +80,7 @@ const noError = ensureNoDuplicates({main: value("test"), alternate: value("test2 >ensureNoDuplicates({main: value("test"), alternate: value("test2")}) : void > : ^^^^ >ensureNoDuplicates : ["val"] extends Extract], Value>["val"] ? never : any; }>(vals: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{main: value("test"), alternate: value("test2")} : { main: Value<"test">; alternate: Value<"test2">; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >main : Value<"test"> @@ -88,7 +88,7 @@ const noError = ensureNoDuplicates({main: value("test"), alternate: value("test2 >value("test") : Value<"test"> > : ^^^^^^^^^^^^^ >value : (val: V) => Value -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"test" : "test" > : ^^^^^^ >alternate : Value<"test2"> @@ -96,7 +96,7 @@ const noError = ensureNoDuplicates({main: value("test"), alternate: value("test2 >value("test2") : Value<"test2"> > : ^^^^^^^^^^^^^^ >value : (val: V) => Value -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"test2" : "test2" > : ^^^^^^^ @@ -106,7 +106,7 @@ const shouldBeNoError = ensureNoDuplicates({main: value("test")}); >ensureNoDuplicates({main: value("test")}) : void > : ^^^^ >ensureNoDuplicates : ["val"] extends Extract], Value>["val"] ? never : any; }>(vals: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{main: value("test")} : { main: Value<"test">; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >main : Value<"test"> @@ -114,7 +114,7 @@ const shouldBeNoError = ensureNoDuplicates({main: value("test")}); >value("test") : Value<"test"> > : ^^^^^^^^^^^^^ >value : (val: V) => Value -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"test" : "test" > : ^^^^^^ @@ -124,7 +124,7 @@ const shouldBeError = ensureNoDuplicates({main: value("dup"), alternate: value(" >ensureNoDuplicates({main: value("dup"), alternate: value("dup")}) : void > : ^^^^ >ensureNoDuplicates : ["val"] extends Extract], Value>["val"] ? never : any; }>(vals: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{main: value("dup"), alternate: value("dup")} : { main: Value<"dup">; alternate: Value<"dup">; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >main : Value<"dup"> @@ -132,7 +132,7 @@ const shouldBeError = ensureNoDuplicates({main: value("dup"), alternate: value(" >value("dup") : Value<"dup"> > : ^^^^^^^^^^^^ >value : (val: V) => Value -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"dup" : "dup" > : ^^^^^ >alternate : Value<"dup"> @@ -140,7 +140,7 @@ const shouldBeError = ensureNoDuplicates({main: value("dup"), alternate: value(" >value("dup") : Value<"dup"> > : ^^^^^^^^^^^^ >value : (val: V) => Value -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"dup" : "dup" > : ^^^^^ @@ -152,7 +152,7 @@ type Cond = T extends number ? number : never; declare function function1}>(): T[keyof T]["foo"]; >function1 : ; }>() => T[keyof T]["foo"] -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ // Repro from #31823 diff --git a/tests/baselines/reference/infiniteExpansionThroughInstantiation.types b/tests/baselines/reference/infiniteExpansionThroughInstantiation.types index 218e9c11da17e..4a823e585ae85 100644 --- a/tests/baselines/reference/infiniteExpansionThroughInstantiation.types +++ b/tests/baselines/reference/infiniteExpansionThroughInstantiation.types @@ -42,7 +42,7 @@ list = ownerList; function other(x: T) { >other : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/infiniteExpansionThroughTypeInference.types b/tests/baselines/reference/infiniteExpansionThroughTypeInference.types index 8e6650bc24c07..4483d5469545f 100644 --- a/tests/baselines/reference/infiniteExpansionThroughTypeInference.types +++ b/tests/baselines/reference/infiniteExpansionThroughTypeInference.types @@ -13,7 +13,7 @@ interface G { function ff(g: G): void { >ff : (g: G) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : G > : ^^^^ @@ -21,7 +21,7 @@ function ff(g: G): void { >ff(g) : void > : ^^^^ >ff : (g: G) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : G > : ^^^^ } diff --git a/tests/baselines/reference/infinitelyExpandingTypes4.types b/tests/baselines/reference/infinitelyExpandingTypes4.types index 5660ef8dc80f4..5a43c31829145 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes4.types +++ b/tests/baselines/reference/infinitelyExpandingTypes4.types @@ -5,7 +5,7 @@ interface Query { // ... groupBy(keySelector: (item: T) => K): Query>; >groupBy : (keySelector: (item: T) => K) => Query> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >keySelector : (item: T) => K > : ^ ^^ ^^^^^ >item : T @@ -18,7 +18,7 @@ interface QueryEnumerator { // ... groupBy(keySelector: (item: T) => K): QueryEnumerator>; >groupBy : (keySelector: (item: T) => K) => QueryEnumerator> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >keySelector : (item: T) => K > : ^ ^^ ^^^^^ >item : T diff --git a/tests/baselines/reference/infinitelyExpandingTypes5.types b/tests/baselines/reference/infinitelyExpandingTypes5.types index 35c4f2d582a9a..29cbede5cfa97 100644 --- a/tests/baselines/reference/infinitelyExpandingTypes5.types +++ b/tests/baselines/reference/infinitelyExpandingTypes5.types @@ -21,19 +21,19 @@ interface Enumerator { function from(array: T[]): Query; >from : { (array: T[]): Query; (enumerator: Enumerator): Query; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >array : T[] > : ^^^ function from(enumerator: Enumerator): Query; >from : { (array: T_1[]): Query; (enumerator: Enumerator): Query; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >enumerator : Enumerator > : ^^^^^^^^^^^^^ function from(arg: any): any { >from : { (array: T[]): Query; (enumerator: Enumerator): Query; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >arg : any return undefined; diff --git a/tests/baselines/reference/infinitelyGenerativeInheritance1.types b/tests/baselines/reference/infinitelyGenerativeInheritance1.types index bfb3258e57231..d902b4e16b69e 100644 --- a/tests/baselines/reference/infinitelyGenerativeInheritance1.types +++ b/tests/baselines/reference/infinitelyGenerativeInheritance1.types @@ -8,7 +8,7 @@ interface Stack { zip(a: Stack): Stack<{ x: T; y: S }> >zip : (a: Stack) => Stack<{ x: T; y: S; }> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : Stack > : ^^^^^^^^ >x : T @@ -20,7 +20,7 @@ interface Stack { interface MyStack extends Stack { zip(a: Stack): Stack<{ x: T; y: S }> >zip : (a: Stack) => Stack<{ x: T; y: S; }> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : Stack > : ^^^^^^^^ >x : T diff --git a/tests/baselines/reference/inlineConditionalHasSimilarAssignability.types b/tests/baselines/reference/inlineConditionalHasSimilarAssignability.types index af672e3fdd7fc..63e16ab9efe42 100644 --- a/tests/baselines/reference/inlineConditionalHasSimilarAssignability.types +++ b/tests/baselines/reference/inlineConditionalHasSimilarAssignability.types @@ -7,7 +7,7 @@ type MyExtract = T extends U ? T : never function foo(a: T) { >foo : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/inlineMappedTypeModifierDeclarationEmit.types b/tests/baselines/reference/inlineMappedTypeModifierDeclarationEmit.types index b212f67d631c0..c1ce6ab623691 100644 --- a/tests/baselines/reference/inlineMappedTypeModifierDeclarationEmit.types +++ b/tests/baselines/reference/inlineMappedTypeModifierDeclarationEmit.types @@ -3,13 +3,13 @@ === index.ts === import { test1, test2 } from "./other"; >test1 : (obj: T, k: K) => Exclude extends infer T_1 extends keyof T ? { [P in T_1]: T[P]; } : never -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >test2 : (obj: T, k: K) => { [P in Exclude]: T[P]; } -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ export function wrappedTest1(obj: T, k: K) { >wrappedTest1 : (obj: T, k: K) => Exclude extends infer T_1 extends keyof T ? { [P in T_1]: T[P]; } : never -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : T > : ^ >k : K @@ -19,7 +19,7 @@ export function wrappedTest1(obj: T, k: K) { >test1(obj, k) : Exclude extends infer T_1 extends keyof T ? { [P in T_1]: T[P]; } : never > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test1 : (obj: T_1, k: K_1) => Exclude extends infer T_2 extends keyof T_1 ? { [P in T_2]: T_1[P]; } : never -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >obj : T > : ^ >k : K @@ -28,7 +28,7 @@ export function wrappedTest1(obj: T, k: K) { export function wrappedTest2(obj: T, k: K) { >wrappedTest2 : (obj: T, k: K) => { [P in Exclude]: T[P]; } -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : T > : ^ >k : K @@ -38,7 +38,7 @@ export function wrappedTest2(obj: T, k: K) { >test2(obj, k) : { [P in Exclude]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test2 : (obj: T_1, k: K_1) => { [P in Exclude]: T_1[P]; } -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >obj : T > : ^ >k : K @@ -65,7 +65,7 @@ export const processedInternally1 = wrappedTest1({} as Obj, "a"); >wrappedTest1({} as Obj, "a") : { readonly foo: string; } > : ^^^^^^^^^^^^^^^^ ^^^ >wrappedTest1 : (obj: T, k: K) => Exclude extends infer T_1 extends keyof T ? { [P in T_1]: T[P]; } : never -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{} as Obj : Obj > : ^^^ >{} : {} @@ -79,7 +79,7 @@ export const processedInternally2 = wrappedTest2({} as Obj, "a"); >wrappedTest2({} as Obj, "a") : { foo: string; } > : ^^^^^^^^^^^^^^^^ >wrappedTest2 : (obj: T, k: K) => { [P in Exclude]: T[P]; } -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{} as Obj : Obj > : ^^^ >{} : {} @@ -103,7 +103,7 @@ type OmitUnveiled = { export function test1(obj: T, k: K): OmitReal { >test1 : (obj: T, k: K) => OmitReal -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >k : K @@ -117,7 +117,7 @@ export function test1(obj: T, k: K): OmitReal { export function test2(obj: T, k: K): OmitUnveiled { >test2 : (obj: T, k: K) => OmitUnveiled -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >k : K diff --git a/tests/baselines/reference/innerTypeArgumentInference.types b/tests/baselines/reference/innerTypeArgumentInference.types index 1b1fba0df7a18..a37f000e5a718 100644 --- a/tests/baselines/reference/innerTypeArgumentInference.types +++ b/tests/baselines/reference/innerTypeArgumentInference.types @@ -4,7 +4,7 @@ interface Generator { (): T; } function Generate(func: Generator): U { >Generate : (func: Generator) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : Generator > : ^^^^^^^^^^^^ @@ -12,7 +12,7 @@ function Generate(func: Generator): U { >Generate(func) : U > : ^ >Generate : (func: Generator) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : Generator > : ^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types b/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types index 0f7e8a5db9caa..9582f76883470 100644 --- a/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types +++ b/tests/baselines/reference/instanceofOperatorWithLHSIsTypeParameter.types @@ -3,7 +3,7 @@ === instanceofOperatorWithLHSIsTypeParameter.ts === function foo(t: T) { >foo : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/instanceofOperatorWithRHSHasSymbolHasInstance.types b/tests/baselines/reference/instanceofOperatorWithRHSHasSymbolHasInstance.types index 648d1f9c0a608..4652ace7d3b8e 100644 --- a/tests/baselines/reference/instanceofOperatorWithRHSHasSymbolHasInstance.types +++ b/tests/baselines/reference/instanceofOperatorWithRHSHasSymbolHasInstance.types @@ -926,7 +926,7 @@ declare class A { // all construct signatures, but we have no way of extracting individual construct signatures from a type. static [Symbol.hasInstance](this: T, value: unknown): value is ( >[Symbol.hasInstance] : (this: T, value: unknown) => value is (T extends globalThis.Function ? T extends { readonly prototype: infer U; } ? boolean extends (U extends never ? true : false) ? T extends (abstract new (...args: any) => infer V) ? V : {} : U : never : never) -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >Symbol.hasInstance : unique symbol > : ^^^^^^^^^^^^^ >Symbol : SymbolConstructor diff --git a/tests/baselines/reference/instanceofTypeAliasToGenericClass.types b/tests/baselines/reference/instanceofTypeAliasToGenericClass.types index 08282a1058915..bfb3467015d30 100644 --- a/tests/baselines/reference/instanceofTypeAliasToGenericClass.types +++ b/tests/baselines/reference/instanceofTypeAliasToGenericClass.types @@ -16,7 +16,7 @@ export type Table = TableClass; function fn(o: T) { >fn : (o: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >o : T > : ^ @@ -31,7 +31,7 @@ function fn(o: T) { function fn2(o: T) { >fn2 : (o: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >o : T > : ^ diff --git a/tests/baselines/reference/instantiateContextualTypes.types b/tests/baselines/reference/instantiateContextualTypes.types index 775a7730090ab..85ad8ea46c82f 100644 --- a/tests/baselines/reference/instantiateContextualTypes.types +++ b/tests/baselines/reference/instantiateContextualTypes.types @@ -11,7 +11,7 @@ export interface A { function fn(values: A, value: a) : void { >fn : (values: A, value: a) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >values : A > : ^^^^ >value : a @@ -28,7 +28,7 @@ fn(handlers, value => alert(value)); >fn(handlers, value => alert(value)) : void > : ^^^^ >fn : (values: A, value: a) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >handlers : A<(value: number) => void> > : ^^^ ^^ ^^^^^ ^ >value => alert(value) : (value: number) => void @@ -100,7 +100,7 @@ new GenericComponent({ initialValues: 12, nextValues: val => 12 }); declare function useStringOrNumber(t: T, useIt: T extends string ? ((s: string) => void) : ((n: number) => void)): void; >useStringOrNumber : (t: T, useIt: T extends string ? ((s: string) => void) : ((n: number) => void)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >useIt : T extends string ? (s: string) => void : (n: number) => void @@ -114,7 +114,7 @@ useStringOrNumber("", foo => {}); >useStringOrNumber("", foo => {}) : void > : ^^^^ >useStringOrNumber : (t: T, useIt: T extends string ? ((s: string) => void) : ((n: number) => void)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >foo => {} : (foo: string) => void @@ -156,7 +156,7 @@ interface ActionHandler { declare function handler(actionType: ActionType

, handler: Handler): ActionHandler >handler : (actionType: ActionType

, handler: Handler) => ActionHandler -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >actionType : ActionType

> : ^^^^^^^^^^^^^ >handler : Handler @@ -164,7 +164,7 @@ declare function handler(actionType: ActionType

, handler: Handler declare function createReducer( >createReducer : (defaultState: S, ...actionHandlers: ActionHandler[]) => any -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ defaultState: S, >defaultState : S @@ -210,7 +210,7 @@ const NON_VOID_ACTION: ActionType = 'NON_VOID_ACTION' createReducer( >createReducer( defaultState, handler(NON_VOID_ACTION, (state, _payload) => state), handler(VOID_ACTION, state => state)) : any >createReducer : (defaultState: S, ...actionHandlers: ActionHandler[]) => any -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ defaultState, >defaultState : AppState @@ -220,7 +220,7 @@ createReducer( >handler(NON_VOID_ACTION, (state, _payload) => state) : ActionHandler > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >handler : (actionType: ActionType

, handler: Handler) => ActionHandler -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >NON_VOID_ACTION : ActionType > : ^^^^^^^^^^^^^^^^^^ >(state, _payload) => state : (state: AppState, _payload: number) => AppState @@ -236,7 +236,7 @@ createReducer( >handler(VOID_ACTION, state => state) : ActionHandler > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >handler : (actionType: ActionType

, handler: Handler) => ActionHandler -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >VOID_ACTION : ActionType > : ^^^^^^^^^^^^^^^^ >state => state : (state: AppState) => AppState @@ -274,7 +274,7 @@ type O = { on

(x: P, callback: R[P]): void; >on :

(x: P, callback: R[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : P > : ^ >callback : R[P] @@ -290,11 +290,11 @@ x.on('a', a => {}); >x.on('a', a => {}) : void > : ^^^^ >x.on :

(x: P, callback: R[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : O > : ^ >on :

(x: P, callback: R[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ >a => {} : (a: number) => void @@ -338,7 +338,7 @@ type CreateElementChildren

= declare function createElement

( >createElement :

(type: ComponentClass

, ...children: P extends { children?: infer C; } ? C extends any[] ? C : C[] : unknown) => any -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ type: ComponentClass

, >type : ComponentClass

@@ -352,7 +352,7 @@ declare function createElement

( declare function createElement2

( >createElement2 :

(type: ComponentClass

, child: P extends { children?: infer C; } ? C extends any[] ? C : C[] : unknown) => any -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ type: ComponentClass

, >type : ComponentClass

@@ -377,7 +377,7 @@ class InferFunctionTypes extends Component<{children: (foo: number) => string}> createElement(InferFunctionTypes, (foo) => "" + foo); >createElement(InferFunctionTypes, (foo) => "" + foo) : any >createElement :

(type: ComponentClass

, ...children: P extends { children?: infer C; } ? C extends any[] ? C : C[] : unknown) => any -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >InferFunctionTypes : typeof InferFunctionTypes > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >(foo) => "" + foo : (foo: number) => string @@ -394,7 +394,7 @@ createElement(InferFunctionTypes, (foo) => "" + foo); createElement2(InferFunctionTypes, [(foo) => "" + foo]); >createElement2(InferFunctionTypes, [(foo) => "" + foo]) : any >createElement2 :

(type: ComponentClass

, child: P extends { children?: infer C; } ? C extends any[] ? C : C[] : unknown) => any -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >InferFunctionTypes : typeof InferFunctionTypes > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >[(foo) => "" + foo] : ((foo: number) => string)[] @@ -446,7 +446,7 @@ type BoxConsumerFromOuterBox = declare function passContentsToFunc(outerBox: T, consumer: BoxConsumerFromOuterBox): void; >passContentsToFunc : (outerBox: T, consumer: BoxConsumerFromOuterBox) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >outerBox : T > : ^ >consumer : BoxConsumerFromOuterBox @@ -460,7 +460,7 @@ passContentsToFunc(outerBoxOfString, box => box.value); >passContentsToFunc(outerBoxOfString, box => box.value) : void > : ^^^^ >passContentsToFunc : (outerBox: T, consumer: BoxConsumerFromOuterBox) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >outerBoxOfString : OuterBox > : ^^^^^^^^^^^^^^^^ >box => box.value : (box: InnerBox) => string @@ -498,11 +498,11 @@ class Interesting { >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ >() => { if (1 < 2) { return 'SOMETHING'; } return 'ELSE'; } : () => "SOMETHING" | "ELSE" @@ -540,11 +540,11 @@ class Interesting { >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ >() => { return 'ELSE'; } : () => "ELSE" @@ -570,11 +570,11 @@ class Interesting { >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ >() => { if (1 < 2) { return 'SOMETHING'; } return 'SOMETHING'; } : () => "SOMETHING" @@ -604,7 +604,7 @@ class Interesting { declare function invoke(f: () => T): T; >invoke : (f: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : () => T > : ^^^^^^ @@ -614,7 +614,7 @@ let xx: 0 | 1 | 2 = invoke(() => 1); >invoke(() => 1) : 1 > : ^ >invoke : (f: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => 1 : () => 1 > : ^^^^^^^ >1 : 1 @@ -624,7 +624,7 @@ let xx: 0 | 1 | 2 = invoke(() => 1); declare function assignPartial(target: T, partial: Partial): T; >assignPartial : (target: T, partial: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >target : T > : ^ >partial : Partial @@ -647,7 +647,7 @@ assignPartial(obj, { foo(...args) {} }); // args has type [string] >assignPartial(obj, { foo(...args) {} }) : { foo(bar: string): void; } > : ^^^^^^ ^^ ^^^^^^^^^^ >assignPartial : (target: T, partial: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >obj : { foo(bar: string): void; } > : ^^^^^^ ^^ ^^^^^^^^^^ >{ foo(...args) {} } : { foo(bar: string): void; } diff --git a/tests/baselines/reference/instantiateContextuallyTypedGenericThis.types b/tests/baselines/reference/instantiateContextuallyTypedGenericThis.types index 19a7e52635da2..e73b059334ad3 100644 --- a/tests/baselines/reference/instantiateContextuallyTypedGenericThis.types +++ b/tests/baselines/reference/instantiateContextuallyTypedGenericThis.types @@ -4,7 +4,7 @@ interface JQuery { each( >each : (collection: T[], callback: (this: T, dit: T) => T) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ collection: T[], callback: (this: T, dit: T) => T >collection : T[] @@ -31,11 +31,11 @@ $.each(lines, function(dit) { >$.each(lines, function(dit) { return dit.charAt(0) + this.charAt(1);}) : string[] > : ^^^^^^^^ >$.each : (collection: T[], callback: (this: T, dit: T) => T) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >$ : JQuery > : ^^^^^^ >each : (collection: T[], callback: (this: T, dit: T) => T) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >lines : string[] > : ^^^^^^^^ >function(dit) { return dit.charAt(0) + this.charAt(1);} : (this: string, dit: string) => string diff --git a/tests/baselines/reference/instantiateTemplateTagTypeParameterOnVariableStatement.types b/tests/baselines/reference/instantiateTemplateTagTypeParameterOnVariableStatement.types index 9022c7af1e90e..fef93c9500ae5 100644 --- a/tests/baselines/reference/instantiateTemplateTagTypeParameterOnVariableStatement.types +++ b/tests/baselines/reference/instantiateTemplateTagTypeParameterOnVariableStatement.types @@ -8,9 +8,9 @@ */ const seq = a => b => b; >seq : (a: T) => (b: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a => b => b : (a: T) => (b: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ >b => b : (b: T) => T @@ -39,9 +39,9 @@ var text3 = seq(text1)(text2); >seq(text1)(text2) : string > : ^^^^^^ >seq(text1) : (b: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >seq : (a: T) => (b: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >text1 : "hello" > : ^^^^^^^ >text2 : "world" diff --git a/tests/baselines/reference/instantiatedTypeAliasDisplay.types b/tests/baselines/reference/instantiatedTypeAliasDisplay.types index 8873ef7752193..1894a6342a22f 100644 --- a/tests/baselines/reference/instantiatedTypeAliasDisplay.types +++ b/tests/baselines/reference/instantiatedTypeAliasDisplay.types @@ -19,11 +19,11 @@ type Z = X | Y; declare function f1(): Z; >f1 : () => Z -> : ^ ^^^^^^^ +> : ^^^^^^^^^ declare function f2(a: A, b: B, c: C, d: D): Z; >f2 : (a: A, b: B, c: C, d: D) => Z -> : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -39,7 +39,7 @@ const x1 = f1(); // Z >f1() : Z > : ^^^^^^^^^^^^^^^^^ >f1 : () => Z -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const x2 = f2({}, {}, {}, {}); // Z<{}, string[]> >x2 : Z<{}, string[]> @@ -47,7 +47,7 @@ const x2 = f2({}, {}, {}, {}); // Z<{}, string[]> >f2({}, {}, {}, {}) : Z<{}, string[]> > : ^^^^^^^^^^^^^^^ >f2 : (a: A, b: B, c: C, d: D) => Z -> : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{} : {} > : ^^ >{} : {} diff --git a/tests/baselines/reference/instantiationExpressionErrors.types b/tests/baselines/reference/instantiationExpressionErrors.types index 4e3f48011433c..4cdf43e37531b 100644 --- a/tests/baselines/reference/instantiationExpressionErrors.types +++ b/tests/baselines/reference/instantiationExpressionErrors.types @@ -3,67 +3,67 @@ === instantiationExpressionErrors.ts === declare let f: { (): T, g(): U }; >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // Type arguments in member expressions const a1 = f; // { (): number; g(): U; } >a1 : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ const a2 = f.g; // () => number >a2 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f.g : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f.g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const a3 = f.g; // () => U >a3 : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f.g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const a4 = f.g; // () => number >a4 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f.g : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f.g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >g : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const a5 = f['g']; // () => number >a5 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f['g'] : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f['g'] : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >'g' : "g" > : ^^^ @@ -77,7 +77,7 @@ const a6 = f['g']; // Error >f : ^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >number : any > : ^^^ >['g'] : string[] @@ -87,15 +87,15 @@ const a6 = f['g']; // Error const a7 = (f)['g']; >a7 : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(f)['g'] : () => U -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(f) : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >'g' : "g" > : ^^^ @@ -109,7 +109,7 @@ const a8 = f; // Relational operator error >f : ^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >number : any > : ^^^ > : number @@ -119,15 +119,15 @@ const a8 = f; // Relational operator error const a9 = (f); // Error, no applicable signatures >a9 : { g(): U; } -> : ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^ ^^^ >(f) : { g(): U; } -> : ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^ ^^^ >(f) : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ // Type arguments with `?.` token @@ -137,7 +137,7 @@ const b1 = f?.; // Error, `(` expected >f?. : number > : ^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ const b2 = f?.(); >b2 : number @@ -145,7 +145,7 @@ const b2 = f?.(); >f?.() : number > : ^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ const b3 = f?.(); >b3 : number @@ -153,9 +153,9 @@ const b3 = f?.(); >f?.() : number > : ^^^^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ const b4 = f?.(); // Error, expected no type arguments >b4 : number @@ -163,27 +163,27 @@ const b4 = f?.(); // Error, expected no type arguments >f?.() : number > : ^^^^^^ >f : { (): number; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ // Instantiation expression and binary operators declare let g: ((x: T) => T) | undefined; >g : ((x: T) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >x : T > : ^ const c1 = g || ((x: string) => x); >c1 : (x: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >g || ((x: string) => x) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >g : ((x: string) => string) | undefined -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >g : ((x: T) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >((x: string) => x) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >(x: string) => x : (x: string) => string @@ -195,13 +195,13 @@ const c1 = g || ((x: string) => x); const c2 = g ?? ((x: string) => x); >c2 : (x: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >g ?? ((x: string) => x) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >g : ((x: string) => string) | undefined -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >g : ((x: T) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >((x: string) => x) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >(x: string) => x : (x: string) => string @@ -217,9 +217,9 @@ const c3 = g && ((x: string) => x); >g && ((x: string) => x) : ((x: string) => string) | undefined > : ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >g : ((x: string) => string) | undefined -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ >g : ((x: T) => T) | undefined -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >((x: string) => x) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >(x: string) => x : (x: string) => string @@ -237,7 +237,7 @@ const x1 = f >f(true) : true > : ^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -255,7 +255,7 @@ const r1 = f < true > true; >f < true : boolean > : ^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ >true : true @@ -269,7 +269,7 @@ const r2 = f < true > +1; >f < true : boolean > : ^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ >+1 : 1 @@ -285,7 +285,7 @@ const r3 = f < true > -1; >f < true : boolean > : ^^^^^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ >-1 : -1 @@ -297,11 +297,11 @@ const r3 = f < true > -1; const x2 = f >x2 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -311,11 +311,11 @@ true; const x3 = f; >x3 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -325,11 +325,11 @@ true; const x4 = f >x4 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -339,11 +339,11 @@ if (true) {} const x5 = f >x5 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -355,11 +355,11 @@ let yy = 0; const x6 = f >x6 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -367,11 +367,11 @@ interface I {} let x10 = f >x10 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -387,11 +387,11 @@ this.bar() let x11 = f >x11 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -401,11 +401,11 @@ function bar() {} let x12 = f >x12 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -415,11 +415,11 @@ class C {} let x13 = f >x13 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -431,11 +431,11 @@ bar() let x14 = f >x14 : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): true; g(): U; } -> : ^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ >true : true > : ^^^^ @@ -453,11 +453,11 @@ class C1 { static specialFoo = f >specialFoo : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ static bar = 123 >bar : number @@ -472,11 +472,11 @@ class C2 { public specialFoo = f >specialFoo : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ public bar = 123 >bar : number @@ -491,11 +491,11 @@ class C3 { private specialFoo = f >specialFoo : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ private bar = 123 >bar : number @@ -510,11 +510,11 @@ class C4 { protected specialFoo = f >specialFoo : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): string; g(): U; } -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^ >f : { (): T; g(): U; } -> : ^^^ ^^^^^ ^^^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^^^ ^^^ protected bar = 123 >bar : number diff --git a/tests/baselines/reference/instantiationExpressions.types b/tests/baselines/reference/instantiationExpressions.types index 42a9c0119da2a..b9303ed2f0208 100644 --- a/tests/baselines/reference/instantiationExpressions.types +++ b/tests/baselines/reference/instantiationExpressions.types @@ -3,13 +3,13 @@ === instantiationExpressions.ts === declare function fx(x: T): T; >fx : { (x: T): T; (x: T_1, n: number): T_1; (t: [T_1, U]): [T_1, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ declare function fx(x: T, n: number): T; >fx : { (x: T_1): T_1; (x: T, n: number): T; (t: [T_1, U]): [T_1, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ >n : number @@ -17,7 +17,7 @@ declare function fx(x: T, n: number): T; declare function fx(t: [T, U]): [T, U]; >fx : { (x: T_1): T_1; (x: T_1, n: number): T_1; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >t : [T, U] > : ^^^^^^ @@ -27,27 +27,27 @@ function f1() { let f0 = fx<>; // Error >f0 : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >fx<> : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ let f1 = fx; // { (x: string): string; (x: string, n: number): string; } >f1 : { (x: string): string; (x: string, n: number): string; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >fx : { (x: string): string; (x: string, n: number): string; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ let f2 = fx; // (t: [string, number]) => [string, number] >f2 : (t: [string, number]) => [string, number] -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >fx : (t: [string, number]) => [string, number] -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ let f3 = fx; // Error >f3 : {} @@ -55,32 +55,32 @@ function f1() { >fx : {} > : ^^ >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ } type T10 = typeof fx<>; // Error >T10 : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ type T11 = typeof fx; // { (x: string): string; (x: string, n: number): string; } >T11 : typeof fx > : >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ type T12 = typeof fx; // (t: [string, number]) => [string, number] >T12 : typeof fx > : >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ type T13 = typeof fx; // Error >T13 : typeof fx > : >fx : { (x: T): T; (x: T, n: number): T; (t: [T, U]): [T, U]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ function f2() { >f2 : () => void @@ -96,9 +96,9 @@ function f2() { const A1 = Array; // new (...) => string[] >A1 : { (arrayLength: number): string[]; (...items: string[]): string[]; new (arrayLength: number): string[]; new (...items: string[]): string[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; } -> : ^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >Array : { (arrayLength: number): string[]; (...items: string[]): string[]; new (arrayLength: number): string[]; new (...items: string[]): string[]; isArray(arg: any): arg is any[]; readonly prototype: any[]; } -> : ^^^ ^^ ^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ @@ -139,7 +139,7 @@ declare class C { static f(x: U): U[]; >f : (x: U) => U[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : U > : ^ } @@ -150,30 +150,30 @@ function f3() { let c1 = C; // { new (x: string): C; f(x: U): T[]; prototype: C; } >c1 : { new (x: string): C; prototype: C; f(x: U): U[]; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >C : { new (x: string): C; prototype: C; f(x: U): U[]; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ let f1 = C.f; // (x: string) => string[] >f1 : (x: string) => string[] -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >C.f : (x: string) => string[] -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >C.f : (x: U) => U[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >f : (x: U) => U[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } function f10(f: { (a: T): T, (a: U, b: number): U[] }) { >f10 : (f: { (a: T): T; (a: U, b: number): U[]; }) => void > : ^ ^^ ^^^^^^^^^ >f : { (a: T): T; (a: U, b: number): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : T > : ^ >a : U @@ -183,18 +183,18 @@ function f10(f: { (a: T): T, (a: U, b: number): U[] }) { let fs = f; // { (a: string): string; (a: string, b: number): string[]; } >fs : { (a: string): string; (a: string, b: number): string[]; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^ +> : ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >f : { (a: string): string; (a: string, b: number): string[]; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^ +> : ^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >f : { (a: T): T; (a: U, b: number): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ } function f11(f: { (a: T): T, (a: string, b: number): string[] }) { >f11 : (f: { (a: T): T; (a: string, b: number): string[]; }) => void > : ^ ^^ ^^^^^^^^^ >f : { (a: T): T; (a: string, b: number): string[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >a : T > : ^ >a : string @@ -204,18 +204,18 @@ function f11(f: { (a: T): T, (a: string, b: number): string[] }) { let fs = f; // (a: string) => string >fs : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : { (a: T): T; (a: string, b: number): string[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ } function f12(f: { (a: T): T, x: string }) { >f12 : (f: { (a: T): T; x: string; }) => void > : ^ ^^ ^^^^^^^^^ >f : { (a: T): T; x: string; } -> : ^^^ ^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^ ^^^ >a : T > : ^ >x : string @@ -223,11 +223,11 @@ function f12(f: { (a: T): T, x: string }) { let fs = f; // { (a: string): string; x: string; } >fs : { (a: string): string; x: string; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^^^^^^^^^^ ^^^^^ ^^^ >f : { (a: string): string; x: string; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^^^^^^^^^^ ^^^^^ ^^^ >f : { (a: T): T; x: string; } -> : ^^^ ^^ ^^ ^^^ ^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^ ^^^ } function f13(f: { x: string, y: string }) { @@ -253,7 +253,7 @@ function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { >f14 : (f: { new (a: T): T; new (a: U, b: number): U[]; }) => void > : ^ ^^ ^^^^^^^^^ >f : { new (a: T): T; new (a: U, b: number): U[]; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : T > : ^ >a : U @@ -263,18 +263,18 @@ function f14(f: { new (a: T): T, new (a: U, b: number): U[] }) { let fs = f; // { new (a: string): string; new (a: string, b: number): string[]; } >fs : { new (a: string): string; new (a: string, b: number): string[]; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >f : { new (a: string): string; new (a: string, b: number): string[]; } -> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^ ^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >f : { new (a: T): T; new (a: U, b: number): U[]; } -> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ } function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { >f15 : (f: { new (a: T): T; (a: U, b: number): U[]; }) => void > : ^ ^^ ^^^^^^^^^ >f : { (a: U, b: number): U[]; new (a: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >a : T > : ^ >a : U @@ -284,18 +284,18 @@ function f15(f: { new (a: T): T, (a: U, b: number): U[] }) { let fs = f; // { new (a: string): string; (a: string, b: number): string[]; } >fs : { (a: string, b: number): string[]; new (a: string): string; } -> : ^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^ >f : { (a: string, b: number): string[]; new (a: string): string; } -> : ^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^^^ ^^^ >f : { (a: U, b: number): U[]; new (a: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ } function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { >f16 : (f: { new (a: T): T; (a: string, b: number): string[]; }) => void > : ^ ^^ ^^^^^^^^^ >f : { (a: string, b: number): string[]; new (a: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ >a : T > : ^ >a : string @@ -305,18 +305,18 @@ function f16(f: { new (a: T): T, (a: string, b: number): string[] }) { let fs = f; // new (a: string) => string >fs : new (a: string) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^^^^^ >f : new (a: string) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^^^^^ >f : { (a: string, b: number): string[]; new (a: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ } function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { >f17 : (f: { (a: T): T; new (a: string, b: number): string[]; }) => void > : ^ ^^ ^^^^^^^^^ >f : { (a: T): T; new (a: string, b: number): string[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : T > : ^ >a : string @@ -326,18 +326,18 @@ function f17(f: { (a: T): T, new (a: string, b: number): string[] }) { let fs = f; // (a: string) => string >fs : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : { (a: T): T; new (a: string, b: number): string[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ } function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { >f20 : (f: ((a: T) => T) & ((a: U, b: number) => U[])) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) & ((a: U, b: number) => U[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : U @@ -347,18 +347,18 @@ function f20(f: ((a: T) => T) & ((a: U, b: number) => U[])) { let fs = f; // ((a: string) => string) & ((a: string, b: number) => string[]]) >fs : ((a: string) => string) & ((a: string, b: number) => string[]) -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : ((a: string) => string) & ((a: string, b: number) => string[]) -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : ((a: T) => T) & ((a: U, b: number) => U[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { >f21 : (f: ((a: T) => T) & ((a: string, b: number) => string[])) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) & ((a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -368,18 +368,18 @@ function f21(f: ((a: T) => T) & ((a: string, b: number) => string[])) { let fs = f; // (a: string) => string >fs : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : ((a: T) => T) & ((a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f22(f: ((a: T) => T) & { x: string }) { >f22 : (f: ((a: T) => T) & { x: string; }) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) & { x: string; } -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^^ >a : T > : ^ >x : string @@ -387,11 +387,11 @@ function f22(f: ((a: T) => T) & { x: string }) { let fs = f; // ((a: string) => string) & { x: string } >fs : ((a: string) => string) & { x: string; } -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ >f : ((a: string) => string) & { x: string; } -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ >f : ((a: T) => T) & { x: string; } -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^^ } function f23(f: { x: string } & { y: string }) { @@ -417,7 +417,7 @@ function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { >f24 : (f: (new (a: T) => T) & (new (a: U, b: number) => U[])) => void > : ^ ^^ ^^^^^^^^^ >f : (new (a: T) => T) & (new (a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : U @@ -427,18 +427,18 @@ function f24(f: (new (a: T) => T) & (new (a: U, b: number) => U[])) { let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) >fs : (new (a: string) => string) & (new (a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: string) => string) & (new (a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: T) => T) & (new (a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { >f25 : (f: (new (a: T) => T) & ((a: U, b: number) => U[])) => void > : ^ ^^ ^^^^^^^^^ >f : (new (a: T) => T) & ((a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : U @@ -448,18 +448,18 @@ function f25(f: (new (a: T) => T) & ((a: U, b: number) => U[])) { let fs = f; // (new (a: string) => string) & ((a: string, b: number) => string[]]) >fs : (new (a: string) => string) & ((a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: string) => string) & ((a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: T) => T) & ((a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { >f26 : (f: (new (a: T) => T) & ((a: string, b: number) => string[])) => void > : ^ ^^ ^^^^^^^^^ >f : (new (a: T) => T) & ((a: string, b: number) => string[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -469,18 +469,18 @@ function f26(f: (new (a: T) => T) & ((a: string, b: number) => string[])) { let fs = f; // new (a: string) => string >fs : new (a: string) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^^^^^ >f : new (a: string) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^^^^^ >f : (new (a: T) => T) & ((a: string, b: number) => string[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { >f27 : (f: ((a: T) => T) & (new (a: string, b: number) => string[])) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) & (new (a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -490,18 +490,18 @@ function f27(f: ((a: T) => T) & (new (a: string, b: number) => string[])) { let fs = f; // (a: string) => string >fs : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : (a: string) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^ >f : ((a: T) => T) & (new (a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { >f30 : (f: ((a: T) => T) | ((a: U, b: number) => U[])) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) | ((a: U, b: number) => U[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : U @@ -511,18 +511,18 @@ function f30(f: ((a: T) => T) | ((a: U, b: number) => U[])) { let fs = f; // ((a: string) => string) | ((a: string, b: number) => string[]]) >fs : ((a: string) => string) | ((a: string, b: number) => string[]) -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : ((a: string) => string) | ((a: string, b: number) => string[]) -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : ((a: T) => T) | ((a: U, b: number) => U[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { >f31 : (f: ((a: T) => T) | ((a: string, b: number) => string[])) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) | ((a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -532,18 +532,18 @@ function f31(f: ((a: T) => T) | ((a: string, b: number) => string[])) { let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures >fs : ((a: string) => string) | {} -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ >f : ((a: string) => string) | {} -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ >f : ((a: T) => T) | ((a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f32(f: ((a: T) => T) | { x: string }) { >f32 : (f: ((a: T) => T) | { x: string; }) => void > : ^ ^^ ^^^^^^^^^ >f : { x: string; } | ((a: T) => T) -> : ^^^^^ ^^^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ ^ >a : T > : ^ >x : string @@ -551,11 +551,11 @@ function f32(f: ((a: T) => T) | { x: string }) { let fs = f; // ((a: string) => string) | { x: string } >fs : { x: string; } | ((a: string) => string) -> : ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^ >f : { x: string; } | ((a: string) => string) -> : ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^ >f : { x: string; } | ((a: T) => T) -> : ^^^^^ ^^^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^^^^^^^^^^ ^^ ^^^^^ ^ } function f33(f: { x: string } | { y: string }) { @@ -581,7 +581,7 @@ function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { >f34 : (f: (new (a: T) => T) | (new (a: U, b: number) => U[])) => void > : ^ ^^ ^^^^^^^^^ >f : (new (a: T) => T) | (new (a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : U @@ -591,18 +591,18 @@ function f34(f: (new (a: T) => T) | (new (a: U, b: number) => U[])) { let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) >fs : (new (a: string) => string) | (new (a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: string) => string) | (new (a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: T) => T) | (new (a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { >f35 : (f: (new (a: T) => T) | ((a: U, b: number) => U[])) => void > : ^ ^^ ^^^^^^^^^ >f : (new (a: T) => T) | ((a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : U @@ -612,18 +612,18 @@ function f35(f: (new (a: T) => T) | ((a: U, b: number) => U[])) { let fs = f; // (new (a: string) => string) | ((a: string, b: number) => string[]]) >fs : (new (a: string) => string) | ((a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: string) => string) | ((a: string, b: number) => string[]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^ >f : (new (a: T) => T) | ((a: U, b: number) => U[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { >f36 : (f: (new (a: T) => T) | ((a: string, b: number) => string[])) => void > : ^ ^^ ^^^^^^^^^ >f : (new (a: T) => T) | ((a: string, b: number) => string[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -633,18 +633,18 @@ function f36(f: (new (a: T) => T) | ((a: string, b: number) => string[])) { let fs = f; // Error, '(a: string, b: number) => string[]' has no applicable signatures >fs : (new (a: string) => string) | {} -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ >f : (new (a: string) => string) | {} -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ >f : (new (a: T) => T) | ((a: string, b: number) => string[]) -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { >f37 : (f: ((a: T) => T) | (new (a: string, b: number) => string[])) => void > : ^ ^^ ^^^^^^^^^ >f : ((a: T) => T) | (new (a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -654,37 +654,37 @@ function f37(f: ((a: T) => T) | (new (a: string, b: number) => string[])) { let fs = f; // Error, 'new (a: string, b: number) => string[]' has no applicable signatures >fs : ((a: string) => string) | {} -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ >f : ((a: string) => string) | {} -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ >f : ((a: T) => T) | (new (a: string, b: number) => string[]) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^ } function f38(x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) { >f38 : (x: A) => A) | ((x: B) => B[]), U>(f: T | U | ((x: C) => C[][])) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >x : A > : ^ >x : B > : ^ >f : T | U | ((x: C) => C[][]) -> : ^^^^^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ ^ >x : C > : ^ let fs = f; // U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) >fs : U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^ >f : U | ((x: string) => string) | ((x: string) => string[]) | ((x: string) => string[][]) -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^ >f : T | U | ((x: C) => C[][]) -> : ^^^^^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ ^ } function makeBox(value: T) { >makeBox : (value: T) => { value: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >value : T > : ^ @@ -699,7 +699,7 @@ type BoxFunc = typeof makeBox; // (value: T) => { value: T } >BoxFunc : typeof makeBox > : >makeBox : (value: T_1) => { value: T_1; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ type StringBoxFunc = BoxFunc; // (value: string) => { value: string } >StringBoxFunc : StringBoxFunc @@ -709,7 +709,7 @@ type Box = ReturnType>; // { value: T } >Box : { value: T; } > : ^^^^^^^^^^^^^ >makeBox : (value: T_1) => { value: T_1; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ type StringBox = Box; // { value: string } >StringBox : StringBox @@ -723,7 +723,7 @@ type A = InstanceType>; // U[] declare const g1: { >g1 : { (a: T): { a: T; }; new (b: U): { b: U; }; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ (a: T): { a: T }; >a : T @@ -742,7 +742,7 @@ type T30 = typeof g1; // { (a: V) => { a: V }; new (b: V) => { b: V }; } >T30 : typeof g1 > : >g1 : { (a: T): { a: T; }; new (b: U): { b: U; }; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ type T31 = ReturnType>; // { a: A } >T31 : { a: A; } @@ -754,7 +754,7 @@ type T32 = InstanceType>; // { b: B } declare const g2: { >g2 : { (a: T): T; new (b: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -769,17 +769,17 @@ type T40 = typeof g2; // Error >T40 : typeof g2 > : >g2 : { (a: T): T; new (b: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ type T41 = typeof g2; // Error >T41 : typeof g2 > : >g2 : { (a: T): T; new (b: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ declare const g3: { >g3 : { (a: T): T; new (b: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -794,11 +794,11 @@ type T50 = typeof g3; // (a: U) => U >T50 : typeof g3 > : >g3 : { (a: T): T; new (b: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^ type T51 = typeof g3; // (b: U) => U >T51 : typeof g3 > : >g3 : { (a: T): T; new (b: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/interfaceAssignmentCompat.types b/tests/baselines/reference/interfaceAssignmentCompat.types index f235305b6f434..4f16b8093b586 100644 --- a/tests/baselines/reference/interfaceAssignmentCompat.types +++ b/tests/baselines/reference/interfaceAssignmentCompat.types @@ -168,11 +168,11 @@ module M { >x.sort(CompareYeux) : IEye[] > : ^^^^^^ >x.sort : (compareFn?: (a: IEye, b: IEye) => number) => IEye[] -> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ >x : IEye[] > : ^^^^^^ >sort : (compareFn?: (a: IEye, b: IEye) => number) => IEye[] -> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ >CompareYeux : (a: IFrenchEye, b: IFrenchEye) => number > : ^ ^^ ^^ ^^ ^^^^^ @@ -183,11 +183,11 @@ module M { >x.sort(CompareEyes) : IEye[] > : ^^^^^^ >x.sort : (compareFn?: (a: IEye, b: IEye) => number) => IEye[] -> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ >x : IEye[] > : ^^^^^^ >sort : (compareFn?: (a: IEye, b: IEye) => number) => IEye[] -> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ >CompareEyes : (a: IEye, b: IEye) => number > : ^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/interfaceExtendsObjectIntersection.types b/tests/baselines/reference/interfaceExtendsObjectIntersection.types index f5ed7d6f05007..fbb97fa467f3d 100644 --- a/tests/baselines/reference/interfaceExtendsObjectIntersection.types +++ b/tests/baselines/reference/interfaceExtendsObjectIntersection.types @@ -69,7 +69,7 @@ type Constructor = new () => T; declare function Constructor(): Constructor; >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ class C1 extends Constructor() { x: string } >C1 : C1 @@ -77,7 +77,7 @@ class C1 extends Constructor() { x: string } >Constructor() : I1 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -87,7 +87,7 @@ class C2 extends Constructor() { x: string } >Constructor() : I2 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -97,7 +97,7 @@ class C3 extends Constructor() { x: string } >Constructor() : I3 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -107,7 +107,7 @@ class C4 extends Constructor() { x: string } >Constructor() : I4 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -117,7 +117,7 @@ class C5 extends Constructor() { x: string } >Constructor() : I5 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -127,7 +127,7 @@ class C6 extends Constructor() { x: string } >Constructor() : I6 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -137,7 +137,7 @@ class C7 extends Constructor() { x: string } >Constructor() : I7 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -241,7 +241,7 @@ class C20 extends Constructor>() { x: string } >Constructor>() : Partial > : ^^^^^^^^^^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -251,7 +251,7 @@ class C21 extends Constructor>() { x: string } >Constructor>() : Readonly > : ^^^^^^^^^^^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -261,7 +261,7 @@ class C22 extends Constructor>() { x: string } >Constructor>() : Identifiable > : ^^^^^^^^^^^^^^^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >x : string > : ^^^^^^ @@ -271,7 +271,7 @@ class C23 extends Constructor>() { x: string } >Constructor>() : Identifiable > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : number > : ^^^^^^ >x : string diff --git a/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.types b/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.types index 046676deafcfb..01fd0923c2ee0 100644 --- a/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.types +++ b/tests/baselines/reference/interfaceExtendsObjectIntersectionErrors.types @@ -51,7 +51,7 @@ type Constructor = new () => T; declare function Constructor(): Constructor; >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ class C1 extends Constructor() { a: string } >C1 : C1 @@ -59,7 +59,7 @@ class C1 extends Constructor() { a: string } >Constructor() : T1 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : string > : ^^^^^^ @@ -69,7 +69,7 @@ class C2 extends Constructor() { b: string } >Constructor() : T2 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : string > : ^^^^^^ @@ -79,7 +79,7 @@ class C3 extends Constructor() { length: string } >Constructor() : number[] > : ^^^^^^^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >length : string > : ^^^^^^ @@ -89,7 +89,7 @@ class C4 extends Constructor() { 0: number } >Constructor() : [string, number] > : ^^^^^^^^^^^^^^^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >0 : number > : ^^^^^^ @@ -99,7 +99,7 @@ class C5 extends Constructor() { c: number } >Constructor() : T5 > : ^^ >Constructor : () => Constructor -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >c : number > : ^^^^^^ diff --git a/tests/baselines/reference/interfaceWithPropertyOfEveryType.types b/tests/baselines/reference/interfaceWithPropertyOfEveryType.types index ebe5752bb6c6a..6206862882b0c 100644 --- a/tests/baselines/reference/interfaceWithPropertyOfEveryType.types +++ b/tests/baselines/reference/interfaceWithPropertyOfEveryType.types @@ -63,7 +63,7 @@ interface Foo { i: (x: T) => T; >i : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -100,7 +100,7 @@ var a: Foo = { >a : Foo > : ^^^ >{ a: 1, b: '', c: true, d: {}, e: null , f: [1], g: {}, h: (x: number) => 1, i: (x: T) => x, j: null, k: new C(), l: f1, m: M, n: {}, o: E.A} : { a: number; b: string; c: true; d: {}; e: null; f: number[]; g: {}; h: (x: number) => number; i: (x: T) => T; j: Foo; k: C; l: () => void; m: typeof M; n: {}; o: E; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ a: 1, >a : number @@ -156,9 +156,9 @@ var a: Foo = { i: (x: T) => x, >i : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/intersectionAsWeakTypeSource.types b/tests/baselines/reference/intersectionAsWeakTypeSource.types index 4d1f97cfc83c9..570a54693185a 100644 --- a/tests/baselines/reference/intersectionAsWeakTypeSource.types +++ b/tests/baselines/reference/intersectionAsWeakTypeSource.types @@ -55,7 +55,7 @@ type Brand = number & { __brand: T } declare function create(styles: T): { [P in keyof T]: Brand }; >create : (styles: T) => { [P in keyof T]: Brand; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >styles : T @@ -67,7 +67,7 @@ const wrapped = create({ first: { view: 0, styleMedia: "???" } }); >create({ first: { view: 0, styleMedia: "???" } }) : { first: Brand<{ view: number; styleMedia: string; }>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >create : (styles: T) => { [P in keyof T]: Brand; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ first: { view: 0, styleMedia: "???" } } : { first: { view: number; styleMedia: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >first : { view: number; styleMedia: string; } diff --git a/tests/baselines/reference/intersectionNarrowing.types b/tests/baselines/reference/intersectionNarrowing.types index 69f17ad48e2af..46f754835bd07 100644 --- a/tests/baselines/reference/intersectionNarrowing.types +++ b/tests/baselines/reference/intersectionNarrowing.types @@ -5,7 +5,7 @@ function f1(x: T & string | T & undefined) { >f1 : (x: (T & string) | (T & undefined)) => void -> : ^ ^^ ^^^ ^ ^ ^^^^^^^^^^ +> : ^^^^ ^^^ ^ ^ ^^^^^^^^^^ >x : (T & string) | (T & undefined) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -21,7 +21,7 @@ function f1(x: T & string | T & undefined) { function f2(x: T & string | T & undefined) { >f2 : (x: (T & string) | (T & undefined)) => void -> : ^ ^^ ^^^ ^ ^ ^^^^^^^^^^ +> : ^^^^ ^^^ ^ ^ ^^^^^^^^^^ >x : (T & string) | (T & undefined) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -46,7 +46,7 @@ function f2(x: T & string | T & undefined) { function f3(x: T & string | T & number) { >f3 : (x: (T & string) | (T & number)) => void -> : ^ ^^ ^^^ ^ ^ ^^^^^^^^^^ +> : ^^^^ ^^^ ^ ^ ^^^^^^^^^^ >x : (T & string) | (T & number) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -73,7 +73,7 @@ function f3(x: T & string | T & number) { function f4(x: T & 1 | T & 2) { >f4 : (x: (T & 1) | (T & 2)) => void -> : ^ ^^ ^^^ ^ ^ ^^^^^^^^^^ +> : ^^^^ ^^^ ^ ^ ^^^^^^^^^^ >x : (T & 1) | (T & 2) > : ^^^^^^^^^^^^^^^^^ @@ -101,7 +101,7 @@ function f4(x: T & 1 | T & 2) { function f5(x: T & number) { >f5 : (x: T & number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T & number > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types b/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types index 0f050e66c3a5e..acd4ef4a62716 100644 --- a/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types +++ b/tests/baselines/reference/intersectionOfTypeVariableHasApparentSignatures.types @@ -21,7 +21,7 @@ interface Props { declare function f(i: Component): void; >f : (i: Component) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >i : Component > : ^^^^^^^^^^^^ @@ -29,7 +29,7 @@ f({ >f({ props: { children: (({ x }) => { }) }}) : void > : ^^^^ >f : (i: Component) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ props: { children: (({ x }) => { }) }} : { props: { children: ({ x }: { x: number; }) => void; }; } > : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/intersectionPropertyCheck.types b/tests/baselines/reference/intersectionPropertyCheck.types index 556b332d60374..b545ab1557b80 100644 --- a/tests/baselines/reference/intersectionPropertyCheck.types +++ b/tests/baselines/reference/intersectionPropertyCheck.types @@ -51,7 +51,7 @@ let weak: { a?: { x?: number } } & { c?: string } = wrong; // Nested weak objec function foo(x: { a?: string }, y: T & { a: boolean }) { >foo : (x: { a?: string; }, y: T & { a: boolean; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { a?: string; } > : ^^^^^^ ^^^ >a : string | undefined @@ -80,7 +80,7 @@ interface Test { function test(value: T): Test { >test : (value: T) => Test -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ diff --git a/tests/baselines/reference/intersectionReduction.types b/tests/baselines/reference/intersectionReduction.types index b6ca4e9036281..bb3b3a4205bfd 100644 --- a/tests/baselines/reference/intersectionReduction.types +++ b/tests/baselines/reference/intersectionReduction.types @@ -267,7 +267,7 @@ type E = { kind: 'e', foo: unknown }; declare function f10(x: { foo: T }): T; >f10 : (x: { foo: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -287,7 +287,7 @@ let r1 = f10(a1); // unknown >f10(a1) : unknown > : ^^^^^^^ >f10 : (x: { foo: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a1 : A | D > : ^^^^^ @@ -297,7 +297,7 @@ let r2 = f10(a2); // string >f10(a2) : string > : ^^^^^^ >f10 : (x: { foo: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : A > : ^ @@ -508,7 +508,7 @@ const b: B2 = shouldBeB; // works function inGeneric(alsoShouldBeB: T & B2) { >inGeneric : (alsoShouldBeB: T & B2) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >alsoShouldBeB : T & B2 > : ^^^^^^ @@ -549,7 +549,7 @@ declare class CB { kind: 'b'; b: string; y: number }; function bar(x: T & CA) { >bar : (x: T & CA) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T & CA > : ^^^^^^ diff --git a/tests/baselines/reference/intersectionSatisfiesConstraint.types b/tests/baselines/reference/intersectionSatisfiesConstraint.types index e717f28d38203..b977b37059e2f 100644 --- a/tests/baselines/reference/intersectionSatisfiesConstraint.types +++ b/tests/baselines/reference/intersectionSatisfiesConstraint.types @@ -15,9 +15,9 @@ interface SecondInterface { const myFirstFunction = (param1: T) => { >myFirstFunction : (param1: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(param1: T) => { const newParam: T & { otherProperty: number } = Object.assign(param1, { otherProperty: 3 }) mySecondFunction(newParam)} : (param1: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >param1 : T > : ^ @@ -29,11 +29,11 @@ const myFirstFunction = (param1: T) >Object.assign(param1, { otherProperty: 3 }) : T & { otherProperty: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.assign : { (target: T_1, source: U): T_1 & U; (target: T_1, source1: U, source2: V): T_1 & U & V; (target: T_1, source1: U, source2: V, source3: W): T_1 & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T_1, source: U): T_1 & U; (target: T_1, source1: U, source2: V): T_1 & U & V; (target: T_1, source1: U, source2: V, source3: W): T_1 & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >param1 : T > : ^ >{ otherProperty: 3 } : { otherProperty: number; } @@ -47,16 +47,16 @@ const myFirstFunction = (param1: T) >mySecondFunction(newParam) : { commonProperty: number; otherProperty: number; } > : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >mySecondFunction : (newParam: T_1) => T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >newParam : (FirstInterface | SecondInterface) & { otherProperty: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ } const mySecondFunction = (newParam: T) => { >mySecondFunction : (newParam: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >(newParam: T) => { return newParam} : (newParam: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >commonProperty : number > : ^^^^^^ >otherProperty : number diff --git a/tests/baselines/reference/intersectionThisTypes.types b/tests/baselines/reference/intersectionThisTypes.types index 002b31db03e41..6d9a1308fa5dd 100644 --- a/tests/baselines/reference/intersectionThisTypes.types +++ b/tests/baselines/reference/intersectionThisTypes.types @@ -132,7 +132,7 @@ function f2(t: Thing5) { interface Component { extend(props: T): this & T; >extend : (props: T) => this & T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : T > : ^ } @@ -155,7 +155,7 @@ function test(label: Label) { >label.extend({ id: 67 }).extend({ tag: "hello" }) : Label & { id: number; } & { tag: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >label.extend({ id: 67 }).extend : (props: T) => (Label & { id: number; }) & T -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^ >label.extend({ id: 67 }) : Label & { id: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >label.extend : (props: T) => Label & T @@ -171,7 +171,7 @@ function test(label: Label) { >67 : 67 > : ^^ >extend : (props: T) => (Label & { id: number; }) & T -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^ >{ tag: "hello" } : { tag: string; } > : ^^^^^^^^^^^^^^^^ >tag : string diff --git a/tests/baselines/reference/intersectionTypeInference.types b/tests/baselines/reference/intersectionTypeInference.types index 6b946847277f2..3cc52fc78de95 100644 --- a/tests/baselines/reference/intersectionTypeInference.types +++ b/tests/baselines/reference/intersectionTypeInference.types @@ -3,7 +3,7 @@ === intersectionTypeInference.ts === function extend(obj1: T, obj2: U): T & U { >extend : (obj1: T, obj2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >obj1 : T > : ^ >obj2 : U @@ -56,7 +56,7 @@ var x = extend({ a: "hello" }, { b: 42 }); >extend({ a: "hello" }, { b: 42 }) : { a: string; } & { b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >extend : (obj1: T, obj2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ a: "hello" } : { a: string; } > : ^^^^^^^^^^^^^^ >a : string @@ -104,7 +104,7 @@ interface B { function foo(obj: A & B): T | U { >foo : (obj: A & B) => T | U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >obj : A & B > : ^^^^^^^^^^^ @@ -119,7 +119,7 @@ var z = foo({ a: "hello", b: 42 }); >foo({ a: "hello", b: 42 }) : string | number > : ^^^^^^^^^^^^^^^ >foo : (obj: A & B) => T | U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ a: "hello", b: 42 } : { a: string; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : string diff --git a/tests/baselines/reference/intersectionTypeInference1.types b/tests/baselines/reference/intersectionTypeInference1.types index 63f9439e7f208..b76c113016a4f 100644 --- a/tests/baselines/reference/intersectionTypeInference1.types +++ b/tests/baselines/reference/intersectionTypeInference1.types @@ -31,9 +31,9 @@ const parameterFn = (props:{store:string}) => alert(props.store) const brokenFunction = (f: (p: {dispatch: number} & OwnProps) => void) => (o: OwnProps) => o >brokenFunction : (f: (p: { dispatch: number; } & OwnProps) => void) => (o: OwnProps) => OwnProps -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^ >(f: (p: {dispatch: number} & OwnProps) => void) => (o: OwnProps) => o : (f: (p: { dispatch: number; } & OwnProps) => void) => (o: OwnProps) => OwnProps -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^ >f : (p: { dispatch: number; } & OwnProps) => void > : ^ ^^ ^^^^^ >p : { dispatch: number; } & OwnProps @@ -55,7 +55,7 @@ export const Form3 = brokenFunction(parameterFn)({store: "hello"}) >brokenFunction(parameterFn) : (o: { store: string; }) => { store: string; } > : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >brokenFunction : (f: (p: { dispatch: number; } & OwnProps) => void) => (o: OwnProps) => OwnProps -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^ >parameterFn : (props: { store: string; }) => void > : ^ ^^ ^^^^^^^^^ >{store: "hello"} : { store: string; } diff --git a/tests/baselines/reference/intersectionTypeInference2.types b/tests/baselines/reference/intersectionTypeInference2.types index d191520890ce3..db7c03b438daa 100644 --- a/tests/baselines/reference/intersectionTypeInference2.types +++ b/tests/baselines/reference/intersectionTypeInference2.types @@ -3,7 +3,7 @@ === intersectionTypeInference2.ts === declare function f(x: { prop: T }): T; >f : (x: { prop: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { prop: T; } > : ^^^^^^^^ ^^^ >prop : T @@ -27,7 +27,7 @@ f(a); // never >f(a) : never > : ^^^^^ >f : (x: { prop: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : { prop: string; } & { prop: number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^ ^^^ @@ -35,7 +35,7 @@ f(b); // never >f(b) : never > : ^^^^^ >f : (x: { prop: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : { prop: string & number; } > : ^^^^^^^^ ^^^ @@ -43,7 +43,7 @@ f(b); // never declare function f2(obj: {[K in keyof T]: T[K]}, key: Key): T[Key]; >f2 : (obj: { [K in keyof T]: T[K]; }, key: Key) => T[Key] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >key : Key @@ -61,7 +61,7 @@ f2(obj, 'a'); >f2(obj, 'a') : string > : ^^^^^^ >f2 : (obj: { [K in keyof T]: T[K]; }, key: Key) => T[Key] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: string; } & { b: string; } > : ^^^^^ ^^^^^^^^^^^ ^^^ >'a' : "a" @@ -71,7 +71,7 @@ f2(obj, 'b'); >f2(obj, 'b') : string > : ^^^^^^ >f2 : (obj: { [K in keyof T]: T[K]; }, key: Key) => T[Key] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: string; } & { b: string; } > : ^^^^^ ^^^^^^^^^^^ ^^^ >'b' : "b" diff --git a/tests/baselines/reference/intersectionTypeInference3.types b/tests/baselines/reference/intersectionTypeInference3.types index 7d1a6c2a650d4..bc8eac3221bda 100644 --- a/tests/baselines/reference/intersectionTypeInference3.types +++ b/tests/baselines/reference/intersectionTypeInference3.types @@ -41,11 +41,11 @@ const c1 = Array.from(a).concat(Array.from(b)); >Array.from(a) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >a : Set > : ^^^^^^ >concat : { (...items: ConcatArray[]): A[]; (...items: (A | ConcatArray)[]): A[]; } @@ -53,11 +53,11 @@ const c1 = Array.from(a).concat(Array.from(b)); >Array.from(b) : A[] > : ^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >b : Set > : ^^^^^^ @@ -65,7 +65,7 @@ const c1 = Array.from(a).concat(Array.from(b)); declare function from(): T[]; >from : () => T[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ const c2: ReadonlyArray = from(); >c2 : readonly A[] @@ -73,5 +73,5 @@ const c2: ReadonlyArray = from(); >from() : A[] > : ^^^ >from : () => T[] -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/intersectionType_useDefineForClassFields.types b/tests/baselines/reference/intersectionType_useDefineForClassFields.types index 5a189ee69cd41..e45773529aff6 100644 --- a/tests/baselines/reference/intersectionType_useDefineForClassFields.types +++ b/tests/baselines/reference/intersectionType_useDefineForClassFields.types @@ -10,7 +10,7 @@ type Foo = { function bar(_p: T): { new(): Foo } { >bar : (_p: T) => { new (): Foo; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_p : T > : ^ @@ -24,7 +24,7 @@ class Baz extends bar({ x: 1 }) { >bar({ x: 1 }) : Foo<{ x: number; }> > : ^^^^^^^^^^^^^^^^^^^ >bar : (_p: T) => { new (): Foo; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ x: 1 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/intersectionWithConflictingPrivates.types b/tests/baselines/reference/intersectionWithConflictingPrivates.types index 811ac618efe45..5248828a1c339 100644 --- a/tests/baselines/reference/intersectionWithConflictingPrivates.types +++ b/tests/baselines/reference/intersectionWithConflictingPrivates.types @@ -221,11 +221,11 @@ class Foo { >Promise.resolve(undefined) : Promise > : ^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ } diff --git a/tests/baselines/reference/intersectionWithUnionConstraint.types b/tests/baselines/reference/intersectionWithUnionConstraint.types index 43435329a10f4..9c514d41cc98c 100644 --- a/tests/baselines/reference/intersectionWithUnionConstraint.types +++ b/tests/baselines/reference/intersectionWithUnionConstraint.types @@ -3,7 +3,7 @@ === intersectionWithUnionConstraint.ts === function f1(x: T & U) { >f1 : (x: T & U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T & U > : ^^^^^ @@ -17,7 +17,7 @@ function f1(x: T & U) { function f2(x: T & U) { >f2 : (x: T & U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T & U > : ^^^^^ @@ -64,7 +64,7 @@ type T1 = (string | number | undefined) & (string | null | undefined); // strin function f3(x: T & (number | object | undefined)) { >f3 : (x: T & (number | object | undefined)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : (T & undefined) | (T & number) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -77,7 +77,7 @@ function f3(x: T & (number | object | und function f4(x: T & (number | object)) { >f4 : (x: T & (number | object)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T & number > : ^^^^^^^^^^ @@ -90,7 +90,7 @@ function f4(x: T & (number | object)) { function f5(x: keyof T & U) { >f5 : (x: keyof T & U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : keyof T & U > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/intersectionsAndEmptyObjects.types b/tests/baselines/reference/intersectionsAndEmptyObjects.types index 79436aeb13b56..b4292a7a1dfcc 100644 --- a/tests/baselines/reference/intersectionsAndEmptyObjects.types +++ b/tests/baselines/reference/intersectionsAndEmptyObjects.types @@ -89,9 +89,9 @@ type Dictionary = { [name: string]: string }; const intersectDictionaries = ( >intersectDictionaries : (d1: F1, d2: F2) => F1 & F2 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >( d1: F1, d2: F2,): F1 & F2 => Object.assign({}, d1, d2) : (d1: F1, d2: F2) => F1 & F2 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ d1: F1, >d1 : F1 @@ -105,11 +105,11 @@ const intersectDictionaries = ( >Object.assign({}, d1, d2) : {} & F1 & F2 > : ^^^^^^^^^^^^ >Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ >d1 : F1 @@ -119,9 +119,9 @@ const intersectDictionaries = ( const testDictionary = (_value: T) => { }; >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(_value: T) => { } : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >_value : T > : ^ @@ -135,7 +135,7 @@ testDictionary(d1); >testDictionary(d1) : void > : ^^^^ >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >d1 : {} > : ^^ @@ -145,7 +145,7 @@ const d2 = intersectDictionaries(d1, d1); >intersectDictionaries(d1, d1) : {} > : ^^ >intersectDictionaries : (d1: F1, d2: F2) => F1 & F2 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >d1 : {} > : ^^ >d1 : {} @@ -155,7 +155,7 @@ testDictionary(d2); >testDictionary(d2) : void > : ^^^^ >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >d2 : {} > : ^^ @@ -176,7 +176,7 @@ testDictionary(d3); >testDictionary(d3) : void > : ^^^^ >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >d3 : { s: string; } > : ^^^^^^^^^^^^^^ @@ -186,7 +186,7 @@ const d4 = intersectDictionaries(d1, d3); >intersectDictionaries(d1, d3) : { s: string; } > : ^^^^^^^^^^^^^^ >intersectDictionaries : (d1: F1, d2: F2) => F1 & F2 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >d1 : {} > : ^^ >d3 : { s: string; } @@ -196,7 +196,7 @@ testDictionary(d4); >testDictionary(d4) : void > : ^^^^ >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >d4 : { s: string; } > : ^^^^^^^^^^^^^^ @@ -206,7 +206,7 @@ const d5 = intersectDictionaries(d3, d1); >intersectDictionaries(d3, d1) : { s: string; } > : ^^^^^^^^^^^^^^ >intersectDictionaries : (d1: F1, d2: F2) => F1 & F2 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >d3 : { s: string; } > : ^^^^^^^^^^^^^^ >d1 : {} @@ -216,7 +216,7 @@ testDictionary(d5); >testDictionary(d5) : void > : ^^^^ >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >d5 : { s: string; } > : ^^^^^^^^^^^^^^ @@ -226,7 +226,7 @@ const d6 = intersectDictionaries(d3, d3); >intersectDictionaries(d3, d3) : { s: string; } > : ^^^^^^^^^^^^^^ >intersectDictionaries : (d1: F1, d2: F2) => F1 & F2 -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >d3 : { s: string; } > : ^^^^^^^^^^^^^^ >d3 : { s: string; } @@ -236,7 +236,7 @@ testDictionary(d6); >testDictionary(d6) : void > : ^^^^ >testDictionary : (_value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >d6 : { s: string; } > : ^^^^^^^^^^^^^^ @@ -321,7 +321,7 @@ type Foo2 = { x: string } & { [K in number]: Foo2 }; declare function mock(_: Promise): {} & M; >mock : (_: Promise) => {} & M -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Promise > : ^^^^^^^^^^ @@ -329,7 +329,7 @@ mock(import('./ex')) >mock(import('./ex')) : {} > : ^^ >mock : (_: Promise) => {} & M -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >import('./ex') : Promise<{ default: typeof import("ex"); }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'./ex' : "./ex" diff --git a/tests/baselines/reference/intersectionsOfLargeUnions.types b/tests/baselines/reference/intersectionsOfLargeUnions.types index 676db1b32915d..848d93b6512c4 100644 --- a/tests/baselines/reference/intersectionsOfLargeUnions.types +++ b/tests/baselines/reference/intersectionsOfLargeUnions.types @@ -40,7 +40,7 @@ export function assertIsElement(node: Node | null): node is Element { export function assertNodeTagName< >assertNodeTagName : (node: Node | null, tagName: T) => node is U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ T extends keyof ElementTagNameMap, U extends ElementTagNameMap[T]>(node: Node | null, tagName: T): node is U { @@ -88,7 +88,7 @@ export function assertNodeTagName< export function assertNodeProperty< >assertNodeProperty : (node: Node | null, tagName: T, prop: P, value: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ T extends keyof ElementTagNameMap, P extends keyof ElementTagNameMap[T], @@ -106,7 +106,7 @@ export function assertNodeProperty< >assertNodeTagName(node, tagName) : boolean > : ^^^^^^^ >assertNodeTagName : (node: Node | null, tagName: T_1) => node is U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >node : Node | null > : ^^^^^^^^^^^ >tagName : T diff --git a/tests/baselines/reference/intersectionsOfLargeUnions2.types b/tests/baselines/reference/intersectionsOfLargeUnions2.types index fe2c3a63f1935..144b53dc5d17d 100644 --- a/tests/baselines/reference/intersectionsOfLargeUnions2.types +++ b/tests/baselines/reference/intersectionsOfLargeUnions2.types @@ -57,7 +57,7 @@ export function assertIsElement(node: Node | null): node is Element { export function assertNodeTagName< >assertNodeTagName : (node: Node | null, tagName: T) => node is U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ T extends keyof ElementTagNameMap, U extends ElementTagNameMap[T]>(node: Node | null, tagName: T): node is U { @@ -105,7 +105,7 @@ export function assertNodeTagName< export function assertNodeProperty< >assertNodeProperty : (node: Node | null, tagName: T, prop: P, value: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ T extends keyof ElementTagNameMap, P extends keyof ElementTagNameMap[T], @@ -123,7 +123,7 @@ export function assertNodeProperty< >assertNodeTagName(node, tagName) : boolean > : ^^^^^^^ >assertNodeTagName : (node: Node | null, tagName: T_1) => node is U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >node : Node | null > : ^^^^^^^^^^^ >tagName : T diff --git a/tests/baselines/reference/intraExpressionInferences.types b/tests/baselines/reference/intraExpressionInferences.types index 7078c2603beb4..4f41752c48ffd 100644 --- a/tests/baselines/reference/intraExpressionInferences.types +++ b/tests/baselines/reference/intraExpressionInferences.types @@ -5,7 +5,7 @@ declare function callIt(obj: { >callIt : (obj: { produce: (n: number) => T; consume: (x: T) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : { produce: (n: number) => T; consume: (x: T) => void; } > : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ @@ -27,7 +27,7 @@ callIt({ >callIt({ produce: () => 0, consume: n => n.toFixed()}) : void > : ^^^^ >callIt : (obj: { produce: (n: number) => T; consume: (x: T) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ produce: () => 0, consume: n => n.toFixed()} : { produce: () => number; consume: (n: number) => string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -61,7 +61,7 @@ callIt({ >callIt({ produce: _a => 0, consume: n => n.toFixed(),}) : void > : ^^^^ >callIt : (obj: { produce: (n: number) => T; consume: (x: T) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ produce: _a => 0, consume: n => n.toFixed(),} : { produce: (_a: number) => number; consume: (n: number) => string; } > : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -97,7 +97,7 @@ callIt({ >callIt({ produce() { return 0; }, consume: n => n.toFixed()}) : void > : ^^^^ >callIt : (obj: { produce: (n: number) => T; consume: (x: T) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ produce() { return 0; }, consume: n => n.toFixed()} : { produce(): number; consume: (n: number) => string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -130,7 +130,7 @@ callIt({ declare function callItT(obj: [(n: number) => T, (x: T) => void]): void; >callItT : (obj: [(n: number) => T, (x: T) => void]) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : [(n: number) => T, (x: T) => void] > : ^^ ^^ ^^^^^ ^^^ ^^ ^^^^^ ^ >n : number @@ -142,7 +142,7 @@ callItT([() => 0, n => n.toFixed()]); >callItT([() => 0, n => n.toFixed()]) : void > : ^^^^ >callItT : (obj: [(n: number) => T, (x: T) => void]) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[() => 0, n => n.toFixed()] : [() => number, (n: number) => string] > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >() => 0 : () => number @@ -166,7 +166,7 @@ callItT([_a => 0, n => n.toFixed()]); >callItT([_a => 0, n => n.toFixed()]) : void > : ^^^^ >callItT : (obj: [(n: number) => T, (x: T) => void]) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[_a => 0, n => n.toFixed()] : [(_a: number) => number, (n: number) => string] > : ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >_a => 0 : (_a: number) => number @@ -206,9 +206,9 @@ interface MyInterface { const inferTypeFn = (generic: MyInterface) => generic; >inferTypeFn : (generic: MyInterface) => MyInterface -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >(generic: MyInterface) => generic : (generic: MyInterface) => MyInterface -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >generic : MyInterface > : ^^^^^^^^^^^^^^ >generic : MyInterface @@ -220,7 +220,7 @@ const myGeneric = inferTypeFn({ >inferTypeFn({ retrieveGeneric: parameter => 5, operateWithGeneric: generic => generic.toFixed()}) : MyInterface > : ^^^^^^^^^^^^^^^^^^^ >inferTypeFn : (generic: MyInterface) => MyInterface -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >{ retrieveGeneric: parameter => 5, operateWithGeneric: generic => generic.toFixed()} : { retrieveGeneric: (parameter: string) => number; operateWithGeneric: (generic: number) => string; } > : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -256,7 +256,7 @@ const myGeneric = inferTypeFn({ function make(o: { mutations: M, action: (m: M) => void }) { } >make : (o: { mutations: M; action: (m: M) => void; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >o : { mutations: M; action: (m: M) => void; } > : ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >mutations : M @@ -270,7 +270,7 @@ make({ >make({ mutations: { foo() { } }, action: (a) => { a.foo() }}) : void > : ^^^^ >make : (o: { mutations: M; action: (m: M) => void; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >{ mutations: { foo() { } }, action: (a) => { a.foo() }} : { mutations: { foo(): void; }; action: (a: { foo(): void; }) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -307,7 +307,7 @@ make({ declare function foo(options: { a: A, b: (a: A) => void }): void; >foo : (options: { a: A; b: (a: A) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >options : { a: A; b: (a: A) => void; } > : ^^^^^ ^^^^^ ^^^ >a : A @@ -321,7 +321,7 @@ foo({ >foo({ a: () => { return 42 }, b(a) {},}) : void > : ^^^^ >foo : (options: { a: A; b: (a: A) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ a: () => { return 42 }, b(a) {},} : { a: () => 42; b(a: () => 42): void; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -345,7 +345,7 @@ foo({ >foo({ a: function () { return 42 }, b(a) {},}) : void > : ^^^^ >foo : (options: { a: A; b: (a: A) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ a: function () { return 42 }, b(a) {},} : { a: () => 42; b(a: () => 42): void; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -369,7 +369,7 @@ foo({ >foo({ a() { return 42 }, b(a) {},}) : void > : ^^^^ >foo : (options: { a: A; b: (a: A) => void; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ a() { return 42 }, b(a) {},} : { a(): 42; b(a: () => 42): void; } > : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -413,7 +413,7 @@ type Chain = { function test(foo: Chain) {} >test : (foo: Chain) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >foo : Chain > : ^^^^^^^^^^^^^ @@ -421,7 +421,7 @@ test({ >test({ a: () => 0, b: (a) => 'a', c: (b) => { const x: string = b; }}) : void > : ^^^^ >test : (foo: Chain) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >{ a: () => 0, b: (a) => 'a', c: (b) => { const x: string = b; }} : { a: () => number; b: (a: number) => string; c: (b: string) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -463,7 +463,7 @@ test({ >test({ a: () => 0, b: (a) => a, c: (b) => { const x: number = b; }}) : void > : ^^^^ >test : (foo: Chain) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >{ a: () => 0, b: (a) => a, c: (b) => { const x: number = b; }} : { a: () => number; b: (a: number) => number; c: (b: number) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -545,7 +545,7 @@ type MappingComponent = { declare function createMappingComponent(def: MappingComponent): void; >createMappingComponent : (def: MappingComponent) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >def : MappingComponent > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -553,7 +553,7 @@ createMappingComponent({ >createMappingComponent({ setup() { return { inputs: { num: new Wrapper(), str: new Wrapper() }, outputs: { bool: new Wrapper(), str: new Wrapper() } }; }, map(inputs) { return { bool: inputs.nonexistent, str: inputs.num, // Causes error } }}) : void > : ^^^^ >createMappingComponent : (def: MappingComponent) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ setup() { return { inputs: { num: new Wrapper(), str: new Wrapper() }, outputs: { bool: new Wrapper(), str: new Wrapper() } }; }, map(inputs) { return { bool: inputs.nonexistent, str: inputs.num, // Causes error } }} : { setup(): { inputs: { num: Wrapper; str: Wrapper; }; outputs: { bool: Wrapper; str: Wrapper; }; }; map(inputs: Unwrap<{ num: Wrapper; str: Wrapper; }>): { bool: any; str: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -649,7 +649,7 @@ createMappingComponent({ function simplified(props: { generator: () => T, receiver: (t: T) => any }) {} >simplified : (props: { generator: () => T; receiver: (t: T) => any; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >props : { generator: () => T; receiver: (t: T) => any; } > : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ >generator : () => T @@ -661,7 +661,7 @@ function simplified(props: { generator: () => T, receiver: (t: T) => any }) { function whatIWant(props: { generator: (bob: any) => T, receiver: (t: T) => any }) {} >whatIWant : (props: { generator: (bob: any) => T; receiver: (t: T) => any; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >props : { generator: (bob: any) => T; receiver: (t: T) => any; } > : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ >generator : (bob: any) => T @@ -675,7 +675,7 @@ function whatIWant(props: { generator: (bob: any) => T, receiver: (t: T) => a function nonObject(generator: (bob: any) => T, receiver: (t: T) => any) {} >nonObject : (generator: (bob: any) => T, receiver: (t: T) => any) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >generator : (bob: any) => T > : ^ ^^ ^^^^^ >bob : any @@ -689,7 +689,7 @@ simplified({ generator: () => 123, receiver: (t) => console.log(t + 2) }) >simplified({ generator: () => 123, receiver: (t) => console.log(t + 2) }) : void > : ^^^^ >simplified : (props: { generator: () => T; receiver: (t: T) => any; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >{ generator: () => 123, receiver: (t) => console.log(t + 2) } : { generator: () => number; receiver: (t: number) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >generator : () => number @@ -723,7 +723,7 @@ whatIWant({ generator: (bob) => bob ? 1 : 2, receiver: (t) => console.log(t + 2) >whatIWant({ generator: (bob) => bob ? 1 : 2, receiver: (t) => console.log(t + 2) }) : void > : ^^^^ >whatIWant : (props: { generator: (bob: any) => T; receiver: (t: T) => any; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >{ generator: (bob) => bob ? 1 : 2, receiver: (t) => console.log(t + 2) } : { generator: (bob: any) => 2 | 1; receiver: (t: 2 | 1) => void; } > : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >generator : (bob: any) => 2 | 1 @@ -765,7 +765,7 @@ nonObject((bob) => bob ? 1 : 2, (t) => console.log(t + 2)) >nonObject((bob) => bob ? 1 : 2, (t) => console.log(t + 2)) : void > : ^^^^ >nonObject : (generator: (bob: any) => T, receiver: (t: T) => any) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(bob) => bob ? 1 : 2 : (bob: any) => 2 | 1 > : ^ ^^^^^^^^^^^^^^^ >bob : any @@ -817,7 +817,7 @@ interface Opts { function example(options: Opts) { >example : (options: Opts) => (params: TParams) => TMapped -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ >options : Opts > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -871,7 +871,7 @@ example({ >example({ fetch: (params: Params) => 123, map: (number) => String(number)}) : (params: Params) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >example : (options: Opts) => (params: TParams) => TMapped -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ >{ fetch: (params: Params) => 123, map: (number) => String(number)} : { fetch: (params: Params) => number; map: (number: number) => string; } > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -905,7 +905,7 @@ example({ >example({ fetch: (params: Params, foo: number) => 123, map: (number) => String(number)}) : (params: Params) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >example : (options: Opts) => (params: TParams) => TMapped -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ >{ fetch: (params: Params, foo: number) => 123, map: (number) => String(number)} : { fetch: (params: Params, foo: number) => number; map: (number: number) => string; } > : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -941,7 +941,7 @@ example({ >example({ fetch: (params: Params, foo) => 123, map: (number) => String(number)}) : (params: Params) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >example : (options: Opts) => (params: TParams) => TMapped -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^ >{ fetch: (params: Params, foo) => 123, map: (number) => String(number)} : { fetch: (params: Params, foo: number) => number; map: (number: number) => string; } > : ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -977,7 +977,7 @@ example({ declare const branch: >branch : (_: { test: T; if: (t: T) => t is U; then: (u: U) => void; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ (_: { test: T, if: (t: T) => t is U, then: (u: U) => void }) => void >_ : { test: T; if: (t: T) => t is U; then: (u: U) => void; } @@ -1001,7 +1001,7 @@ branch({ >branch({ test: x, if: (t): t is "a" => t === "a", then: u => { let test1: "a" = u }}) : void > : ^^^^ >branch : (_: { test: T; if: (t: T) => t is U; then: (u: U) => void; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ test: x, if: (t): t is "a" => t === "a", then: u => { let test1: "a" = u }} : { test: "a" | "b"; if: (t: "a" | "b") => t is "a"; then: (u: "a") => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ @@ -1057,7 +1057,7 @@ interface Props { declare function Foo(props: Props): null; >Foo : (props: Props) => null -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : Props > : ^^^^^^^^ @@ -1065,7 +1065,7 @@ Foo({ >Foo({ ...{ a: (x) => 10, b: (arg) => { arg.toString(); }, },}) : null > : ^^^^ >Foo : (props: Props) => null -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ ...{ a: (x) => 10, b: (arg) => { arg.toString(); }, },} : { a: (x: string) => number; b: (arg: number) => void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -1107,7 +1107,7 @@ Foo({ declare function nested(arg: { >nested : (arg: { prop: { produce: (arg1: number) => T; consume: (arg2: T) => void; }; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : { prop: { produce: (arg1: number) => T; consume: (arg2: T) => void; }; } > : ^^^^^^^^ ^^^ @@ -1136,7 +1136,7 @@ const resNested = nested({ >nested({ prop: { produce: (a) => [a], consume: (arg) => arg.join(","), },}) : number[] > : ^^^^^^^^ >nested : (arg: { prop: { produce: (arg1: number) => T; consume: (arg2: T) => void; }; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ prop: { produce: (a) => [a], consume: (arg) => arg.join(","), },} : { prop: { produce: (a: number) => number[]; consume: (arg: number[]) => string; }; } > : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1181,7 +1181,7 @@ const resNested = nested({ declare function twoConsumers(arg: { >twoConsumers : (arg: { a: (arg: string) => T; consume1: (arg1: T) => void; consume2: (arg2: T) => void; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : { a: (arg: string) => T; consume1: (arg1: T) => void; consume2: (arg2: T) => void; } > : ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ @@ -1211,7 +1211,7 @@ const resTwoConsumers = twoConsumers({ >twoConsumers({ a: (arg) => [arg], consume1: (arg1) => {}, consume2: (arg2) => {},}) : string[] > : ^^^^^^^^ >twoConsumers : (arg: { a: (arg: string) => T; consume1: (arg1: T) => void; consume2: (arg2: T) => void; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ a: (arg) => [arg], consume1: (arg1) => {}, consume2: (arg2) => {},} : { a: (arg: string) => string[]; consume1: (arg1: string[]) => void; consume2: (arg2: string[]) => void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -1247,7 +1247,7 @@ const resTwoConsumers = twoConsumers({ declare function multipleProducersBeforeConsumers(arg: { >multipleProducersBeforeConsumers : (arg: { a: (arg: string) => T; b: (arg: string) => T2; consume1: (arg1: T) => void; consume2: (arg2: T2) => void; }) => [T, T2] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >arg : { a: (arg: string) => T; b: (arg: string) => T2; consume1: (arg1: T) => void; consume2: (arg2: T2) => void; } > : ^^^^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ @@ -1283,7 +1283,7 @@ const resMultipleProducersBeforeConsumers = multipleProducersBeforeConsumers({ >multipleProducersBeforeConsumers({ a: (arg) => [arg], b: (arg) => Number(arg), consume1: (arg1) => {}, consume2: (arg2) => {},}) : [string[], number] > : ^^^^^^^^^^^^^^^^^^ >multipleProducersBeforeConsumers : (arg: { a: (arg: string) => T; b: (arg: string) => T2; consume1: (arg1: T) => void; consume2: (arg2: T2) => void; }) => [T, T2] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >{ a: (arg) => [arg], b: (arg) => Number(arg), consume1: (arg1) => {}, consume2: (arg2) => {},} : { a: (arg: string) => string[]; b: (arg: string) => number; consume1: (arg1: string[]) => void; consume2: (arg2: number) => void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ @@ -1333,7 +1333,7 @@ const resMultipleProducersBeforeConsumers = multipleProducersBeforeConsumers({ declare function withConditionalExpression(arg: { >withConditionalExpression : (arg: { a: (arg1: string) => T; b: (arg2: T) => T2; c: (arg2: T2) => T3; }) => [T, T2, T3] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >arg : { a: (arg1: string) => T; b: (arg2: T) => T2; c: (arg2: T2) => T3; } > : ^^^^^ ^^^^^ ^^^^^ ^^^ @@ -1363,7 +1363,7 @@ const resWithConditionalExpression = withConditionalExpression({ >withConditionalExpression({ a: (arg) => [arg], b: Math.random() ? (arg) => "first" as const : (arg) => "two" as const, c: (arg) => Boolean(arg),}) : [string[], "first" | "two", boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >withConditionalExpression : (arg: { a: (arg1: string) => T; b: (arg2: T) => T2; c: (arg2: T2) => T3; }) => [T, T2, T3] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >{ a: (arg) => [arg], b: Math.random() ? (arg) => "first" as const : (arg) => "two" as const, c: (arg) => Boolean(arg),} : { a: (arg: string) => string[]; b: ((arg: string[]) => "first") | ((arg: string[]) => "two"); c: (arg: "first" | "two") => boolean; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1427,7 +1427,7 @@ const resWithConditionalExpression = withConditionalExpression({ declare function onion(arg: { >onion : (arg: { a: (arg1: string) => T; nested: { b: (arg2: T) => T2; nested2: { c: (arg2: T2) => T3; }; }; }) => [T, T2, T3] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >arg : { a: (arg1: string) => T; nested: { b: (arg2: T) => T2; nested2: { c: (arg2: T2) => T3; }; }; } > : ^^^^^ ^^^^^^^^^^ ^^^ @@ -1467,7 +1467,7 @@ const resOnion = onion({ >onion({ a: (arg) => [arg], nested: { b: (arg) => arg.join(","), nested2: { c: (arg) => Boolean(arg), }, },}) : [string[], string, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >onion : (arg: { a: (arg1: string) => T; nested: { b: (arg2: T) => T2; nested2: { c: (arg2: T2) => T3; }; }; }) => [T, T2, T3] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >{ a: (arg) => [arg], nested: { b: (arg) => arg.join(","), nested2: { c: (arg) => Boolean(arg), }, },} : { a: (arg: string) => string[]; nested: { b: (arg: string[]) => string; nested2: { c: (arg: string) => boolean; }; }; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1533,7 +1533,7 @@ const resOnion = onion({ declare function onion2(arg: { >onion2 : (arg: { a: (arg1: string) => T; nested: { b: (arg2: T) => T2; c: (arg3: T) => T3; nested2: { d: (arg4: T3) => T4; }; }; }) => [T, T2, T3, T4] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >arg : { a: (arg1: string) => T; nested: { b: (arg2: T) => T2; c: (arg3: T) => T3; nested2: { d: (arg4: T3) => T4; }; }; } > : ^^^^^ ^^^^^^^^^^ ^^^ @@ -1579,7 +1579,7 @@ const resOnion2 = onion2({ >onion2({ a: (arg) => [arg], nested: { b: (arg) => arg.join(","), c: (arg) => Number(arg), nested2: { d: (arg) => Boolean(arg), }, },}) : [string[], string, number, boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >onion2 : (arg: { a: (arg1: string) => T; nested: { b: (arg2: T) => T2; c: (arg3: T) => T3; nested2: { d: (arg4: T3) => T4; }; }; }) => [T, T2, T3, T4] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ a: (arg) => [arg], nested: { b: (arg) => arg.join(","), c: (arg) => Number(arg), nested2: { d: (arg) => Boolean(arg), }, },} : { a: (arg: string) => string[]; nested: { b: (arg: string[]) => string; c: (arg: string[]) => number; nested2: { d: (arg: number) => boolean; }; }; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1659,7 +1659,7 @@ const resOnion2 = onion2({ declare function distant(args: { >distant : (args: { foo: { bar: { baz: { producer: (arg: string) => T; }; }; }; consumer: (val: T) => unknown; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >args : { foo: { bar: { baz: { producer: (arg: string) => T; }; }; }; consumer: (val: T) => unknown; } > : ^^^^^^^ ^^^^^^^^^^^^ ^^^ @@ -1698,7 +1698,7 @@ const distantRes = distant({ >distant({ foo: { bar: { baz: { producer: (arg) => 1, }, }, }, consumer: (val) => {},}) : number > : ^^^^^^ >distant : (args: { foo: { bar: { baz: { producer: (arg: string) => T; }; }; }; consumer: (val: T) => unknown; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo: { bar: { baz: { producer: (arg) => 1, }, }, }, consumer: (val) => {},} : { foo: { bar: { baz: { producer: (arg: string) => number; }; }; }; consumer: (val: number) => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/intraExpressionInferencesJsx.types b/tests/baselines/reference/intraExpressionInferencesJsx.types index 194a4452b0040..9399daae26941 100644 --- a/tests/baselines/reference/intraExpressionInferencesJsx.types +++ b/tests/baselines/reference/intraExpressionInferencesJsx.types @@ -94,9 +94,9 @@ type AnimatedViewProps = { const Component = ({ >Component : ({ animations, style, }: AnimatedViewProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >({ animations, style,}: AnimatedViewProps) => <> : ({ animations, style, }: AnimatedViewProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ animations, >animations : T @@ -114,7 +114,7 @@ const Component = ({ > { return ""; }}/> : JSX.Element > : ^^^^^^^^^^^ >Component : ({ animations, style, }: AnimatedViewProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ animations={{ >animations : { test: { kind: "a"; value: number; a: true; }; } @@ -166,7 +166,7 @@ const Component = ({ > { return ""; }}/> : JSX.Element > : ^^^^^^^^^^^ >Component : ({ animations, style, }: AnimatedViewProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ animations={{ >animations : { test: { kind: "a"; value: number; a: true; func(): { a: true; }; }; } @@ -234,7 +234,7 @@ const Component = ({ > { return { a: true, }; }, }, }} style={(anim) => { return ""; }}/> : JSX.Element > : ^^^^^^^^^^^ >Component : ({ animations, style, }: AnimatedViewProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ animations={{ >animations : { test: { kind: "a"; value: number; a: true; func: () => { a: true; }; }; } @@ -319,7 +319,7 @@ interface Props { function Foo(props: Props) { >Foo : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >props : Props > : ^^^^^^^^ @@ -334,7 +334,7 @@ function Foo(props: Props) { > 10} b={(arg) => { arg.toString(); }}/> : JSX.Element > : ^^^^^^^^^^^ >Foo : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ a={() => 10} >a : () => number @@ -366,7 +366,7 @@ function Foo(props: Props) { > 10} b={(arg) => { arg.toString(); }}/> : JSX.Element > : ^^^^^^^^^^^ >Foo : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ a={(x) => 10} >a : (x: string) => number @@ -400,7 +400,7 @@ function Foo(props: Props) { > 10, b: (arg) => { arg.toString(); },}} /> : JSX.Element > : ^^^^^^^^^^^ >Foo : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >{ a: (x) => 10, b: (arg) => { arg.toString(); },} : { a: (x: string) => number; b: (arg: number) => void; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/intrinsicTypes.types b/tests/baselines/reference/intrinsicTypes.types index 9d681b643e808..7ccc6f9d3b864 100644 --- a/tests/baselines/reference/intrinsicTypes.types +++ b/tests/baselines/reference/intrinsicTypes.types @@ -123,7 +123,7 @@ type MyUppercase = intrinsic; // Error function foo1(s: string, x: Uppercase, y: Uppercase) { >foo1 : (s: string, x: Uppercase, y: Uppercase) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s : string > : ^^^^^^ >x : Uppercase @@ -182,7 +182,7 @@ function foo1(s: string, x: Uppercase, y: Uppe function foo2(x: Uppercase) { >foo2 : (x: Uppercase) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : Uppercase > : ^^^^^^^^^^^^ @@ -195,13 +195,13 @@ function foo2(x: Uppercase) { declare function foo3(x: Uppercase): T; >foo3 : (x: Uppercase) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : Uppercase > : ^^^^^^^^^^^^ function foo4(x: Uppercase) { >foo4 : (x: Uppercase) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : Uppercase > : ^^^^^^^^^^^^ @@ -209,7 +209,7 @@ function foo4(x: Uppercase) { >foo3(x) : U > : ^ >foo3 : (x: Uppercase) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : Uppercase > : ^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/invalidAssignmentsToVoid.types b/tests/baselines/reference/invalidAssignmentsToVoid.types index 0798a52ae1360..bb27d93c454d9 100644 --- a/tests/baselines/reference/invalidAssignmentsToVoid.types +++ b/tests/baselines/reference/invalidAssignmentsToVoid.types @@ -97,7 +97,7 @@ x = M; function f(a: T) { >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ @@ -111,9 +111,9 @@ function f(a: T) { } x = f; >x = f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : void > : ^^^^ >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ diff --git a/tests/baselines/reference/invalidBooleanAssignments.types b/tests/baselines/reference/invalidBooleanAssignments.types index 3063ae15cd718..877213c01b8c3 100644 --- a/tests/baselines/reference/invalidBooleanAssignments.types +++ b/tests/baselines/reference/invalidBooleanAssignments.types @@ -99,7 +99,7 @@ M = x; function i(a: T) { >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/invalidConstraint1.types b/tests/baselines/reference/invalidConstraint1.types index e5bb184916f79..4e7869ea000a7 100644 --- a/tests/baselines/reference/invalidConstraint1.types +++ b/tests/baselines/reference/invalidConstraint1.types @@ -3,7 +3,7 @@ === invalidConstraint1.ts === function f() { >f : () => any -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^ >a : T > : ^ @@ -15,7 +15,7 @@ f(); // should error >f() : any > : ^^^ >f : () => any -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^ >a : number > : ^^^^^^ diff --git a/tests/baselines/reference/invalidEnumAssignments.types b/tests/baselines/reference/invalidEnumAssignments.types index 65b1ccb6daf98..efd8fece2fd66 100644 --- a/tests/baselines/reference/invalidEnumAssignments.types +++ b/tests/baselines/reference/invalidEnumAssignments.types @@ -85,7 +85,7 @@ e = ''; function f(a: T) { >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/invalidNumberAssignments.types b/tests/baselines/reference/invalidNumberAssignments.types index ca5f9729de819..8b9483f59fb9d 100644 --- a/tests/baselines/reference/invalidNumberAssignments.types +++ b/tests/baselines/reference/invalidNumberAssignments.types @@ -89,7 +89,7 @@ M = x; function i(a: T) { >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/invalidSplice.types b/tests/baselines/reference/invalidSplice.types index ff4aae7acd41b..90d63db26a830 100644 --- a/tests/baselines/reference/invalidSplice.types +++ b/tests/baselines/reference/invalidSplice.types @@ -7,11 +7,11 @@ var arr = [].splice(0,3,4,5); >[].splice(0,3,4,5) : any[] > : ^^^^^ >[].splice : { (start: number, deleteCount?: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^ >[] : undefined[] > : ^^^^^^^^^^^ >splice : { (start: number, deleteCount?: number): any[]; (start: number, deleteCount: number, ...items: any[]): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^ >0 : 0 > : ^ >3 : 3 diff --git a/tests/baselines/reference/invalidStringAssignments.types b/tests/baselines/reference/invalidStringAssignments.types index 5ee092d745ef6..dc3af734e3833 100644 --- a/tests/baselines/reference/invalidStringAssignments.types +++ b/tests/baselines/reference/invalidStringAssignments.types @@ -89,7 +89,7 @@ M = x; function i(a: T) { >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/invalidUndefinedAssignments.types b/tests/baselines/reference/invalidUndefinedAssignments.types index 0799484e33198..88d570bee9ade 100644 --- a/tests/baselines/reference/invalidUndefinedAssignments.types +++ b/tests/baselines/reference/invalidUndefinedAssignments.types @@ -93,7 +93,7 @@ M = x; function i(a: T) { } >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/invalidUndefinedValues.types b/tests/baselines/reference/invalidUndefinedValues.types index d87d4a6668827..6aeb7acabd58a 100644 --- a/tests/baselines/reference/invalidUndefinedValues.types +++ b/tests/baselines/reference/invalidUndefinedValues.types @@ -108,7 +108,7 @@ x = { f() { } } function f(a: T) { >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ @@ -121,10 +121,10 @@ function f(a: T) { } x = f; >x = f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : any >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ enum E { A } >E : E diff --git a/tests/baselines/reference/invalidVoidAssignments.types b/tests/baselines/reference/invalidVoidAssignments.types index 7967ebed09317..5f82923ffb9b6 100644 --- a/tests/baselines/reference/invalidVoidAssignments.types +++ b/tests/baselines/reference/invalidVoidAssignments.types @@ -87,7 +87,7 @@ M = x; function i(a: T) { >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/invalidVoidValues.types b/tests/baselines/reference/invalidVoidValues.types index a9eef384adb16..9a7f6b9168850 100644 --- a/tests/baselines/reference/invalidVoidValues.types +++ b/tests/baselines/reference/invalidVoidValues.types @@ -117,7 +117,7 @@ x = M; function f(a: T) { >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ @@ -131,9 +131,9 @@ function f(a: T) { } x = f; >x = f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : void > : ^^^^ >f : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ diff --git a/tests/baselines/reference/invariantGenericErrorElaboration.types b/tests/baselines/reference/invariantGenericErrorElaboration.types index fb17ecd2d4b44..a4fe94996fd12 100644 --- a/tests/baselines/reference/invariantGenericErrorElaboration.types +++ b/tests/baselines/reference/invariantGenericErrorElaboration.types @@ -15,7 +15,7 @@ const Foo = Obj({ foo: Num }) >Obj({ foo: Num }) : Obj<{ [_: string]: Runtype; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Obj : ; }>(fields: O) => Obj -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: Num } : { foo: Num; } > : ^^^^^^^^^^^^^ >foo : Num @@ -45,7 +45,7 @@ declare const Num: Num interface Obj }> extends Runtype<{[K in keyof O]: O[K]['witness'] }> {} declare function Obj }>(fields: O): Obj; >Obj : ; }>(fields: O) => Obj -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >_ : string > : ^^^^^^ >fields : O diff --git a/tests/baselines/reference/ipromise2.types b/tests/baselines/reference/ipromise2.types index 6e220c7a5577b..c768f79b5ba97 100644 --- a/tests/baselines/reference/ipromise2.types +++ b/tests/baselines/reference/ipromise2.types @@ -5,7 +5,7 @@ declare module Windows.Foundation { export interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -23,7 +23,7 @@ declare module Windows.Foundation { then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -41,7 +41,7 @@ declare module Windows.Foundation { then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -59,7 +59,7 @@ declare module Windows.Foundation { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/ipromise3.types b/tests/baselines/reference/ipromise3.types index dff6b03c5010e..b384b8e41eace 100644 --- a/tests/baselines/reference/ipromise3.types +++ b/tests/baselines/reference/ipromise3.types @@ -4,7 +4,7 @@ interface IPromise3 { then(success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void ): IPromise3; >then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U_1, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise3; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise3 > : ^ ^^ ^^^^^ >value : T @@ -18,7 +18,7 @@ interface IPromise3 { then(success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise3; >then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U_1, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise3; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise3 > : ^ ^^ ^^^^^ >value : T @@ -32,7 +32,7 @@ interface IPromise3 { then(success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void ): IPromise3; >then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise3; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -46,7 +46,7 @@ interface IPromise3 { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): IPromise3; >then : { (success?: (value: T) => IPromise3, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => IPromise3, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U_1, error?: (error: any) => IPromise3, progress?: (progress: any) => void): IPromise3; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise3; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/ipromise4.types b/tests/baselines/reference/ipromise4.types index 30b7bb4f4ce5c..dc40c2f44c17c 100644 --- a/tests/baselines/reference/ipromise4.types +++ b/tests/baselines/reference/ipromise4.types @@ -5,7 +5,7 @@ declare module Windows.Foundation { export interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -23,7 +23,7 @@ declare module Windows.Foundation { then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -41,7 +41,7 @@ declare module Windows.Foundation { then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -59,7 +59,7 @@ declare module Windows.Foundation { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void ): Windows.Foundation.IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): Windows.Foundation.IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Windows.Foundation.IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types index 7cec3b3c7d565..19db7f22b5b13 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.types +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.types @@ -157,7 +157,7 @@ module schema { get createValidator9(): (data: T) => T { >createValidator9 : (data: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : T > : ^ @@ -168,9 +168,9 @@ module schema { set createValidator10(v: (data: T) => T) { >createValidator10 : (data: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >v : (data: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : T > : ^ } diff --git a/tests/baselines/reference/isolatedDeclarationErrorsClassesExpressions.types b/tests/baselines/reference/isolatedDeclarationErrorsClassesExpressions.types index f35c5915cf8d2..64a4b4acb6c83 100644 --- a/tests/baselines/reference/isolatedDeclarationErrorsClassesExpressions.types +++ b/tests/baselines/reference/isolatedDeclarationErrorsClassesExpressions.types @@ -17,7 +17,7 @@ export const cls = class { function id any>(cls: T) { >id : any>(cls: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >a : any[] > : ^^^^^ >cls : T @@ -41,7 +41,7 @@ export class Mix extends id(Base) { >id(Base) : Base > : ^^^^ >id : any>(cls: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >Base : typeof Base > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/isolatedDeclarationErrorsObjects.types b/tests/baselines/reference/isolatedDeclarationErrorsObjects.types index 5eff377c54ebe..b20eb70eb1991 100644 --- a/tests/baselines/reference/isolatedDeclarationErrorsObjects.types +++ b/tests/baselines/reference/isolatedDeclarationErrorsObjects.types @@ -222,7 +222,7 @@ export let oWithAccessor = { function prop(v: T): T { return v } >prop : (v: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >v : T > : ^ >v : T @@ -284,7 +284,7 @@ export const oWithComputedProperties = { >prop(2) : 2 > : ^ >prop : (v: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >2 : 2 > : ^ >2 : 2 diff --git a/tests/baselines/reference/isomorphicMappedTypeInference.types b/tests/baselines/reference/isomorphicMappedTypeInference.types index 493eed099b05c..21738c4bd6f89 100644 --- a/tests/baselines/reference/isomorphicMappedTypeInference.types +++ b/tests/baselines/reference/isomorphicMappedTypeInference.types @@ -22,7 +22,7 @@ type Boxified = { function box(x: T): Box { >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -37,7 +37,7 @@ function box(x: T): Box { function unbox(x: Box): T { >unbox : (x: Box) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Box > : ^^^^^^ @@ -52,7 +52,7 @@ function unbox(x: Box): T { function boxify(obj: T): Boxified { >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -82,7 +82,7 @@ function boxify(obj: T): Boxified { >box(obj[k]) : Box]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >box : (x: T_1) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >obj[k] : T[Extract] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : T @@ -97,7 +97,7 @@ function boxify(obj: T): Boxified { function unboxify(obj: Boxified): T { >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Boxified > : ^^^^^^^^^^^ @@ -127,7 +127,7 @@ function unboxify(obj: Boxified): T { >unbox(obj[k]) : T[Extract] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unbox : (x: Box) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >obj[k] : Boxified[Extract] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj : Boxified @@ -142,7 +142,7 @@ function unboxify(obj: Boxified): T { function assignBoxified(obj: Boxified, values: T) { >assignBoxified : (obj: Boxified, values: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Boxified > : ^^^^^^^^^^^ >values : T @@ -211,7 +211,7 @@ function f1() { >boxify(v) : Boxified<{ a: number; b: string; c: boolean; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >v : { a: number; b: string; c: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -246,7 +246,7 @@ function f2() { >box(42) : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -256,7 +256,7 @@ function f2() { >box("hello") : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -266,7 +266,7 @@ function f2() { >box(true) : Box > : ^^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -277,7 +277,7 @@ function f2() { >unboxify(b) : { a: number; b: string; c: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -308,7 +308,7 @@ function f3() { >box(42) : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -318,7 +318,7 @@ function f3() { >box("hello") : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -328,7 +328,7 @@ function f3() { >box(true) : Box > : ^^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -337,7 +337,7 @@ function f3() { >assignBoxified(b, { c: false }) : void > : ^^^^ >assignBoxified : (obj: Boxified, values: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >b : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ c: false } : { c: false; } @@ -364,7 +364,7 @@ function f4() { >box(42) : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -374,7 +374,7 @@ function f4() { >box("hello") : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -384,7 +384,7 @@ function f4() { >box(true) : Box > : ^^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -397,11 +397,11 @@ function f4() { >boxify(unboxify(b)) : Boxified<{ a: number; b: string; c: boolean; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >unboxify(b) : { a: number; b: string; c: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -413,18 +413,18 @@ function f4() { >unboxify(boxify(b)) : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >boxify(b) : Boxified<{ a: Box; b: Box; c: Box; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } function makeRecord(obj: { [P in K]: T }) { >makeRecord : (obj: { [P in K]: T; }) => { [P in K]: T; } -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >obj : { [P in K]: T; } > : ^^^^^^^^^^^^^^^^ @@ -445,7 +445,7 @@ function f5(s: string) { >makeRecord({ a: box(42), b: box("hello"), c: box(true) }) : { a: Box | Box | Box; b: Box | Box | Box; c: Box | Box | Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >makeRecord : (obj: { [P in K]: T; }) => { [P in K]: T; } -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >{ a: box(42), b: box("hello"), c: box(true) } : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -455,7 +455,7 @@ function f5(s: string) { >box(42) : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -465,7 +465,7 @@ function f5(s: string) { >box("hello") : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -475,7 +475,7 @@ function f5(s: string) { >box(true) : Box > : ^^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -486,7 +486,7 @@ function f5(s: string) { >unboxify(b) : { a: string | number | boolean; b: string | number | boolean; c: string | number | boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : { a: Box | Box | Box; b: Box | Box | Box; c: Box | Box | Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -503,7 +503,7 @@ function f5(s: string) { function makeDictionary(obj: { [x: string]: T }) { >makeDictionary : (obj: { [x: string]: T; }) => { [x: string]: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >obj : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : string @@ -526,7 +526,7 @@ function f6(s: string) { >makeDictionary({ a: box(42), b: box("hello"), c: box(true) }) : { [x: string]: Box | Box | Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >makeDictionary : (obj: { [x: string]: T; }) => { [x: string]: T; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: box(42), b: box("hello"), c: box(true) } : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -536,7 +536,7 @@ function f6(s: string) { >box(42) : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >42 : 42 > : ^^ @@ -546,7 +546,7 @@ function f6(s: string) { >box("hello") : Box > : ^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -556,7 +556,7 @@ function f6(s: string) { >box(true) : Box > : ^^^^^^^^^^^^ >box : (x: T) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -567,7 +567,7 @@ function f6(s: string) { >unboxify(b) : { [x: string]: any; } > : ^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >b : { [x: string]: Box | Box | Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -584,19 +584,19 @@ function f6(s: string) { declare function validate(obj: { [P in keyof T]?: T[P] }): T; >validate : (obj: { [P in keyof T]?: T[P]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : { [P in keyof T]?: T[P] | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function clone(obj: { readonly [P in keyof T]: T[P] }): T; >clone : (obj: { readonly [P in keyof T]: T[P]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : { readonly [P in keyof T]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function validateAndClone(obj: { readonly [P in keyof T]?: T[P] }): T; >validateAndClone : (obj: { readonly [P in keyof T]?: T[P]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : { readonly [P in keyof T]?: T[P] | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -625,7 +625,7 @@ function f10(foo: Foo) { >validate(foo) : { a: number; readonly b: string; } > : ^^^^^ ^^^^^^^^^^^^^^ ^^^ >validate : (obj: { [P in keyof T]?: T[P]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : Foo > : ^^^ @@ -635,7 +635,7 @@ function f10(foo: Foo) { >clone(foo) : { a?: number; b: string; } > : ^^^^^^ ^^^^^ ^^^ >clone : (obj: { readonly [P in keyof T]: T[P]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : Foo > : ^^^ @@ -645,7 +645,7 @@ function f10(foo: Foo) { >validateAndClone(foo) : { a: number; b: string; } > : ^^^^^ ^^^^^ ^^^ >validateAndClone : (obj: { readonly [P in keyof T]?: T[P]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : Foo > : ^^^ } @@ -672,7 +672,7 @@ type Spec = { */ declare function applySpec(obj: Spec): (...args: any[]) => T; >applySpec : (obj: Spec) => (...args: any[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : Spec > : ^^^^^^^ >args : any[] @@ -681,11 +681,11 @@ declare function applySpec(obj: Spec): (...args: any[]) => T; // Infers g1: (...args: any[]) => { sum: number, nested: { mul: string } } var g1 = applySpec({ >g1 : (...args: any[]) => { sum: number; nested: { mul: string; }; } -> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >applySpec({ sum: (a: any) => 3, nested: { mul: (b: any) => "n" }}) : (...args: any[]) => { sum: number; nested: { mul: string; }; } -> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >applySpec : (obj: Spec) => (...args: any[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ sum: (a: any) => 3, nested: { mul: (b: any) => "n" }} : { sum: (a: any) => number; nested: { mul: (b: any) => string; }; } > : ^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ @@ -718,11 +718,11 @@ var g1 = applySpec({ // Infers g2: (...args: any[]) => { foo: { bar: { baz: boolean } } } var g2 = applySpec({ foo: { bar: { baz: (x: any) => true } } }); >g2 : (...args: any[]) => { foo: { bar: { baz: boolean; }; }; } -> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >applySpec({ foo: { bar: { baz: (x: any) => true } } }) : (...args: any[]) => { foo: { bar: { baz: boolean; }; }; } -> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >applySpec : (obj: Spec) => (...args: any[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo: { bar: { baz: (x: any) => true } } } : { foo: { bar: { baz: (x: any) => boolean; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >foo : { bar: { baz: (x: any) => boolean; }; } @@ -745,9 +745,9 @@ var g2 = applySpec({ foo: { bar: { baz: (x: any) => true } } }); const foo = (object: T, partial: Partial) => object; >foo : (object: T, partial: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >(object: T, partial: Partial) => object : (object: T, partial: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >object : T > : ^ >partial : Partial @@ -773,7 +773,7 @@ foo(o, {b: 9}); >foo(o, {b: 9}) : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (object: T, partial: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{b: 9} : { b: number; } @@ -791,7 +791,7 @@ o = foo(o, {b: 9}); >foo(o, {b: 9}) : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (object: T, partial: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{b: 9} : { b: number; } @@ -806,31 +806,31 @@ o = foo(o, {b: 9}); declare function f20(obj: Pick): T; >f20 : (obj: Pick) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Pick > : ^^^^^^^^^^ declare function f21(obj: Pick): K; >f21 : (obj: Pick) => K -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Pick > : ^^^^^^^^^^ declare function f22(obj: Boxified>): T; >f22 : (obj: Boxified>) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Boxified> > : ^^^^^^^^^^^^^^^^^^^^ declare function f23(obj: Pick): T; >f23 : (obj: Pick) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Pick > : ^^^^^^^^^^ declare function f24(obj: Pick): T & U; >f24 : (obj: Pick) => T & U -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Pick > : ^^^^^^^^^^^^^^ @@ -840,7 +840,7 @@ let x0 = f20({ foo: 42, bar: "hello" }); >f20({ foo: 42, bar: "hello" }) : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f20 : (obj: Pick) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: 42, bar: "hello" } : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -858,7 +858,7 @@ let x1 = f21({ foo: 42, bar: "hello" }); >f21({ foo: 42, bar: "hello" }) : "foo" | "bar" > : ^^^^^^^^^^^^^ >f21 : (obj: Pick) => K -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: 42, bar: "hello" } : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -876,7 +876,7 @@ let x2 = f22({ foo: { value: 42} , bar: { value: "hello" } }); >f22({ foo: { value: 42} , bar: { value: "hello" } }) : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f22 : (obj: Boxified>) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: { value: 42} , bar: { value: "hello" } } : { foo: { value: number; }; bar: { value: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : { value: number; } @@ -902,7 +902,7 @@ let x3 = f23({ foo: 42, bar: "hello" }); >f23({ foo: 42, bar: "hello" }) : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f23 : (obj: Pick) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: 42, bar: "hello" } : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -920,7 +920,7 @@ let x4 = f24({ foo: 42, bar: "hello" }); >f24({ foo: 42, bar: "hello" }) : { foo: number; bar: string; } & { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f24 : (obj: Pick) => T & U -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ foo: 42, bar: "hello" } : { foo: number; bar: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : number @@ -936,7 +936,7 @@ let x4 = f24({ foo: 42, bar: "hello" }); function getProps(obj: T, list: K[]): Pick { >getProps : (obj: T, list: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >list : K[] @@ -959,7 +959,7 @@ const o1 = getProps(myAny, ['foo', 'bar']); >getProps(myAny, ['foo', 'bar']) : Pick > : ^^^^^^^^^^^^^^^^^^^^^^^^ >getProps : (obj: T, list: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >myAny : any >['foo', 'bar'] : ("foo" | "bar")[] > : ^^^^^^^^^^^^^^^^^ @@ -976,7 +976,7 @@ const o2: { foo: any; bar: any } = getProps(myAny, ['foo', 'bar']); >getProps(myAny, ['foo', 'bar']) : Pick > : ^^^^^^^^^^^^^^^^^^^^^^^^ >getProps : (obj: T, list: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >myAny : any >['foo', 'bar'] : ("foo" | "bar")[] > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/iteratorSpreadInArray6.types b/tests/baselines/reference/iteratorSpreadInArray6.types index 0cfd7122bb037..dc910982d9d7b 100644 --- a/tests/baselines/reference/iteratorSpreadInArray6.types +++ b/tests/baselines/reference/iteratorSpreadInArray6.types @@ -60,11 +60,11 @@ array.concat([...new SymbolIterator]); >array.concat([...new SymbolIterator]) : number[] > : ^^^^^^^^ >array.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >array : number[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >[...new SymbolIterator] : symbol[] > : ^^^^^^^^ >...new SymbolIterator : symbol diff --git a/tests/baselines/reference/iteratorSpreadInArray7.types b/tests/baselines/reference/iteratorSpreadInArray7.types index e20e37747488d..410d5dc18b49e 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.types +++ b/tests/baselines/reference/iteratorSpreadInArray7.types @@ -54,11 +54,11 @@ array.concat([...new SymbolIterator]); >array.concat([...new SymbolIterator]) : symbol[] > : ^^^^^^^^ >array.concat : { (...items: ConcatArray[]): symbol[]; (...items: (symbol | ConcatArray)[]): symbol[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >array : symbol[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): symbol[]; (...items: (symbol | ConcatArray)[]): symbol[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >[...new SymbolIterator] : symbol[] > : ^^^^^^^^ >...new SymbolIterator : symbol diff --git a/tests/baselines/reference/iteratorSpreadInCall10.types b/tests/baselines/reference/iteratorSpreadInCall10.types index a0b703b809c72..45b35b975e8ea 100644 --- a/tests/baselines/reference/iteratorSpreadInCall10.types +++ b/tests/baselines/reference/iteratorSpreadInCall10.types @@ -3,7 +3,7 @@ === iteratorSpreadInCall10.ts === function foo(s: T[]) { return s[0] } >foo : (s: T[]) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >s : T[] > : ^^^ >s[0] : T @@ -62,7 +62,7 @@ foo(...new SymbolIterator); >foo(...new SymbolIterator) : unknown > : ^^^^^^^ >foo : (s: T[]) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >...new SymbolIterator : symbol > : ^^^^^^ >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/iteratorSpreadInCall11.types b/tests/baselines/reference/iteratorSpreadInCall11.types index e5e3c83c572d4..1b483869c0492 100644 --- a/tests/baselines/reference/iteratorSpreadInCall11.types +++ b/tests/baselines/reference/iteratorSpreadInCall11.types @@ -3,7 +3,7 @@ === iteratorSpreadInCall11.ts === function foo(...s: T[]) { return s[0] } >foo : (...s: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >s : T[] > : ^^^ >s[0] : T @@ -62,7 +62,7 @@ foo(...new SymbolIterator); >foo(...new SymbolIterator) : symbol > : ^^^^^^ >foo : (...s: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >...new SymbolIterator : symbol > : ^^^^^^ >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/iteratorSpreadInCall7.types b/tests/baselines/reference/iteratorSpreadInCall7.types index c65b4b9326bde..5083276845f8b 100644 --- a/tests/baselines/reference/iteratorSpreadInCall7.types +++ b/tests/baselines/reference/iteratorSpreadInCall7.types @@ -3,7 +3,7 @@ === iteratorSpreadInCall7.ts === function foo(...s: T[]) { return s[0]; } >foo : (...s: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >s : T[] > : ^^^ >s[0] : T @@ -105,7 +105,7 @@ foo(...new SymbolIterator, ...new _StringIterator); >foo(...new SymbolIterator, ...new _StringIterator) : symbol > : ^^^^^^ >foo : (...s: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^ >...new SymbolIterator : symbol > : ^^^^^^ >new SymbolIterator : SymbolIterator diff --git a/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types b/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types index bd9b871ecb2fd..963a5b107692c 100644 --- a/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types +++ b/tests/baselines/reference/javascriptDefinePropertyPrototypeNonConstructor.types @@ -9,11 +9,11 @@ function Graphic() { Object.defineProperty(Graphic.prototype, "instance", { >Object.defineProperty(Graphic.prototype, "instance", { get: function() { return this; }}) : any >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Graphic.prototype : any >Graphic : typeof Graphic > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jqueryInference.types b/tests/baselines/reference/jqueryInference.types index 942dc294bf5e1..af8d09f6d6486 100644 --- a/tests/baselines/reference/jqueryInference.types +++ b/tests/baselines/reference/jqueryInference.types @@ -24,7 +24,7 @@ interface DoNothingAlias extends MyPromise { } declare function shouldBeIdentity(p: DoNothingAlias): MyPromise; >shouldBeIdentity : (p: DoNothingAlias) => MyPromise -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >p : DoNothingAlias > : ^^^^^^^^^^^^^^^^^^^^ @@ -38,7 +38,7 @@ var p2 = shouldBeIdentity(p1); >shouldBeIdentity(p1) : MyPromise > : ^^^^^^^^^^^^^^^^^^^^^^^ >shouldBeIdentity : (p: DoNothingAlias) => MyPromise -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >p1 : MyPromise > : ^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types b/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types index 3ec91157a364f..5b645d35a6a0b 100644 --- a/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types +++ b/tests/baselines/reference/jsCheckObjectDefineThisNoCrash.types @@ -11,11 +11,11 @@ class C { >Object.defineProperty(this, "_prop", { value: {} }) : this > : ^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >this : this > : ^^^^ >"_prop" : "_prop" @@ -31,11 +31,11 @@ class C { >Object.defineProperty(this._prop, "num", { value: 12 }) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >this._prop : any > : ^^^ >this : this diff --git a/tests/baselines/reference/jsDeclarationsClassAccessor.types b/tests/baselines/reference/jsDeclarationsClassAccessor.types index b74c2b26de437..b711bffe33ae1 100644 --- a/tests/baselines/reference/jsDeclarationsClassAccessor.types +++ b/tests/baselines/reference/jsDeclarationsClassAccessor.types @@ -65,7 +65,7 @@ export class Argument extends Base { */ static parse(tokeniser) { >parse : (tokeniser: any) => void -> : ^ ^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^ >tokeniser : any return; @@ -85,6 +85,6 @@ export class Argument extends Base { */ *validate(defs) { } >validate : (defs: any) => Generator -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >defs : any } diff --git a/tests/baselines/reference/jsDeclarationsClasses.types b/tests/baselines/reference/jsDeclarationsClasses.types index 02d06cb9a3656..8c9fba96b7941 100644 --- a/tests/baselines/reference/jsDeclarationsClasses.types +++ b/tests/baselines/reference/jsDeclarationsClasses.types @@ -206,7 +206,7 @@ export class F { */ static create(a, b) { return new F(a, b); } >create : (a: A, b: B) => F -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >a : A > : ^ >b : B diff --git a/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types b/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types index 8f461b53a6937..95129b0f7fee3 100644 --- a/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types +++ b/tests/baselines/reference/jsDeclarationsExportDefinePropertyEmit.types @@ -5,11 +5,11 @@ Object.defineProperty(module.exports, "a", { value: function a() {} }); >Object.defineProperty(module.exports, "a", { value: function a() {} }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -31,11 +31,11 @@ Object.defineProperty(module.exports, "b", { value: function b() {} }); >Object.defineProperty(module.exports, "b", { value: function b() {} }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -57,11 +57,11 @@ Object.defineProperty(module.exports.b, "cat", { value: "cat" }); >Object.defineProperty(module.exports.b, "cat", { value: "cat" }) : () => void > : ^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports.b : () => void > : ^^^^^^^^^^ >module.exports : typeof module.exports @@ -99,11 +99,11 @@ Object.defineProperty(module.exports, "d", { value: d }); >Object.defineProperty(module.exports, "d", { value: d }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -128,7 +128,7 @@ Object.defineProperty(module.exports, "d", { value: d }); */ function e(a, b) { return /** @type {*} */(null); } >e : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : U @@ -139,11 +139,11 @@ Object.defineProperty(module.exports, "e", { value: e }); >Object.defineProperty(module.exports, "e", { value: e }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -153,11 +153,11 @@ Object.defineProperty(module.exports, "e", { value: e }); >"e" : "e" > : ^^^ >{ value: e } : { value: (a: T, b: U) => T & U; } -> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >value : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >e : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ /** * @template T @@ -165,7 +165,7 @@ Object.defineProperty(module.exports, "e", { value: e }); */ function f(a) { >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : T > : ^ @@ -177,11 +177,11 @@ Object.defineProperty(module.exports, "f", { value: f }); >Object.defineProperty(module.exports, "f", { value: f }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -191,23 +191,23 @@ Object.defineProperty(module.exports, "f", { value: f }); >"f" : "f" > : ^^^ >{ value: f } : { value: (a: T) => T; } -> : ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >value : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); >Object.defineProperty(module.exports.f, "self", { value: module.exports.f }) : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports.f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -215,15 +215,15 @@ Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >"self" : "self" > : ^^^^^^ >{ value: module.exports.f } : { value: (a: T) => T; } -> : ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >value : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >module.exports.f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -231,7 +231,7 @@ Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ /** * @param {{x: string}} a @@ -239,11 +239,11 @@ Object.defineProperty(module.exports.f, "self", { value: module.exports.f }); */ function g(a, b) { >g : (a: { x: string; }, b: { y: () => void; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^ >a : { x: string; } > : ^^^^^ ^^^ >b : { y: () => void; } -> : ^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^ return a.x && b.y(); >a.x && b.y() : void @@ -259,7 +259,7 @@ function g(a, b) { >b.y : () => void > : ^^^^^^^^^^ >b : { y: () => void; } -> : ^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^ >y : () => void > : ^^^^^^^^^^ } @@ -267,11 +267,11 @@ Object.defineProperty(module.exports, "g", { value: g }); >Object.defineProperty(module.exports, "g", { value: g }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -281,11 +281,11 @@ Object.defineProperty(module.exports, "g", { value: g }); >"g" : "g" > : ^^^ >{ value: g } : { value: (a: { x: string; }, b: { y: () => void; }) => void; } -> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^^^^ >value : (a: { x: string; }, b: { y: () => void; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^ >g : (a: { x: string; }, b: { y: () => void; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^ /** @@ -294,11 +294,11 @@ Object.defineProperty(module.exports, "g", { value: g }); */ function hh(a, b) { >hh : (a: { x: string; }, b: { y: () => void; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^ >a : { x: string; } > : ^^^^^ ^^^ >b : { y: () => void; } -> : ^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^ return a.x && b.y(); >a.x && b.y() : void @@ -314,7 +314,7 @@ function hh(a, b) { >b.y : () => void > : ^^^^^^^^^^ >b : { y: () => void; } -> : ^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^ >y : () => void > : ^^^^^^^^^^ } @@ -322,11 +322,11 @@ Object.defineProperty(module.exports, "h", { value: hh }); >Object.defineProperty(module.exports, "h", { value: hh }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -336,21 +336,21 @@ Object.defineProperty(module.exports, "h", { value: hh }); >"h" : "h" > : ^^^ >{ value: hh } : { value: (a: { x: string; }, b: { y: () => void; }) => void; } -> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^^^^ >value : (a: { x: string; }, b: { y: () => void; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^ >hh : (a: { x: string; }, b: { y: () => void; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^ ^^^^^^^^^ Object.defineProperty(module.exports, "i", { value: function i(){} }); >Object.defineProperty(module.exports, "i", { value: function i(){} }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -372,11 +372,11 @@ Object.defineProperty(module.exports, "ii", { value: module.exports.i }); >Object.defineProperty(module.exports, "ii", { value: module.exports.i }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -405,11 +405,11 @@ Object.defineProperty(module.exports, "jj", { value: module.exports.j }); >Object.defineProperty(module.exports, "jj", { value: module.exports.j }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -437,11 +437,11 @@ Object.defineProperty(module.exports, "j", { value: function j() {} }); >Object.defineProperty(module.exports, "j", { value: function j() {} }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } diff --git a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types index 5d57ae5bdaf02..28662824db2f9 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types +++ b/tests/baselines/reference/jsDeclarationsFunctionClassesCjsExportAssignment.types @@ -132,31 +132,31 @@ function Context(input) { > : ^^^^^ >this.state : any >this : this & { construct(input: Input, handle?: HookHandler | undefined): State; } -> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^ >state : any > : ^^^ >this.construct(input) : State > : ^^^^^ >this.construct : (input: Input, handle?: HookHandler | undefined) => State -> : ^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ >this : this & { construct(input: Input, handle?: HookHandler | undefined): State; } -> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^ >construct : (input: Input, handle?: HookHandler | undefined) => State -> : ^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ >input : Input > : ^^^^^ } Context.prototype = { >Context.prototype = { /** * @param {Input} input * @param {HookHandler=} handle * @returns {State} */ construct(input, handle = () => void 0) { return input; }} : { construct(input: Input, handle?: HookHandler | undefined): State; } -> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^ >Context.prototype : { construct(input: Input, handle?: HookHandler | undefined): State; } -> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^ >Context : typeof Context > : ^^^^^^^^^^^^^^ >prototype : { construct(input: Input, handle?: HookHandler | undefined): State; } -> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^ >{ /** * @param {Input} input * @param {HookHandler=} handle * @returns {State} */ construct(input, handle = () => void 0) { return input; }} : { construct(input: Input, handle?: HookHandler | undefined): State; } -> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^ /** * @param {Input} input @@ -165,7 +165,7 @@ Context.prototype = { */ construct(input, handle = () => void 0) { >construct : (input: Input, handle?: HookHandler | undefined) => State -> : ^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ >input : Input > : ^^^^^ >handle : import("hook").HookHandler @@ -184,13 +184,13 @@ Context.prototype = { } module.exports = Context; >module.exports = Context : { (input: Input): Context; new (input: Input): Context; prototype: { construct(input: Input, handle?: HookHandler | undefined): State; }; } -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^ >module.exports : { (input: Input): Context; new (input: Input): Context; prototype: { construct(input: Input, handle?: HookHandler | undefined): State; }; } -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^ >module : { exports: { (input: Input): Context; new (input: Input): Context; prototype: { construct(input: Input, handle?: HookHandler | undefined): State; }; }; } -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >exports : { (input: Input): Context; new (input: Input): Context; prototype: { construct(input: Input, handle?: HookHandler | undefined): State; }; } -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^ >Context : typeof Context > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsDeclarationsFunctions.types b/tests/baselines/reference/jsDeclarationsFunctions.types index c007e64aa2969..de20de9e4fa87 100644 --- a/tests/baselines/reference/jsDeclarationsFunctions.types +++ b/tests/baselines/reference/jsDeclarationsFunctions.types @@ -59,7 +59,7 @@ export function d(a, b) { return /** @type {*} */(null); } */ export function e(a, b) { return /** @type {*} */(null); } >e : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : U diff --git a/tests/baselines/reference/jsDeclarationsFunctionsCjs.types b/tests/baselines/reference/jsDeclarationsFunctionsCjs.types index 250d00c1345c2..820806fcaf847 100644 --- a/tests/baselines/reference/jsDeclarationsFunctionsCjs.types +++ b/tests/baselines/reference/jsDeclarationsFunctionsCjs.types @@ -131,9 +131,9 @@ module.exports.d = function d(a, b) { return /** @type {*} */(null); } */ module.exports.e = function e(a, b) { return /** @type {*} */(null); } >module.exports.e = function e(a, b) { return /** @type {*} */(null); } : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >module.exports.e : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -141,11 +141,11 @@ module.exports.e = function e(a, b) { return /** @type {*} */(null); } >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >e : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >function e(a, b) { return /** @type {*} */(null); } : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >e : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : U @@ -158,9 +158,9 @@ module.exports.e = function e(a, b) { return /** @type {*} */(null); } */ module.exports.f = function f(a) { >module.exports.f = function f(a) { return a;} : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports.f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -168,11 +168,11 @@ module.exports.f = function f(a) { >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >function f(a) { return a;} : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -182,11 +182,11 @@ module.exports.f = function f(a) { } module.exports.f.self = module.exports.f; >module.exports.f.self = module.exports.f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports.f.self : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports.f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -194,11 +194,11 @@ module.exports.f.self = module.exports.f; >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >self : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports.f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -206,7 +206,7 @@ module.exports.f.self = module.exports.f; >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >f : { (a: T): T; self: any; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ /** * @param {{x: string}} a @@ -214,11 +214,11 @@ module.exports.f.self = module.exports.f; */ function g(a, b) { >g : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >a : { x: string; } > : ^^^^^ ^^^ >b : { y: { (): void; cat: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^ return a.x && b.y(); >a.x && b.y() : void @@ -234,16 +234,16 @@ function g(a, b) { >b.y : { (): void; cat: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >b : { y: { (): void; cat: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^ >y : { (): void; cat: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ } module.exports.g = g; >module.exports.g = g : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >module.exports.g : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -251,9 +251,9 @@ module.exports.g = g; >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >g : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >g : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ /** * @param {{x: string}} a @@ -261,11 +261,11 @@ module.exports.g = g; */ function hh(a, b) { >hh : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >a : { x: string; } > : ^^^^^ ^^^ >b : { y: { (): void; cat: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^ return a.x && b.y(); >a.x && b.y() : void @@ -281,16 +281,16 @@ function hh(a, b) { >b.y : { (): void; cat: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >b : { y: { (): void; cat: string; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^ >y : { (): void; cat: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ } module.exports.h = hh; >module.exports.h = hh : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >module.exports.h : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -298,9 +298,9 @@ module.exports.h = hh; >exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >h : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ >hh : (a: { x: string; }, b: { y: { (): void; cat: string; }; }) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^ module.exports.i = function i() {} >module.exports.i = function i() {} : () => void diff --git a/tests/baselines/reference/jsDeclarationsGetterSetter.types b/tests/baselines/reference/jsDeclarationsGetterSetter.types index 4a6817beed614..9e66367065bfb 100644 --- a/tests/baselines/reference/jsDeclarationsGetterSetter.types +++ b/tests/baselines/reference/jsDeclarationsGetterSetter.types @@ -58,11 +58,11 @@ Object.defineProperty(D.prototype, "x", { >Object.defineProperty(D.prototype, "x", { get() { return 12; }}) : D > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >D.prototype : D > : ^ >D : typeof D @@ -92,11 +92,11 @@ Object.defineProperty(E.prototype, "x", { >Object.defineProperty(E.prototype, "x", { /** * @param {number} _arg */ set(_arg) {}}) : E > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >E.prototype : E > : ^ >E : typeof E @@ -127,11 +127,11 @@ Object.defineProperty(F.prototype, "x", { >Object.defineProperty(F.prototype, "x", { get() { return 12; }, /** * @param {number} _arg */ set(_arg) {}}) : F > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >F.prototype : F > : ^ >F : typeof F @@ -171,11 +171,11 @@ Object.defineProperty(G.prototype, "x", { >Object.defineProperty(G.prototype, "x", { /** * @param {number[]} args */ set(...args) {}}) : G > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >G.prototype : G > : ^ >G : typeof G @@ -206,11 +206,11 @@ Object.defineProperty(H.prototype, "x", { >Object.defineProperty(H.prototype, "x", { set() {}}) : H > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >H.prototype : H > : ^ >H : typeof H @@ -237,11 +237,11 @@ Object.defineProperty(I.prototype, "x", { >Object.defineProperty(I.prototype, "x", { /** * @param {number} v */ set: (v) => {}}) : I > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >I.prototype : I > : ^ >I : typeof I @@ -285,11 +285,11 @@ Object.defineProperty(J.prototype, "x", { >Object.defineProperty(J.prototype, "x", { set: jSetter}) : J > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >J.prototype : J > : ^ >J : typeof J @@ -339,11 +339,11 @@ Object.defineProperty(K.prototype, "x", { >Object.defineProperty(K.prototype, "x", { set: Math.random() ? kSetter1 : kSetter2}) : K > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >K.prototype : K > : ^ >K : typeof K @@ -405,11 +405,11 @@ Object.defineProperty(L.prototype, "x", { >Object.defineProperty(L.prototype, "x", { set: Math.random() ? lSetter1 : lSetter2}) : L > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >L.prototype : L > : ^ >L : typeof L @@ -471,11 +471,11 @@ Object.defineProperty(M.prototype, "x", { >Object.defineProperty(M.prototype, "x", { set: Math.random() ? mSetter1 : mSetter2}) : M > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >M.prototype : M > : ^ >M : typeof M diff --git a/tests/baselines/reference/jsDeclarationsInterfaces.types b/tests/baselines/reference/jsDeclarationsInterfaces.types index 48c74df293ee2..f0e4f71d8c00b 100644 --- a/tests/baselines/reference/jsDeclarationsInterfaces.types +++ b/tests/baselines/reference/jsDeclarationsInterfaces.types @@ -49,23 +49,23 @@ export interface C { method(): number; >method : { (): number; (a: T & Q_1): Q_1 & number; (a?: number): number; (...args: any[]): number; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ method(a: T & Q): Q & number; >method : { (): number; (a: T & Q): Q & number; (a?: number): number; (...args: any[]): number; } -> : ^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : T & Q > : ^^^^^ method(a?: number): number; >method : { (): number; (a: T & Q): Q & number; (a?: number): number; (...args: any[]): number; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : number > : ^^^^^^ method(...args: any[]): number; >method : { (): number; (a: T & Q): Q & number; (a?: number): number; (...args: any[]): number; } -> : ^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^ ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >args : any[] > : ^^^^^ diff --git a/tests/baselines/reference/jsDeclarationsJSDocRedirectedLookups.types b/tests/baselines/reference/jsDeclarationsJSDocRedirectedLookups.types index 696688eb1ec20..b7c2f92cf80b9 100644 --- a/tests/baselines/reference/jsDeclarationsJSDocRedirectedLookups.types +++ b/tests/baselines/reference/jsDeclarationsJSDocRedirectedLookups.types @@ -68,11 +68,11 @@ >Promise.resolve(0) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >0 : 0 > : ^ diff --git a/tests/baselines/reference/jsDeclarationsMissingTypeParameters.types b/tests/baselines/reference/jsDeclarationsMissingTypeParameters.types index 3e10f81abd6b2..f70b8f13c752e 100644 --- a/tests/baselines/reference/jsDeclarationsMissingTypeParameters.types +++ b/tests/baselines/reference/jsDeclarationsMissingTypeParameters.types @@ -6,7 +6,7 @@ */ function x(y) { } >x : (y?: any[] | undefined) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^ >y : any[] > : ^^^^^ @@ -15,7 +15,7 @@ function x(y) { } */ function y(func) { return; } >y : (func: (arg0: any[]) => any) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^^ >func : (arg0: any[]) => any > : ^^^^^^^^^^^^^^^^^^^^ @@ -24,7 +24,7 @@ function y(func) { return; } */ function z() { return null ;} >z : () => (any[] | null) -> : ^^^^^^ ^^^^^ +> : ^^^^^^ ^^^ /** * @@ -32,5 +32,5 @@ function z() { return null ;} */ function w() { return null; } >w : () => Promise | null -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^ ^^^^ diff --git a/tests/baselines/reference/jsDeclarationsNestedParams.types b/tests/baselines/reference/jsDeclarationsNestedParams.types index c2a5dc6faff58..fa7e2c792551d 100644 --- a/tests/baselines/reference/jsDeclarationsNestedParams.types +++ b/tests/baselines/reference/jsDeclarationsNestedParams.types @@ -14,7 +14,7 @@ class X { */ async cancel({reason, code}) {} >cancel : ({ reason, code }: { reason: string | null; code: string | null;}) => Promise -> : ^ ^^^ ^^ ^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^^ +> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ ^^^^^ >reason : string > : ^^^^^^ >code : string @@ -36,10 +36,10 @@ class Y { */ async cancel({reason, suberr}) {} >cancel : ({ reason, suberr }: { reason: string | null; suberr: { reason: string | null; code: string | null; };}) => Promise -> : ^ ^^^ ^^ ^^^^^^^^ ^^^ ^^ ^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^ ^^^ +> : ^ ^^ ^^ ^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ ^ ^^^^^ >reason : string > : ^^^^^^ >suberr : { reason: string | null; code: string | null; } -> : ^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ } diff --git a/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps1.types b/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps1.types index 27ffc27d77c73..1613bcc89d710 100644 --- a/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps1.types +++ b/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps1.types @@ -13,7 +13,7 @@ */ function foo({ a, b, c }) { >foo : ({ a, b, c }: { a: number; b?: number; c?: number;}) => number -> : ^ ^^^ ^^ ^ ^^^ ^ ^^^ ^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^ ^^^ ^ ^^^^^ >a : number > : ^^^^^^ >b : number diff --git a/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps2.types b/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps2.types index 11a1a4a23efc6..7540d612df374 100644 --- a/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps2.types +++ b/tests/baselines/reference/jsDeclarationsOptionalTypeLiteralProps2.types @@ -13,7 +13,7 @@ */ function foo({ a, b, c }) { >foo : ({ a, b, c }: { a: number; b?: number | undefined; c?: number | undefined;}) => number -> : ^ ^^^ ^^ ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >a : number > : ^^^^^^ >b : number | undefined diff --git a/tests/baselines/reference/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.types b/tests/baselines/reference/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.types index 5ab7be88c05bc..1504aac9b26e8 100644 --- a/tests/baselines/reference/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.types +++ b/tests/baselines/reference/jsDeclarationsRestArgsWithThisTypeInJSDocFunction.types @@ -10,8 +10,8 @@ export class Clazz { */ method(functionDeclaration) {} >method : (functionDeclaration: (this: any, ...args: any[]) => any) => void -> : ^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^^ ^^ ^^^^^^^^^ >functionDeclaration : (this: any, ...arg1: any[]) => any -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ ^^^^^ } diff --git a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types index 4fbccab07fcba..8d86ccf22de94 100644 --- a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types +++ b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types @@ -76,11 +76,11 @@ const Thing = Object.freeze({ >Object.freeze({ a: "thing", b: "chill"}) : Readonly<{ a: "thing"; b: "chill"; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ a: "thing", b: "chill"} : { a: "thing"; b: "chill"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsExpandoObjectDefineProperty.types b/tests/baselines/reference/jsExpandoObjectDefineProperty.types index d18909880ebf4..13be5e1b76b10 100644 --- a/tests/baselines/reference/jsExpandoObjectDefineProperty.types +++ b/tests/baselines/reference/jsExpandoObjectDefineProperty.types @@ -11,11 +11,11 @@ Object.defineProperty(chrome, 'devtools', { value: {}, enumerable: true }) >Object.defineProperty(chrome, 'devtools', { value: {}, enumerable: true }) : typeof chrome > : ^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >chrome : typeof chrome > : ^^^^^^^^^^^^^ >'devtools' : "devtools" diff --git a/tests/baselines/reference/jsFileCompilationAwaitModifier.types b/tests/baselines/reference/jsFileCompilationAwaitModifier.types index f8e51c939f0c2..100dde6b03e78 100644 --- a/tests/baselines/reference/jsFileCompilationAwaitModifier.types +++ b/tests/baselines/reference/jsFileCompilationAwaitModifier.types @@ -15,11 +15,11 @@ class Foo { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -36,11 +36,11 @@ class Foo { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } diff --git a/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types b/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types index c5447c7876f4f..27985ba64217c 100644 --- a/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types +++ b/tests/baselines/reference/jsFileCompilationRestParamJsDocFunction.types @@ -13,7 +13,7 @@ */ function apply(func, thisArg, ...args) { >apply : (func: Function, thisArg: any, ...args: any[]) => any -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ >func : Function > : ^^^^^^^^ >thisArg : any @@ -127,5 +127,5 @@ function apply(func, thisArg, ...args) { export default apply; >apply : (func: Function, thisArg: any, ...args: any[]) => any -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/jsFileESModuleWithEnumTag.types b/tests/baselines/reference/jsFileESModuleWithEnumTag.types index 70d0b4d56d3b0..dea170ae82a0b 100644 --- a/tests/baselines/reference/jsFileESModuleWithEnumTag.types +++ b/tests/baselines/reference/jsFileESModuleWithEnumTag.types @@ -56,11 +56,11 @@ Object.defineProperty(ChangeDetectionStrategy, "aField", {value: 42}); >Object.defineProperty(ChangeDetectionStrategy, "aField", {value: 42}) : { OnPush: number; Default: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >ChangeDetectionStrategy : { OnPush: number; Default: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >"aField" : "aField" diff --git a/tests/baselines/reference/jsFileFunctionOverloads.types b/tests/baselines/reference/jsFileFunctionOverloads.types index 1e8b43138de1e..0292715c17507 100644 --- a/tests/baselines/reference/jsFileFunctionOverloads.types +++ b/tests/baselines/reference/jsFileFunctionOverloads.types @@ -40,9 +40,9 @@ */ const identity = x => x; >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -69,13 +69,13 @@ const identity = x => x; */ function flatMap(array, iterable = identity) { >flatMap : { (array: T[], iterable: (x: T) => U[]): U[]; (array: T[][]): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >array : unknown[] > : ^^^^^^^^^ >iterable : (x: unknown) => unknown > : ^ ^^ ^^^^^ >identity : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ /** @type {unknown[]} */ const result = []; diff --git a/tests/baselines/reference/jsFileFunctionOverloads2.types b/tests/baselines/reference/jsFileFunctionOverloads2.types index d44253dd08fda..e6df5cec15ecf 100644 --- a/tests/baselines/reference/jsFileFunctionOverloads2.types +++ b/tests/baselines/reference/jsFileFunctionOverloads2.types @@ -38,9 +38,9 @@ */ const identity = x => x; >identity : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -64,13 +64,13 @@ const identity = x => x; */ function flatMap(array, iterable = identity) { >flatMap : { (array: T[], iterable: (x: T) => U[]): U[]; (array: T[][]): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >array : unknown[] > : ^^^^^^^^^ >iterable : (x: unknown) => unknown > : ^ ^^ ^^^^^ >identity : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ /** @type {unknown[]} */ const result = []; diff --git a/tests/baselines/reference/jsFileImportPreservedWhenUsed.types b/tests/baselines/reference/jsFileImportPreservedWhenUsed.types index c5f04d99d2539..f42ac0e732b59 100644 --- a/tests/baselines/reference/jsFileImportPreservedWhenUsed.types +++ b/tests/baselines/reference/jsFileImportPreservedWhenUsed.types @@ -14,7 +14,7 @@ type ObjectIterator = (value: TObject[keyof TObject], key: str interface LoDashStatic { mapValues(obj: T | null | undefined, callback: ObjectIterator): { [P in keyof T]: TResult }; >mapValues : (obj: T | null | undefined, callback: ObjectIterator) => { [P in keyof T]: TResult; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >obj : T | null | undefined > : ^^^^^^^^^^^^^^^^^^^^ >callback : ObjectIterator @@ -77,11 +77,11 @@ export class Test { >_.mapValues( obj, object => ({ ...object, [INDEX_FIELD]: index++ }), ) : object > : ^^^^^^ >_.mapValues : (obj: T | null | undefined, callback: (value: T[keyof T], key: string, collection: T) => TResult) => { [P in keyof T]: TResult; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ >_ : LoDashStatic > : ^^^^^^^^^^^^ >mapValues : (obj: T | null | undefined, callback: (value: T[keyof T], key: string, collection: T) => TResult) => { [P in keyof T]: TResult; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ obj, >obj : object diff --git a/tests/baselines/reference/jsFileMethodOverloads.types b/tests/baselines/reference/jsFileMethodOverloads.types index 1c01554d242d6..33ad766fdaf7e 100644 --- a/tests/baselines/reference/jsFileMethodOverloads.types +++ b/tests/baselines/reference/jsFileMethodOverloads.types @@ -71,7 +71,7 @@ */ transform(fn) { >transform : { (fn: (y: T) => U): U; (): T; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^^ >fn : (y: T) => unknown > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/jsFileMethodOverloads2.types b/tests/baselines/reference/jsFileMethodOverloads2.types index 2051039880ad1..3674341696db1 100644 --- a/tests/baselines/reference/jsFileMethodOverloads2.types +++ b/tests/baselines/reference/jsFileMethodOverloads2.types @@ -68,7 +68,7 @@ */ transform(fn) { >transform : { (fn: (y: T) => U): U; (): T; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ >fn : (y: T) => unknown > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types index 43c2402418db4..1d05b7f5a1f21 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types @@ -25,7 +25,7 @@ var numberArray = [5]; */ function returnAnyArray(arr) { >returnAnyArray : (arr: any[]) => any[] -> : ^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^ >arr : any[] > : ^^^^^ @@ -41,11 +41,11 @@ var anyPromise = Promise.resolve(5); >Promise.resolve(5) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >5 : 5 > : ^ @@ -56,11 +56,11 @@ var numberPromise = Promise.resolve(5); >Promise.resolve(5) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >5 : 5 > : ^ @@ -70,7 +70,7 @@ var numberPromise = Promise.resolve(5); */ function returnAnyPromise(pr) { >returnAnyPromise : (pr: Promise) => Promise -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >pr : Promise > : ^^^^^^^^^^^^ @@ -106,7 +106,7 @@ var paramedObject = {valueOf: 1}; */ function returnAnyObject(obj) { >returnAnyObject : (obj: any) => any -> : ^ ^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ >obj : any return obj; diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types index 8e70490b022b8..2d0e42c195cdc 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types @@ -25,7 +25,7 @@ var numberArray = [5]; */ function returnNotAnyArray(arr) { >returnNotAnyArray : (arr: any[]) => any[] -> : ^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^ >arr : any[] > : ^^^^^ @@ -41,11 +41,11 @@ var notAnyPromise = Promise.resolve(5); >Promise.resolve(5) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >5 : 5 > : ^ @@ -56,11 +56,11 @@ var numberPromise = Promise.resolve(5); >Promise.resolve(5) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >5 : 5 > : ^ @@ -70,7 +70,7 @@ var numberPromise = Promise.resolve(5); */ function returnNotAnyPromise(pr) { >returnNotAnyPromise : (pr: Promise) => Promise -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >pr : Promise > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsdocDisallowedInTypescript.types b/tests/baselines/reference/jsdocDisallowedInTypescript.types index 45814785eb1aa..ed65778bddf54 100644 --- a/tests/baselines/reference/jsdocDisallowedInTypescript.types +++ b/tests/baselines/reference/jsdocDisallowedInTypescript.types @@ -16,7 +16,7 @@ var ara: Array. = [1,2,3]; function f(x: ?number, y: Array.) { >f : (x: number | null, y: Array) => number -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^ >x : number | null > : ^^^^^^^^^^^^^ >y : number[] @@ -46,7 +46,7 @@ function f(x: ?number, y: Array.) { } function hof(ctor: function(new: number, string)) { >hof : (ctor: new (arg1: string) => number) => number -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^^^^^^^^^^^ >ctor : new (arg1: string) => number > : ^^^^^^^^^^^ ^^^^^^^^^^^ >new : number @@ -62,7 +62,7 @@ function hof(ctor: function(new: number, string)) { } function hof2(f: function(this: number, string): string) { >hof2 : (f: (this: number, arg1: string) => string) => string -> : ^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >f : (this: number, arg1: string) => string > : ^ ^^ ^^^^^^^^ ^^^^^ >this : number diff --git a/tests/baselines/reference/jsdocFunctionType.types b/tests/baselines/reference/jsdocFunctionType.types index eef1142485acf..1530322c4ef3c 100644 --- a/tests/baselines/reference/jsdocFunctionType.types +++ b/tests/baselines/reference/jsdocFunctionType.types @@ -7,7 +7,7 @@ */ function id1(c) { >id1 : (c: (this: string, arg1: number) => number) => (this: string, arg1: number) => number -> : ^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^ >c : (this: string, arg1: number) => number > : ^ ^^ ^^^^^^^^ ^^^^^ @@ -22,7 +22,7 @@ var x = id1(function (n) { return this.length + n }); >id1(function (n) { return this.length + n }) : (this: string, arg1: number) => number > : ^ ^^ ^^^^^^^^ ^^^^^ >id1 : (c: (this: string, arg1: number) => number) => (this: string, arg1: number) => number -> : ^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^ >function (n) { return this.length + n } : (this: string, n: number) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -44,7 +44,7 @@ var x = id1(function (n) { return this.length + n }); */ function id2(c) { >id2 : (c: new (arg1: number) => { length: number; }) => new (arg1: number) => { length: number; } -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ ^^ >c : new (arg1: number) => { length: number; } > : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^ @@ -82,7 +82,7 @@ var y = id2(C); >id2(C) : new (arg1: number) => { length: number; } > : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^ >id2 : (c: new (arg1: number) => { length: number; }) => new (arg1: number) => { length: number; } -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ ^^ >C : typeof C > : ^^^^^^^^ @@ -157,7 +157,7 @@ var y2 = id2(D); >id2(D) : new (arg1: number) => { length: number; } > : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^ >id2 : (c: new (arg1: number) => { length: number; }) => new (arg1: number) => { length: number; } -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ ^^ >D : typeof D > : ^^^^^^^^ @@ -186,9 +186,9 @@ z2.length; */ var construct = function(dref) { return new dref(33); } >construct : (dref: new (arg1: number) => D) => D -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >function(dref) { return new dref(33); } : (dref: new (arg1: number) => D) => D -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >dref : new (arg1: number) => D > : ^^^^^^^^^^^ ^^^^^^ >new dref(33) : D @@ -204,7 +204,7 @@ var z3 = construct(D); >construct(D) : D > : ^ >construct : (dref: new (arg1: number) => D) => D -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >D : typeof D > : ^^^^^^^^ @@ -250,7 +250,7 @@ var y3 = id2(E); >id2(E) : new (arg1: number) => { length: number; } > : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^ >id2 : (c: new (arg1: number) => { length: number; }) => new (arg1: number) => { length: number; } -> : ^ ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ ^^ >E : typeof E > : ^^^^^^^^ diff --git a/tests/baselines/reference/jsdocInTypeScript.types b/tests/baselines/reference/jsdocInTypeScript.types index 47a8e22f5fd00..686fe181b1137 100644 --- a/tests/baselines/reference/jsdocInTypeScript.types +++ b/tests/baselines/reference/jsdocInTypeScript.types @@ -96,7 +96,7 @@ interface I {} /** @template T */ function tem(t: T): I { return {}; } >tem : (t: T) => I -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >t : T > : ^ >{} : {} diff --git a/tests/baselines/reference/jsdocIndexSignature.types b/tests/baselines/reference/jsdocIndexSignature.types index bcae2b6bbfe06..4130526457136 100644 --- a/tests/baselines/reference/jsdocIndexSignature.types +++ b/tests/baselines/reference/jsdocIndexSignature.types @@ -19,7 +19,7 @@ var o3; /** @param {Object.} o */ function f(o) { >f : (o: { [x: string]: boolean;}) => void -> : ^ ^^^ ^^^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^ ^^^ ^ ^^^^^^^^^ >o : { [x: string]: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsdocParamTag2.types b/tests/baselines/reference/jsdocParamTag2.types index 4b658ccfb65eb..092a2b15d90ac 100644 --- a/tests/baselines/reference/jsdocParamTag2.types +++ b/tests/baselines/reference/jsdocParamTag2.types @@ -69,7 +69,7 @@ function good4({a, b}) {} */ function good5({a, b}, x) {} >good5 : ({ a, b }: { a: string; b: string;}, x: string) => void -> : ^ ^^^ ^^ ^ ^^ ^^^^ ^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^ ^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -87,7 +87,7 @@ function good5({a, b}, x) {} */ function good6({a, b}, {c, d}) {} >good6 : ({ a, b }: { a: string; b: string;}, { c, d }: { c: string; d: string;}) => void -> : ^ ^^^ ^^ ^ ^^ ^^^^ ^^^ ^^ ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^ ^ ^^ ^^ ^^ ^ ^^ ^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -106,7 +106,7 @@ function good6({a, b}, {c, d}) {} */ function good7(x, {a, b}, y) {} >good7 : (x: number, { a, b }: { a: string; b: string;}, y: string) => void -> : ^ ^^ ^^ ^^^ ^^ ^ ^^ ^^^^ ^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^ ^^ ^ ^^ ^^ ^^^^^^^^^ >x : number > : ^^^^^^ >a : string @@ -123,7 +123,7 @@ function good7(x, {a, b}, y) {} */ function good8({a, b}) {} >good8 : ({ a, b }: { a: string; b: string;}) => void -> : ^ ^^^ ^^ ^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^ ^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string diff --git a/tests/baselines/reference/jsdocParamTagTypeLiteral.types b/tests/baselines/reference/jsdocParamTagTypeLiteral.types index c159c50346b1e..67272709b3359 100644 --- a/tests/baselines/reference/jsdocParamTagTypeLiteral.types +++ b/tests/baselines/reference/jsdocParamTagTypeLiteral.types @@ -32,15 +32,15 @@ normal(12); */ function foo1(opts1) { >foo1 : (opts1: { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >opts1 : { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined; } -> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ opts1.x; >opts1.x : string > : ^^^^^^ >opts1 : { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined; } -> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ } @@ -49,7 +49,7 @@ foo1({x: 'abc'}); >foo1({x: 'abc'}) : void > : ^^^^ >foo1 : (opts1: { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >{x: 'abc'} : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -64,17 +64,17 @@ foo1({x: 'abc'}); */ function foo2(/** @param opts2 bad idea theatre! */opts2) { >foo2 : (opts2: { anotherX: string; anotherY?: string | undefined;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^^^^^^^^^^ ^^^^^^^^^ >opts2 : { anotherX: string; anotherY?: string | undefined; }[] -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ opts2[0].anotherX; >opts2[0].anotherX : string > : ^^^^^^ >opts2[0] : { anotherX: string; anotherY?: string | undefined; } -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ >opts2 : { anotherX: string; anotherY?: string | undefined; }[] -> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ >0 : 0 > : ^ >anotherX : string @@ -85,7 +85,7 @@ foo2([{anotherX: "world"}]); >foo2([{anotherX: "world"}]) : void > : ^^^^ >foo2 : (opts2: { anotherX: string; anotherY?: string | undefined;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^^^^^^^^^^ ^^^^^^^^^ >[{anotherX: "world"}] : { anotherX: string; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >{anotherX: "world"} : { anotherX: string; } @@ -101,7 +101,7 @@ foo2([{anotherX: "world"}]); */ function foo3(opts3) { >foo3 : (opts3: { x: string;}) => void -> : ^ ^^^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^^^^^^^ >opts3 : { x: string; } > : ^^^^^ ^^^ @@ -117,7 +117,7 @@ foo3({x: 'abc'}); >foo3({x: 'abc'}) : void > : ^^^^ >foo3 : (opts3: { x: string;}) => void -> : ^ ^^^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^^^^^^^ >{x: 'abc'} : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -134,17 +134,17 @@ foo3({x: 'abc'}); */ function foo4(opts4) { >foo4 : (opts4: { x: string; y?: string | undefined; z?: string; w?: string;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^^^^^^^^^^^^ ^^^ ^ ^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^^^^^^^^^^ ^^^ ^ ^^^ ^ ^^^^^^^^^ >opts4 : { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined; }[] -> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ opts4[0].x; >opts4[0].x : string > : ^^^^^^ >opts4[0] : { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined; } -> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opts4 : { x: string; y?: string | undefined; z?: string | undefined; w?: string | undefined; }[] -> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : 0 > : ^ >x : string @@ -155,7 +155,7 @@ foo4([{ x: 'hi' }]); >foo4([{ x: 'hi' }]) : void > : ^^^^ >foo4 : (opts4: { x: string; y?: string | undefined; z?: string; w?: string;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^^^^^^^^^^^^ ^^^ ^ ^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^^ ^^^^^^^^^^ ^^^ ^ ^^^ ^ ^^^^^^^^^ >[{ x: 'hi' }] : { x: string; }[] > : ^^^^^^^^^^^^^^^^ >{ x: 'hi' } : { x: string; } @@ -177,9 +177,9 @@ foo4([{ x: 'hi' }]); */ function foo5(opts5) { >foo5 : (opts5: { help: string; what: { a: string; bad: { idea: string; oh: boolean; }; }; unnest: number;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^ ^^ ^ ^^^^^^^^^ >opts5 : { help: string; what: { a: string; bad: { idea: string; oh: boolean; };}; unnest: number; }[] -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^^^^^^^^^^ ^^^^^ opts5[0].what.bad[0].idea; >opts5[0].what.bad[0].idea : string @@ -189,15 +189,15 @@ function foo5(opts5) { >opts5[0].what.bad : { idea: string; oh: boolean; }[] > : ^^^^^^^^ ^^^^^^ ^^^^^ >opts5[0].what : { a: string; bad: { idea: string; oh: boolean;}; } -> : ^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^^^^ +> : ^^^^^ ^^^^^^^ ^^ ^ ^^ ^ ^^^ >opts5[0] : { help: string; what: { a: string; bad: { idea: string; oh: boolean; };}; unnest: number; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^^^^^^^^^^ ^^^ >opts5 : { help: string; what: { a: string; bad: { idea: string; oh: boolean; };}; unnest: number; }[] -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^^^^^^^^^^ ^^^^^ >0 : 0 > : ^ >what : { a: string; bad: { idea: string; oh: boolean;}; } -> : ^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^^^^ +> : ^^^^^ ^^^^^^^ ^^ ^ ^^ ^ ^^^ >bad : { idea: string; oh: boolean; }[] > : ^^^^^^^^ ^^^^^^ ^^^^^ >0 : 0 @@ -209,9 +209,9 @@ function foo5(opts5) { >opts5[0].unnest : number > : ^^^^^^ >opts5[0] : { help: string; what: { a: string; bad: { idea: string; oh: boolean; };}; unnest: number; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^^^^^^^^^^ ^^^ >opts5 : { help: string; what: { a: string; bad: { idea: string; oh: boolean; };}; unnest: number; }[] -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^^^^^^^^^^^^ ^^^^^ +> : ^^^^^^^^ ^^^^^^^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^^^^^^^^^^ ^^^^^ >0 : 0 > : ^ >unnest : number @@ -222,7 +222,7 @@ foo5([{ help: "help", what: { a: 'a', bad: [{ idea: 'idea', oh: false }] }, unne >foo5([{ help: "help", what: { a: 'a', bad: [{ idea: 'idea', oh: false }] }, unnest: 1 }]) : void > : ^^^^ >foo5 : (opts5: { help: string; what: { a: string; bad: { idea: string; oh: boolean; }; }; unnest: number;}) => void -> : ^ ^^^ ^^ ^ ^^^ ^^ ^ ^^^ ^^ ^ ^^ ^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^ ^^ ^^ ^ ^^ ^^ ^ ^^ ^^ ^ ^^ ^ ^ ^ ^^ ^ ^^^^^^^^^ >[{ help: "help", what: { a: 'a', bad: [{ idea: 'idea', oh: false }] }, unnest: 1 }] : { help: string; what: { a: string; bad: { idea: string; oh: false; }[]; }; unnest: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ help: "help", what: { a: 'a', bad: [{ idea: 'idea', oh: false }] }, unnest: 1 } : { help: string; what: { a: string; bad: { idea: string; oh: false; }[]; }; unnest: number; } diff --git a/tests/baselines/reference/jsdocParseBackquotedParamName.types b/tests/baselines/reference/jsdocParseBackquotedParamName.types index 97c79a9672924..815b8e258d863 100644 --- a/tests/baselines/reference/jsdocParseBackquotedParamName.types +++ b/tests/baselines/reference/jsdocParseBackquotedParamName.types @@ -7,7 +7,7 @@ */ function f(args, bwarg) { >f : (args?: string | undefined, bwarg: (number | null) | null) => void -> : ^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^ >args : string | undefined > : ^^^^^^^^^^^^^^^^^^ >bwarg : number | null diff --git a/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types b/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types index 35bc6b80521b5..87d266d8c7def 100644 --- a/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types +++ b/tests/baselines/reference/jsdocParseDotDotDotInJSDocFunction.types @@ -5,15 +5,15 @@ /** @param {function(...[*])} callback */ function g(callback) { >g : (callback: (...args: [any][]) => any) => void -> : ^ ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^ ^^ ^^^^^^^^^^^^ >callback : (...arg0: [any][]) => any -> : ^^^^^^^^^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^ callback([1], [2], [3]) >callback([1], [2], [3]) : any > : ^^^ >callback : (...arg0: [any][]) => any -> : ^^^^^^^^^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 @@ -34,7 +34,7 @@ function g(callback) { */ var stringFromCharCode = String.fromCharCode; >stringFromCharCode : (...arg0: number[]) => string -> : ^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^ ^^^^^ >String.fromCharCode : (...codes: number[]) => string > : ^^^^ ^^ ^^^^^ >String : StringConstructor diff --git a/tests/baselines/reference/jsdocParseHigherOrderFunction.types b/tests/baselines/reference/jsdocParseHigherOrderFunction.types index c800ca0f14276..7cc63eeeb1bc2 100644 --- a/tests/baselines/reference/jsdocParseHigherOrderFunction.types +++ b/tests/baselines/reference/jsdocParseHigherOrderFunction.types @@ -4,7 +4,7 @@ /** @type {function((string), function((string)): string): string} */ var x = (s, id) => id(s) >x : (arg0: (string), arg1: (arg0: (string)) => string) => string -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^^^^^ +> : ^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >(s, id) => id(s) : (s: string, id: (arg0: (string)) => string) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^^^^ >s : string diff --git a/tests/baselines/reference/jsdocParseStarEquals.types b/tests/baselines/reference/jsdocParseStarEquals.types index 57c749d0aa2e9..3fd176b47c24c 100644 --- a/tests/baselines/reference/jsdocParseStarEquals.types +++ b/tests/baselines/reference/jsdocParseStarEquals.types @@ -5,7 +5,7 @@ @return {*=} */ function f(...args) { >f : (...args?: any[] | undefined) => any | undefined -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ >args : any return null @@ -19,8 +19,8 @@ var x; /** @param {function():*=} f */ function cbf(f) { >cbf : (f?: (() => any) | undefined) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^ ^ ^^^^^^^^^^^^^^^^^^ >f : (() => any) | undefined -> : ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types b/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types index dc2d070d866d4..91c857fd4c52c 100644 --- a/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types +++ b/tests/baselines/reference/jsdocPostfixEqualsAddsOptionality.types @@ -4,7 +4,7 @@ /** @param {number=} a */ function f(a) { >f : (a?: number | undefined) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ >a : number | undefined > : ^^^^^^^^^^^^^^^^^^ @@ -34,19 +34,19 @@ f() >f() : void > : ^^^^ >f : (a?: number | undefined) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ f(null) // should not be allowed >f(null) : void > : ^^^^ >f : (a?: number | undefined) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ f(undefined) >f(undefined) : void > : ^^^^ >f : (a?: number | undefined) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -54,14 +54,14 @@ f(1) >f(1) : void > : ^^^^ >f : (a?: number | undefined) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ /** @param {???!?number?=} a */ function g(a) { >g : (a?: (((((number | null) | null) | null) | null) | null) | undefined) => void -> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^ >a : number | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -91,19 +91,19 @@ g() >g() : void > : ^^^^ >g : (a?: (((((number | null) | null) | null) | null) | null) | undefined) => void -> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^ g(null) >g(null) : void > : ^^^^ >g : (a?: (((((number | null) | null) | null) | null) | null) | undefined) => void -> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^ g(undefined) >g(undefined) : void > : ^^^^ >g : (a?: (((((number | null) | null) | null) | null) | null) | undefined) => void -> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -111,7 +111,7 @@ g(1) >g(1) : void > : ^^^^ >g : (a?: (((((number | null) | null) | null) | null) | null) | undefined) => void -> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/jsdocPrefixPostfixParsing.types b/tests/baselines/reference/jsdocPrefixPostfixParsing.types index 60e8c9ad9bc90..ec97d3bbb844e 100644 --- a/tests/baselines/reference/jsdocPrefixPostfixParsing.types +++ b/tests/baselines/reference/jsdocPrefixPostfixParsing.types @@ -20,7 +20,7 @@ */ function f(x, y, z, a, b, c, e, f, g, h, i, j, k, l, m) { >f : (x: number[], y: number[], z: (number[]), a: any, b: number[] | null, c: (number[]) | null, e: (number | null)[], f: (number | null)[], g: (number | null)[], h: any, i: number[][], j: (number[] | null)[], k: any, l: number extends number ? true : false, m: [number, number?]) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^ ^^^^^^ ^^ ^^^^^^ ^^^ ^^^^^ ^^ ^^^ ^^^^^ ^^ ^^^ ^^^^^ ^^ ^^^^^^^ ^^ ^^ ^^^ ^^^^^ ^^ ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : number[] > : ^^^^^^^^ >y : number[] diff --git a/tests/baselines/reference/jsdocRestParameter_es6.types b/tests/baselines/reference/jsdocRestParameter_es6.types index f4be9f19723d9..885ec7e048b5d 100644 --- a/tests/baselines/reference/jsdocRestParameter_es6.types +++ b/tests/baselines/reference/jsdocRestParameter_es6.types @@ -4,7 +4,7 @@ /** @param {...number} a */ function f(...a) { >f : (...a: number[]) => void -> : ^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : number[] > : ^^^^^^^^ diff --git a/tests/baselines/reference/jsdocReturnTag1.types b/tests/baselines/reference/jsdocReturnTag1.types index 53c18f8193d6a..4f3e5bd14dc70 100644 --- a/tests/baselines/reference/jsdocReturnTag1.types +++ b/tests/baselines/reference/jsdocReturnTag1.types @@ -18,7 +18,7 @@ function f() { */ function f1() { >f1 : () => string | undefined -> : ^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^ return 5; >5 : 5 diff --git a/tests/baselines/reference/jsdocTemplateClass.types b/tests/baselines/reference/jsdocTemplateClass.types index 8298463105522..721f208e5b2cd 100644 --- a/tests/baselines/reference/jsdocTemplateClass.types +++ b/tests/baselines/reference/jsdocTemplateClass.types @@ -37,7 +37,7 @@ class Foo { */ foo(x, y, alpha) { >foo : (x: T, y: Id, alpha: (t: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : Id diff --git a/tests/baselines/reference/jsdocTemplateConstructorFunction2.types b/tests/baselines/reference/jsdocTemplateConstructorFunction2.types index 36b46af54797a..aade697f4981f 100644 --- a/tests/baselines/reference/jsdocTemplateConstructorFunction2.types +++ b/tests/baselines/reference/jsdocTemplateConstructorFunction2.types @@ -39,7 +39,7 @@ function Zet(t) { */ Zet.prototype.add = function(v, o) { >Zet.prototype.add = function(v, o) { this.u = v || o.nested return this.u} : (v: T, o: { nested: T;}) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^ ^^^^^^ >Zet.prototype.add : any > : ^^^ >Zet.prototype : any @@ -51,7 +51,7 @@ Zet.prototype.add = function(v, o) { >add : any > : ^^^ >function(v, o) { this.u = v || o.nested return this.u} : (v: T, o: { nested: T;}) => T -> : ^ ^^ ^^ ^^^ ^^ ^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^ ^^^^^^ >v : T > : ^ >o : { nested: T; } diff --git a/tests/baselines/reference/jsdocTemplateTag.types b/tests/baselines/reference/jsdocTemplateTag.types index fb3ac3391b1ba..60203044210fb 100644 --- a/tests/baselines/reference/jsdocTemplateTag.types +++ b/tests/baselines/reference/jsdocTemplateTag.types @@ -7,7 +7,7 @@ */ function f(a) { >f : (a: T) => () => T -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ >a : T > : ^ @@ -25,7 +25,7 @@ let n = f(1)() >f(1) : () => number > : ^^^^^^^^^^^^ >f : (a: T) => () => T -> : ^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^ >1 : 1 > : ^ @@ -36,7 +36,7 @@ let n = f(1)() */ function g(a) { >g : (a: T) => () => T -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -52,9 +52,9 @@ let s = g('hi')() >g('hi')() : string > : ^^^^^^ >g('hi') : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >g : (a: T) => () => T -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ >'hi' : "hi" > : ^^^^ @@ -63,7 +63,7 @@ let s = g('hi')() */ Element.prototype.animate = function(keyframes) {}; >Element.prototype.animate = function(keyframes) {} : (keyframes: Array) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^ >Element.prototype.animate : (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions) => Animation > : ^ ^^ ^^ ^^^ ^^^^^ >Element.prototype : Element @@ -75,7 +75,7 @@ Element.prototype.animate = function(keyframes) {}; >animate : (keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions) => Animation > : ^ ^^ ^^ ^^^ ^^^^^ >function(keyframes) {} : (keyframes: Array) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^ >keyframes : any[] > : ^^^^^ diff --git a/tests/baselines/reference/jsdocTemplateTag2.types b/tests/baselines/reference/jsdocTemplateTag2.types index 12b04c006dd1b..20e556faffd27 100644 --- a/tests/baselines/reference/jsdocTemplateTag2.types +++ b/tests/baselines/reference/jsdocTemplateTag2.types @@ -3,9 +3,9 @@ === github17339.js === var obj = { >obj : { x: (a: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >{ /** * @template T * @param {T} a * @returns {T} */ x: function (a) { return a; },} : { x: (a: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ /** * @template T @@ -14,9 +14,9 @@ var obj = { */ x: function (a) { >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function (a) { return a; } : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/jsdocTemplateTag3.types b/tests/baselines/reference/jsdocTemplateTag3.types index 45311a690cebd..3bfb67231434f 100644 --- a/tests/baselines/reference/jsdocTemplateTag3.types +++ b/tests/baselines/reference/jsdocTemplateTag3.types @@ -15,7 +15,7 @@ */ function f(t, u, v, w, x) { >f : (t: T, u: U, v: V, w: W, x: X) => W | X -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >u : U @@ -88,7 +88,7 @@ f({ a: 12, b: 'hi', c: null }, undefined, { c: false, d: 12, b: undefined }, 101 >f({ a: 12, b: 'hi', c: null }, undefined, { c: false, d: 12, b: undefined }, 101, 'nope') : 101 | "nope" > : ^^^^^^^^^^^^ >f : (t: T, u: U, v: V, w: W, x: X) => W | X -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 12, b: 'hi', c: null } : { a: number; b: string; c: null; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -126,7 +126,7 @@ f({ a: 12 }, undefined, undefined, 101, 'nope'); >f({ a: 12 }, undefined, undefined, 101, 'nope') : 101 | "nope" > : ^^^^^^^^^^^^ >f : (t: T, u: U, v: V, w: W, x: X) => W | X -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 12 } : { a: number; } > : ^^^^^^^^^^^^^^ >a : number @@ -149,7 +149,7 @@ f({ a: 12 }, undefined, undefined, 101, 'nope'); */ function g(x) { } >g : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/jsdocTemplateTag6.types b/tests/baselines/reference/jsdocTemplateTag6.types index f7c937c6bac41..13a80c5eaf87a 100644 --- a/tests/baselines/reference/jsdocTemplateTag6.types +++ b/tests/baselines/reference/jsdocTemplateTag6.types @@ -8,7 +8,7 @@ */ function f1(x) { >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -22,7 +22,7 @@ const t1 = f1("a"); >f1("a") : "a" > : ^^^ >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >"a" : "a" > : ^^^ @@ -32,7 +32,7 @@ const t2 = f1(["a", ["b", "c"]]); >f1(["a", ["b", "c"]]) : readonly ["a", readonly ["b", "c"]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >["a", ["b", "c"]] : ["a", ["b", "c"]] > : ^^^^^^^^^^^^^^^^^ >"a" : "a" @@ -50,7 +50,7 @@ const t3 = f1({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); >f1({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }) : { readonly a: 1; readonly b: "c"; readonly d: readonly ["e", 2, true, { readonly f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] } : { a: 1; b: "c"; d: ["e", 2, true, { f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : 1 @@ -85,7 +85,7 @@ const t3 = f1({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); */ function f2(x) { >f2 : (x: T) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -100,7 +100,7 @@ const t4 = f2('a'); >f2('a') : "a" > : ^^^ >f2 : (x: T) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >'a' : "a" > : ^^^ @@ -110,7 +110,7 @@ const t5 = f2(['a', ['b', 'c']]); >f2(['a', ['b', 'c']]) : readonly ["a", readonly ["b", "c"]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (x: T) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >['a', ['b', 'c']] : ["a", ["b", "c"]] > : ^^^^^^^^^^^^^^^^^ >'a' : "a" @@ -128,7 +128,7 @@ const t6 = f2({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); >f2({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }) : { readonly a: 1; readonly b: "c"; readonly d: readonly ["e", 2, true, { readonly f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (x: T) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >{ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] } : { a: 1; b: "c"; d: ["e", 2, true, { f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : 1 @@ -163,7 +163,7 @@ const t6 = f2({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); */ function f3(x) { >f3 : (x: T) => T[] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -179,7 +179,7 @@ const t7 = f3("hello"); >f3("hello") : "hello"[] > : ^^^^^^^^^ >f3 : (x: T) => T[] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -189,7 +189,7 @@ const t8 = f3("hello"); >f3("hello") : "hello"[] > : ^^^^^^^^^ >f3 : (x: T) => T[] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -200,7 +200,7 @@ const t8 = f3("hello"); */ function f4(x) { >f4 : (x: [T, T]) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : [T, T] > : ^^^^^^ @@ -218,7 +218,7 @@ const t9 = f4([[1, "x"], [2, "y"]]); >f4([[1, "x"], [2, "y"]]) : readonly [1, "x"] | readonly [2, "y"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (x: [T, T]) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[[1, "x"], [2, "y"]] : [[1, "x"], [2, "y"]] > : ^^^^^^^^^^^^^^^^^^^^ >[1, "x"] : [1, "x"] @@ -240,7 +240,7 @@ const t10 = f4([{ a: 1, b: "x" }, { a: 2, b: "y" }]); >f4([{ a: 1, b: "x" }, { a: 2, b: "y" }]) : { readonly a: 1; readonly b: "x"; } | { readonly a: 2; readonly b: "y"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (x: [T, T]) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[{ a: 1, b: "x" }, { a: 2, b: "y" }] : [{ a: 1; b: "x"; }, { a: 2; b: "y"; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1, b: "x" } : { a: 1; b: "x"; } @@ -271,7 +271,7 @@ const t10 = f4([{ a: 1, b: "x" }, { a: 2, b: "y" }]); */ function f5(obj) { >f5 : (obj: { x: T; y: T; }) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ @@ -289,7 +289,7 @@ const t11 = f5({ x: [1, "x"], y: [2, "y"] }); >f5({ x: [1, "x"], y: [2, "y"] }) : readonly [1, "x"] | readonly [2, "y"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f5 : (obj: { x: T; y: T; }) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ x: [1, "x"], y: [2, "y"] } : { x: [1, "x"]; y: [2, "y"]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : [1, "x"] @@ -315,7 +315,7 @@ const t12 = f5({ x: { a: 1, b: "x" }, y: { a: 2, b: "y" } }); >f5({ x: { a: 1, b: "x" }, y: { a: 2, b: "y" } }) : { readonly a: 1; readonly b: "x"; } | { readonly a: 2; readonly b: "y"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f5 : (obj: { x: T; y: T; }) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ x: { a: 1, b: "x" }, y: { a: 2, b: "y" } } : { x: { a: 1; b: "x"; }; y: { a: 2; b: "y"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : { a: 1; b: "x"; } @@ -363,7 +363,7 @@ class C { */ foo(x) { >foo : (x: U) => U -> : ^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^ >x : U > : ^ @@ -436,7 +436,7 @@ const t14 = t13.foo(["a", ["b", "c"]]); */ function f6(...args) { >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -450,7 +450,7 @@ const t15 = f6(1, 'b', { a: 1, b: 'x' }); >f6(1, 'b', { a: 1, b: 'x' }) : readonly [1, "b", { readonly a: 1; readonly b: "x"; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >'b' : "b" diff --git a/tests/baselines/reference/jsdocTemplateTag7.types b/tests/baselines/reference/jsdocTemplateTag7.types index fea980eebeae2..d7885dfb8cf5d 100644 --- a/tests/baselines/reference/jsdocTemplateTag7.types +++ b/tests/baselines/reference/jsdocTemplateTag7.types @@ -20,7 +20,7 @@ class C { } */ function f(x) { >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/jsdocTemplateTag8.types b/tests/baselines/reference/jsdocTemplateTag8.types index aab64d6471ef7..ed24e1ddd9e29 100644 --- a/tests/baselines/reference/jsdocTemplateTag8.types +++ b/tests/baselines/reference/jsdocTemplateTag8.types @@ -161,7 +161,7 @@ sub_invariant = super_invariant; // Error */ function f(x) {} >f : (x: T) => void -> : ^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/jsdocTemplateTagDefault.types b/tests/baselines/reference/jsdocTemplateTagDefault.types index 5c8aea32481be..67b847c475d92 100644 --- a/tests/baselines/reference/jsdocTemplateTagDefault.types +++ b/tests/baselines/reference/jsdocTemplateTagDefault.types @@ -78,7 +78,7 @@ const aNumber = [0]; */ function f1(a, b) {} >f1 : (a: T, b: U) => void -> : ^ ^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : U @@ -92,7 +92,7 @@ function f1(a, b) {} */ function f2(a, b) {} >f2 : (a: T, b: U) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : U @@ -106,7 +106,7 @@ function f2(a, b) {} */ function f3(a, b) {} >f3 : (a: T, b: U) => void -> : ^ ^^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : U diff --git a/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types b/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types index 98fd9aab45593..2c21e4ce05409 100644 --- a/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types +++ b/tests/baselines/reference/jsdocTypeGenericInstantiationAttempt.types @@ -6,7 +6,7 @@ */ function thing(list) { >thing : (list: Array) => any[] -> : ^ ^^ ^^^ ^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^ >list : any[] > : ^^^^^ diff --git a/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types b/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types index c72ecf7cf6414..5ee4cae80e2c8 100644 --- a/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types +++ b/tests/baselines/reference/jsdocTypeNongenericInstantiationAttempt.types @@ -6,9 +6,9 @@ */ function sayHello(somebody) { >sayHello : (somebody: (m: boolean) => string) => string -> : ^ ^^ ^^^^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >somebody : (m: boolean) => string -> : ^^^^ ^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ return 'Hello ' + somebody; >'Hello ' + somebody : string @@ -16,7 +16,7 @@ function sayHello(somebody) { >'Hello ' : "Hello " > : ^^^^^^^^ >somebody : (m: boolean) => string -> : ^^^^ ^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ } === index2.js === @@ -25,9 +25,9 @@ function sayHello(somebody) { */ function sayHello2(somebody) { >sayHello2 : (somebody: (m: void) => string) => string -> : ^ ^^ ^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >somebody : (m: void) => string -> : ^^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ return 'Hello ' + somebody; >'Hello ' + somebody : string @@ -35,7 +35,7 @@ function sayHello2(somebody) { >'Hello ' : "Hello " > : ^^^^^^^^ >somebody : (m: void) => string -> : ^^^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ } @@ -45,9 +45,9 @@ function sayHello2(somebody) { */ function sayHello3(somebody) { >sayHello3 : (somebody: (m: undefined) => string) => string -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >somebody : (m: undefined) => string -> : ^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ return 'Hello ' + somebody; >'Hello ' + somebody : string @@ -55,7 +55,7 @@ function sayHello3(somebody) { >'Hello ' : "Hello " > : ^^^^^^^^ >somebody : (m: undefined) => string -> : ^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ } @@ -85,9 +85,9 @@ function sayHello4(somebody) { */ function sayHello5(somebody) { >sayHello5 : (somebody: (m: string) => string) => string -> : ^ ^^ ^^^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >somebody : (m: string) => string -> : ^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ return 'Hello ' + somebody; >'Hello ' + somebody : string @@ -95,7 +95,7 @@ function sayHello5(somebody) { >'Hello ' : "Hello " > : ^^^^^^^^ >somebody : (m: string) => string -> : ^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ } @@ -105,9 +105,9 @@ function sayHello5(somebody) { */ function sayHello6(somebody) { >sayHello6 : (somebody: (m: number) => string) => string -> : ^ ^^ ^^^^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >somebody : (m: number) => string -> : ^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ return 'Hello ' + somebody; >'Hello ' + somebody : string @@ -115,7 +115,7 @@ function sayHello6(somebody) { >'Hello ' : "Hello " > : ^^^^^^^^ >somebody : (m: number) => string -> : ^^^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ } @@ -125,9 +125,9 @@ function sayHello6(somebody) { */ function sayHello7(somebody) { >sayHello7 : (somebody: (m: any) => string) => string -> : ^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >somebody : (m: any) => string -> : ^^^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ return 'Hello ' + somebody; >'Hello ' + somebody : string @@ -135,7 +135,7 @@ function sayHello7(somebody) { >'Hello ' : "Hello " > : ^^^^^^^^ >somebody : (m: any) => string -> : ^^^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^ } === index8.js === @@ -148,7 +148,7 @@ function fn() {} */ function sayHello8(somebody) { } >sayHello8 : (somebody: () => void) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^ >somebody : () => void > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/jsdocTypeReferenceToValue.types b/tests/baselines/reference/jsdocTypeReferenceToValue.types index adcdf06da1ae2..43f117fde03c3 100644 --- a/tests/baselines/reference/jsdocTypeReferenceToValue.types +++ b/tests/baselines/reference/jsdocTypeReferenceToValue.types @@ -4,7 +4,7 @@ /** @param {Image} image */ function process(image) { >process : (image: new (width?: number, height?: number) => HTMLImageElement) => HTMLImageElement -> : ^ ^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ >image : new (width?: number, height?: number) => HTMLImageElement > : ^^^^^ ^^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/jsdocTypedefBeforeParenthesizedExpression.types b/tests/baselines/reference/jsdocTypedefBeforeParenthesizedExpression.types index 73d4c0a1a1425..4eee02bdf2b55 100644 --- a/tests/baselines/reference/jsdocTypedefBeforeParenthesizedExpression.types +++ b/tests/baselines/reference/jsdocTypedefBeforeParenthesizedExpression.types @@ -38,7 +38,7 @@ */ function makeSureTypedefsAreStillRecognized(a, b) {} >makeSureTypedefsAreStillRecognized : (a: number, b: number) => void -> : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : number > : ^^^^^^ >b : number diff --git a/tests/baselines/reference/jsdocVariadicType.types b/tests/baselines/reference/jsdocVariadicType.types index 35bd7c33e883c..8b2cf14402a67 100644 --- a/tests/baselines/reference/jsdocVariadicType.types +++ b/tests/baselines/reference/jsdocVariadicType.types @@ -6,7 +6,7 @@ */ const foo = function (a, b, ...r) { }; >foo : (arg0: boolean, arg1: string, ...arg2: any[]) => void -> : ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^ >function (a, b, ...r) { } : (a: boolean, b: string, ...r: any[]) => void > : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ >a : boolean @@ -21,7 +21,7 @@ foo(false, ''); >foo(false, '') : void > : ^^^^ >foo : (arg0: boolean, arg1: string, ...arg2: any[]) => void -> : ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^ >false : false > : ^^^^^ >'' : "" diff --git a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types index ab87b840acde3..bad22b3f2667f 100644 --- a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types +++ b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types @@ -19,9 +19,9 @@ type Tags = "span" | "div"; export const Hoc = ( >Hoc : (TagElement: Tag) => React.SFC -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >( TagElement: Tag,): React.SFC => { const Component = () => ; return Component;} : (TagElement: Tag) => React.SFC -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ TagElement: Tag, >TagElement : Tag diff --git a/tests/baselines/reference/jsxChildrenGenericContextualTypes.types b/tests/baselines/reference/jsxChildrenGenericContextualTypes.types index 70438d3faa4d9..1223ce9e0fb04 100644 --- a/tests/baselines/reference/jsxChildrenGenericContextualTypes.types +++ b/tests/baselines/reference/jsxChildrenGenericContextualTypes.types @@ -18,9 +18,9 @@ namespace JSX { } const Elem = (p: { prop: T, children: (t: T) => T }) =>

; >Elem : (p: { prop: T; children: (t: T) => T; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >(p: { prop: T, children: (t: T) => T }) =>
: (p: { prop: T; children: (t: T) => T; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >p : { prop: T; children: (t: T) => T; } > : ^^^^^^^^ ^^^^^^^^^^^^ ^^^ >prop : T @@ -40,7 +40,7 @@ Elem({prop: {a: "x"}, children: i => ({a: "z"})}); >Elem({prop: {a: "x"}, children: i => ({a: "z"})}) : JSX.Element > : ^^^^^^^^^^^ >Elem : (p: { prop: T; children: (t: T) => T; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >{prop: {a: "x"}, children: i => ({a: "z"})} : { prop: { a: string; }; children: (i: { a: string; }) => { a: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >prop : { a: string; } @@ -72,7 +72,7 @@ const q = ({a: "z"})} /> > ({a: "z"})} /> : JSX.Element > : ^^^^^^^^^^^ >Elem : (p: { prop: T; children: (t: T) => T; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >prop : { a: string; } > : ^^^^^^^^^^^^^^ >{a: "x"} : { a: string; } @@ -102,7 +102,7 @@ const qq = {i => ({a: "z"})} >{i => ({a: "z"})} : JSX.Element > : ^^^^^^^^^^^ >Elem : (p: { prop: T; children: (t: T) => T; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >prop : { a: string; } > : ^^^^^^^^^^^^^^ >{a: "x"} : { a: string; } @@ -124,7 +124,7 @@ const qq = {i => ({a: "z"})} >"z" : "z" > : ^^^ >Elem : (p: { prop: T; children: (t: T) => T; }) => JSX.Element -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ interface LitProps { prop: T, children: (x: this) => T } >prop : T @@ -136,9 +136,9 @@ interface LitProps { prop: T, children: (x: this) => T } const ElemLit = (p: LitProps) =>
; >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >(p: LitProps) =>
: (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >p : LitProps > : ^^^^^^^^^^^ >
: JSX.Element @@ -152,7 +152,7 @@ ElemLit({prop: "x", children: () => "x"}); >ElemLit({prop: "x", children: () => "x"}) : JSX.Element > : ^^^^^^^^^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >{prop: "x", children: () => "x"} : { prop: "x"; children: () => "x"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >prop : "x" @@ -172,7 +172,7 @@ const j = "x"} /> > "x"} /> : JSX.Element > : ^^^^^^^^^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >prop : "x" > : ^^^ >children : () => "x" @@ -188,7 +188,7 @@ const jj = {() => "x"} >{() => "x"} : JSX.Element > : ^^^^^^^^^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >prop : "x" > : ^^^ >() => "x" : () => "x" @@ -196,7 +196,7 @@ const jj = {() => "x"} >"x" : "x" > : ^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ // Should error const arg = "y"} /> @@ -205,7 +205,7 @@ const arg = "y"} /> > "y"} /> : JSX.Element > : ^^^^^^^^^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >prop : "x" > : ^^^ >children : (p: JSX.IntrinsicAttributes & LitProps<"x">) => "y" @@ -223,7 +223,7 @@ const argchild = {p => "y"} >{p => "y"} : JSX.Element > : ^^^^^^^^^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >prop : "x" > : ^^^ >p => "y" : (p: JSX.IntrinsicAttributes & LitProps<"x">) => "y" @@ -233,7 +233,7 @@ const argchild = {p => "y"} >"y" : "y" > : ^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ const mismatched = {() => 12} >mismatched : JSX.Element @@ -241,7 +241,7 @@ const mismatched = {() => 12} >{() => 12} : JSX.Element > : ^^^^^^^^^^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >prop : "x" > : ^^^ >() => 12 : () => number @@ -249,5 +249,5 @@ const mismatched = {() => 12} >12 : 12 > : ^^ >ElemLit : (p: LitProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types index ff3eaf01664be..fde9b894e196e 100644 --- a/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types +++ b/tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.types @@ -40,7 +40,7 @@ export type ReactSingleSelectProps< export function createReactSingleSelect< >createReactSingleSelect : >(WrappedComponent: React.ComponentType) => React.ComponentType> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ WrappedProps extends ReactSelectProps >( diff --git a/tests/baselines/reference/jsxElementType.types b/tests/baselines/reference/jsxElementType.types index fef705bff4988..24ddba9d26fd0 100644 --- a/tests/baselines/reference/jsxElementType.types +++ b/tests/baselines/reference/jsxElementType.types @@ -419,7 +419,7 @@ function ReactNativeFlatList( // testing higher-order component compat function f1 React.ReactElement>(Component: T) { >f1 : React.ReactElement>(Component: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >props : {} > : ^^ >React : any diff --git a/tests/baselines/reference/jsxExcessPropsAndAssignability.types b/tests/baselines/reference/jsxExcessPropsAndAssignability.types index 9d0d5cafdd5b0..cdaf6abeff74c 100644 --- a/tests/baselines/reference/jsxExcessPropsAndAssignability.types +++ b/tests/baselines/reference/jsxExcessPropsAndAssignability.types @@ -15,9 +15,9 @@ import * as React from 'react'; const myHoc = ( >myHoc : (ComposedComponent: React.ComponentClass) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >( ComposedComponent: React.ComponentClass,) => { type WrapperComponentProps = ComposedComponentProps & { myProp: string }; const WrapperComponent: React.ComponentClass = null as any; const props: ComposedComponentProps = null as any; ; ;} : (ComposedComponent: React.ComponentClass) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ComposedComponent: React.ComponentClass, >ComposedComponent : React.ComponentClass diff --git a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types index 3953193d3d6d8..03f4c9c428b10 100644 --- a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types +++ b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types @@ -12,7 +12,7 @@ import { Fragment, createElement } from "react" >Fragment : import("react").ComponentType<{}> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createElement : { (type: "input", props?: (import("react").InputHTMLAttributes & import("react").ClassAttributes) | null, ...children: import("react").ReactNode[]): import("react").DetailedReactHTMLElement, HTMLInputElement>;

, T extends HTMLElement>(type: keyof import("react").ReactHTML, props?: (import("react").ClassAttributes & P) | null, ...children: import("react").ReactNode[]): import("react").DetailedReactHTMLElement;

, T extends SVGElement>(type: keyof import("react").ReactSVG, props?: (import("react").ClassAttributes & P) | null, ...children: import("react").ReactNode[]): import("react").ReactSVGElement;

, T extends Element>(type: string, props?: (import("react").ClassAttributes & P) | null, ...children: import("react").ReactNode[]): import("react").DOMElement;

(type: import("react").SFC

, props?: (import("react").Attributes & P) | null, ...children: import("react").ReactNode[]): import("react").SFCElement

;

(type: import("react").ClassType, import("react").ClassicComponentClass

>, props?: (import("react").ClassAttributes> & P) | null, ...children: import("react").ReactNode[]): import("react").CElement>; , C extends import("react").ComponentClass

>(type: import("react").ClassType, props?: (import("react").ClassAttributes & P) | null, ...children: import("react").ReactNode[]): import("react").CElement;

(type: import("react").SFC

| import("react").ComponentClass

| string, props?: (import("react").Attributes & P) | null, ...children: import("react").ReactNode[]): import("react").ReactElement

; } -> : ^^^ ^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^ ^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^ ^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^ ^^^ +> : ^^^ ^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^ ^^^^^^^ ^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^ ^^ ^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^ ^^^ type CounterProps = { >CounterProps : CounterProps diff --git a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types index c5ea01499d297..d7e4569ee15a2 100644 --- a/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types +++ b/tests/baselines/reference/jsxGenericComponentWithSpreadingResultOfGenericFunction.types @@ -13,7 +13,7 @@ Symbol count: 50,000 declare function omit(names: readonly K[], obj: T): Omit; >omit : { (names: readonly K[], obj: T): Omit; (names: readonly K_1[]): (obj: T_1) => Omit; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >names : readonly K[] > : ^^^^^^^^^^^^ >obj : T @@ -21,7 +21,7 @@ declare function omit(names: readonly K[], obj: T): Omit(names: readonly K[]): (obj: T) => Omit; >omit : { (names: readonly K_1[], obj: T): Omit; (names: readonly K[]): (obj: T) => Omit; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >names : readonly K[] > : ^^^^^^^^^^^^ >obj : T @@ -37,7 +37,7 @@ declare const otherProps: { bar: string, qwe: boolean } declare function GenericComponent(props: T): null >GenericComponent : (props: T) => null -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : T > : ^ @@ -45,11 +45,11 @@ declare function GenericComponent(props: T): null > : JSX.Element > : ^^^^^^^^^^^ >GenericComponent : (props: T) => null -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >omit(['bar'], otherProps) : Omit<{ bar: string; qwe: boolean; }, "bar"> > : ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ >omit : { (names: readonly K[], obj: T): Omit; (names: readonly K[]): (obj: T) => Omit; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >['bar'] : "bar"[] > : ^^^^^^^ >'bar' : "bar" diff --git a/tests/baselines/reference/jsxInExtendsClause.types b/tests/baselines/reference/jsxInExtendsClause.types index 2fa260b1f6d98..8257ea2a127b2 100644 --- a/tests/baselines/reference/jsxInExtendsClause.types +++ b/tests/baselines/reference/jsxInExtendsClause.types @@ -13,7 +13,7 @@ declare namespace React { } declare function createComponentClass

(factory: () => React.ComponentClass

): React.ComponentClass

; >createComponentClass :

(factory: () => React.ComponentClass

) => React.ComponentClass

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >factory : () => React.ComponentClass

> : ^^^^^^ >React : any @@ -27,7 +27,7 @@ class Foo extends createComponentClass(() => class extends React.Component<{}, { >createComponentClass(() => class extends React.Component<{}, {}> { render() { return Hello, world!; }}) : React.Component > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createComponentClass :

(factory: () => React.ComponentClass

) => React.ComponentClass

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => class extends React.Component<{}, {}> { render() { return Hello, world!; }} : () => typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >class extends React.Component<{}, {}> { render() { return Hello, world!; }} : typeof (Anonymous class) diff --git a/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types b/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types index a00e190bb8ce3..2deb445a73ca6 100644 --- a/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types +++ b/tests/baselines/reference/jsxInferenceProducesLiteralAsExpected.types @@ -46,7 +46,7 @@ interface TestProps { } function Test(props: TestProps) { return <>; } >Test : (props: TestProps) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >props : TestProps > : ^^^^^^^^^^^^ ><> : JSX.Element @@ -66,7 +66,7 @@ const el1 = ; > : JSX.Element > : ^^^^^^^^^^^ >Test : (props: TestProps) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >model : TestObject > : ^^^^^^^^^^ >model : TestObject @@ -80,7 +80,7 @@ const el2 = model={model} foo="c" />; > model={model} foo="c" /> : JSX.Element > : ^^^^^^^^^^^ >Test : (props: TestProps) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >model : TestObject > : ^^^^^^^^^^ >model : TestObject diff --git a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types index 2eb92cf158bb2..10e312f76f58d 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types +++ b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types @@ -14,7 +14,7 @@ import * as React from "react"; function SomeComponent(props: { element?: T } & JSX.IntrinsicElements[T]): JSX.Element { >SomeComponent : (props: { element?: T; } & JSX.IntrinsicElements[T]) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : { element?: T; } & JSX.IntrinsicElements[T] > : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >element : T | undefined @@ -34,7 +34,7 @@ function SomeComponent(props: { element?: T } & JSX.In function Test(el: T) { >Test : (el: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >el : T > : ^ @@ -42,7 +42,7 @@ function Test(el: T) { > : JSX.Element > : ^^^^^^^^^^^ >SomeComponent : (props: { element?: T_1; } & JSX.IntrinsicElements[T_1]) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >element : T > : ^ >el : T diff --git a/tests/baselines/reference/jsxLocalNamespaceIndexSignatureNoCrash.types b/tests/baselines/reference/jsxLocalNamespaceIndexSignatureNoCrash.types index 8e2877112299e..d7b8e79c8c7ab 100644 --- a/tests/baselines/reference/jsxLocalNamespaceIndexSignatureNoCrash.types +++ b/tests/baselines/reference/jsxLocalNamespaceIndexSignatureNoCrash.types @@ -13,11 +13,11 @@ export class X { >document.createElement('p') : HTMLParagraphElement > : ^^^^^^^^^^^^^^^^^^^^ >document.createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ >'p' : "p" > : ^^^ } diff --git a/tests/baselines/reference/jsxNamespaceGlobalReexport.types b/tests/baselines/reference/jsxNamespaceGlobalReexport.types index d6ff90ada805e..f06046032ded2 100644 --- a/tests/baselines/reference/jsxNamespaceGlobalReexport.types +++ b/tests/baselines/reference/jsxNamespaceGlobalReexport.types @@ -111,7 +111,7 @@ import { JSXInternal } from '..'; export function jsx( >jsx : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -138,7 +138,7 @@ export function jsx( ): VNode; export function jsx

( >jsx : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

@@ -158,7 +158,7 @@ export function jsx

( export function jsxs( >jsxs : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild[]; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild[]; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -185,7 +185,7 @@ export function jsxs( ): VNode; export function jsxs

( >jsxs : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild[]; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild[]; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

@@ -205,7 +205,7 @@ export function jsxs

( export function jsxDEV( >jsxDEV : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChildren; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChildren; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -232,7 +232,7 @@ export function jsxDEV( ): VNode; export function jsxDEV

( >jsxDEV : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChildren; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChildren; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

diff --git a/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types b/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types index 7ff93c4e7795c..9fe4a3dc37831 100644 --- a/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types +++ b/tests/baselines/reference/jsxNamespaceGlobalReexportMissingAliasTarget.types @@ -114,7 +114,7 @@ import { JSXInternal } from '..'; export function jsx( >jsx : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -141,7 +141,7 @@ export function jsx( ): VNode; export function jsx

( >jsx : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

@@ -161,7 +161,7 @@ export function jsx

( export function jsxs( >jsxs : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild[]; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild[]; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -188,7 +188,7 @@ export function jsxs( ): VNode; export function jsxs

( >jsxs : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild[]; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild[]; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

@@ -208,7 +208,7 @@ export function jsxs

( export function jsxDEV( >jsxDEV : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChildren; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChildren; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -235,7 +235,7 @@ export function jsxDEV( ): VNode; export function jsxDEV

( >jsxDEV : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChildren; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChildren; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

diff --git a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types index f18a7fb36da87..08943f92fb14a 100644 --- a/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types +++ b/tests/baselines/reference/jsxNamespaceImplicitImportJSXNamespace.types @@ -111,7 +111,7 @@ import { JSXInternal } from '..'; export function jsx( >jsx : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -138,7 +138,7 @@ export function jsx( ): VNode; export function jsx

( >jsx : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

@@ -159,7 +159,7 @@ export function jsx

( export function jsxs( >jsxs : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild[]; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild[]; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -186,7 +186,7 @@ export function jsxs( ): VNode; export function jsxs

( >jsxs : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChild[]; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChild[]; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

@@ -207,7 +207,7 @@ export function jsxs

( export function jsxDEV( >jsxDEV : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChildren; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChildren; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: string, >type : string @@ -234,7 +234,7 @@ export function jsxDEV( ): VNode; export function jsxDEV

( >jsxDEV : { (type: string, props: JSXInternal.HTMLAttributes & JSXInternal.SVGAttributes & Record & { children?: ComponentChildren; }, key?: string): VNode;

(type: ComponentType

, props: Attributes & P & { children?: ComponentChildren; }, key?: string): VNode; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ type: ComponentType

, >type : ComponentType

diff --git a/tests/baselines/reference/keyofAndForIn.types b/tests/baselines/reference/keyofAndForIn.types index aff13e2d82b0d..4bf23a4cf8dce 100644 --- a/tests/baselines/reference/keyofAndForIn.types +++ b/tests/baselines/reference/keyofAndForIn.types @@ -5,7 +5,7 @@ function f1(obj: { [P in K]: T }, k: K) { >f1 : (obj: { [P in K]: T; }, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : { [P in K]: T; } > : ^^^^^^^^^^^^^^^^ >k : K @@ -61,7 +61,7 @@ function f1(obj: { [P in K]: T }, k: K) { function f2(obj: { [P in keyof T]: T[P] }, k: keyof T) { >f2 : (obj: { [P in keyof T]: T[P]; }, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : { [P in keyof T]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >k : keyof T @@ -117,7 +117,7 @@ function f2(obj: { [P in keyof T]: T[P] }, k: keyof T) { function f3(obj: { [P in K]: T[P] }, k: K) { >f3 : (obj: { [P in K]: T[P]; }, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : { [P in K]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^ >k : K diff --git a/tests/baselines/reference/keyofAndIndexedAccess.types b/tests/baselines/reference/keyofAndIndexedAccess.types index 92d596f68d0fa..66fb025445e22 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess.types +++ b/tests/baselines/reference/keyofAndIndexedAccess.types @@ -256,7 +256,7 @@ declare let cond: boolean; function getProperty(obj: T, key: K) { >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -273,7 +273,7 @@ function getProperty(obj: T, key: K) { function setProperty(obj: T, key: K, value: T[K]) { >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -306,7 +306,7 @@ function f10(shape: Shape) { >getProperty(shape, "name") : string > : ^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >"name" : "name" @@ -318,7 +318,7 @@ function f10(shape: Shape) { >getProperty(shape, cond ? "width" : "height") : number > : ^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >cond ? "width" : "height" : "width" | "height" @@ -336,7 +336,7 @@ function f10(shape: Shape) { >getProperty(shape, cond ? "name" : "visible") : string | boolean > : ^^^^^^^^^^^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >cond ? "name" : "visible" : "name" | "visible" @@ -352,7 +352,7 @@ function f10(shape: Shape) { >setProperty(shape, "name", "rectangle") : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >"name" : "name" @@ -364,7 +364,7 @@ function f10(shape: Shape) { >setProperty(shape, cond ? "width" : "height", 10) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >cond ? "width" : "height" : "width" | "height" @@ -382,7 +382,7 @@ function f10(shape: Shape) { >setProperty(shape, cond ? "name" : "visible", true) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >cond ? "name" : "visible" : "name" | "visible" @@ -409,7 +409,7 @@ function f11(a: Shape[]) { >getProperty(a, "length") : number > : ^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : Shape[] > : ^^^^^^^ >"length" : "length" @@ -419,7 +419,7 @@ function f11(a: Shape[]) { >setProperty(a, "length", len) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : Shape[] > : ^^^^^^^ >"length" : "length" @@ -440,7 +440,7 @@ function f12(t: [Shape, boolean]) { >getProperty(t, "length") : 2 > : ^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : [Shape, boolean] > : ^^^^^^^^^^^^^^^^ >"length" : "length" @@ -452,7 +452,7 @@ function f12(t: [Shape, boolean]) { >getProperty(t, "0") : Shape > : ^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : [Shape, boolean] > : ^^^^^^^^^^^^^^^^ >"0" : "0" @@ -464,7 +464,7 @@ function f12(t: [Shape, boolean]) { >getProperty(t, "1") : boolean > : ^^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : [Shape, boolean] > : ^^^^^^^^^^^^^^^^ >"1" : "1" @@ -485,7 +485,7 @@ function f13(foo: any, bar: any) { >getProperty(foo, "x") : any > : ^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : any > : ^^^ >"x" : "x" @@ -497,7 +497,7 @@ function f13(foo: any, bar: any) { >getProperty(foo, "100") : any > : ^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : any > : ^^^ >"100" : "100" @@ -509,7 +509,7 @@ function f13(foo: any, bar: any) { >getProperty(foo, bar) : any > : ^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : any > : ^^^ >bar : any @@ -526,7 +526,7 @@ class Component { getProperty(key: K) { >getProperty : (key: K) => PropType[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >key : K > : ^ @@ -544,7 +544,7 @@ class Component { } setProperty(key: K, value: PropType[K]) { >setProperty : (key: K, value: PropType[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >key : K > : ^ >value : PropType[K] @@ -685,7 +685,7 @@ function f20(component: Component) { function pluck(array: T[], key: K) { >pluck : (array: T[], key: K) => T[K][] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >array : T[] > : ^^^ >key : K @@ -724,7 +724,7 @@ function f30(shapes: Shape[]) { >pluck(shapes, "name") : string[] > : ^^^^^^^^ >pluck : (array: T[], key: K) => T[K][] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >shapes : Shape[] > : ^^^^^^^ >"name" : "name" @@ -736,7 +736,7 @@ function f30(shapes: Shape[]) { >pluck(shapes, "width") : number[] > : ^^^^^^^^ >pluck : (array: T[], key: K) => T[K][] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >shapes : Shape[] > : ^^^^^^^ >"width" : "width" @@ -748,7 +748,7 @@ function f30(shapes: Shape[]) { >pluck(shapes, cond ? "name" : "visible") : (string | boolean)[] > : ^^^^^^^^^^^^^^^^^^^^ >pluck : (array: T[], key: K) => T[K][] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >shapes : Shape[] > : ^^^^^^^ >cond ? "name" : "visible" : "name" | "visible" @@ -763,7 +763,7 @@ function f30(shapes: Shape[]) { function f31(key: K) { >f31 : (key: K) => Shape[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ >key : K > : ^ @@ -800,7 +800,7 @@ function f31(key: K) { function f32(key: K) { >f32 : (key: K) => Shape[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ >key : K > : ^ @@ -837,7 +837,7 @@ function f32(key: K) { function f33(shape: S, key: K) { >f33 : (shape: S, key: K) => S[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : S > : ^ >key : K @@ -849,7 +849,7 @@ function f33(shape: S, key: K) { >getProperty(shape, "name") : S["name"] > : ^^^^^^^^^ >getProperty : (obj: T, key: K_1) => T[K_1] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >shape : S > : ^ >"name" : "name" @@ -861,7 +861,7 @@ function f33(shape: S, key: K) { >getProperty(shape, key) : S[K] > : ^^^^ >getProperty : (obj: T, key: K_1) => T[K_1] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >shape : S > : ^ >key : K @@ -884,7 +884,7 @@ function f34(ts: TaggedShape) { >f33(ts, "tag") : string > : ^^^^^^ >f33 : (shape: S, key: K) => S[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >ts : TaggedShape > : ^^^^^^^^^^^ >"tag" : "tag" @@ -896,7 +896,7 @@ function f34(ts: TaggedShape) { >getProperty(ts, "tag") : string > : ^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >ts : TaggedShape > : ^^^^^^^^^^^ >"tag" : "tag" @@ -973,7 +973,7 @@ function f40(c: C) { function f50(k: keyof T, s: string) { >f50 : (k: keyof T, s: string) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >k : keyof T > : ^^^^^^^ >s : string @@ -998,7 +998,7 @@ function f50(k: keyof T, s: string) { function f51(k: K, s: string) { >f51 : (k: K, s: string) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >k : K > : ^ >s : string @@ -1023,7 +1023,7 @@ function f51(k: K, s: string) { function f52(obj: { [x: string]: boolean }, k: Exclude, s: string, n: number) { >f52 : (obj: { [x: string]: boolean; }, k: Exclude, s: string, n: number) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : { [x: string]: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string @@ -1068,7 +1068,7 @@ function f52(obj: { [x: string]: boolean }, k: Exclude, s: s function f53>(obj: { [x: string]: boolean }, k: K, s: string, n: number) { >f53 : >(obj: { [x: string]: boolean; }, k: K, s: string, n: number) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : { [x: string]: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string @@ -1113,7 +1113,7 @@ function f53>(obj: { [x: string]: boolean function f54(obj: T, key: keyof T) { >f54 : (obj: T, key: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : keyof T @@ -1146,7 +1146,7 @@ function f54(obj: T, key: keyof T) { function f55(obj: T, key: K) { >f55 : (obj: T, key: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -1179,7 +1179,7 @@ function f55(obj: T, key: K) { function f60(source: T, target: T) { >f60 : (source: T, target: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >source : T > : ^ >target : T @@ -1213,7 +1213,7 @@ function f70(func: (k1: keyof (T | U), k2: keyof (T & U)) => void) { >f70 : (func: (k1: keyof (T | U), k2: keyof (T & U)) => void) => void > : ^ ^^ ^^^^^^^^^ >func : (k1: keyof (T | U), k2: keyof (T & U)) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >k1 : keyof T & keyof U > : ^^^^^^^^^^^^^^^^^ >k2 : keyof T | keyof U @@ -1223,7 +1223,7 @@ function f70(func: (k1: keyof (T | U), k2: keyof (T & U)) => void) { >func<{ a: any, b: any }, { a: any, c: any }>('a', 'a') : void > : ^^^^ >func : (k1: keyof (T | U), k2: keyof (T & U)) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : any > : ^^^ >b : any @@ -1241,7 +1241,7 @@ function f70(func: (k1: keyof (T | U), k2: keyof (T & U)) => void) { >func<{ a: any, b: any }, { a: any, c: any }>('a', 'b') : void > : ^^^^ >func : (k1: keyof (T | U), k2: keyof (T & U)) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : any > : ^^^ >b : any @@ -1259,7 +1259,7 @@ function f70(func: (k1: keyof (T | U), k2: keyof (T & U)) => void) { >func<{ a: any, b: any }, { a: any, c: any }>('a', 'c') : void > : ^^^^ >func : (k1: keyof (T | U), k2: keyof (T & U)) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : any > : ^^^ >b : any @@ -1278,7 +1278,7 @@ function f71(func: (x: T, y: U) => Partial) { >f71 : (func: (x: T, y: U) => Partial) => void > : ^ ^^ ^^^^^^^^^ >func : (x: T, y: U) => Partial -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1290,7 +1290,7 @@ function f71(func: (x: T, y: U) => Partial) { >func({ a: 1, b: "hello" }, { c: true }) : Partial<{ a: number; b: string; } & { c: boolean; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >func : (x: T, y: U) => Partial -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1337,7 +1337,7 @@ function f72(func: (x: T, y: U, k: K) => (T & >f72 : (func: (x: T, y: U, k: K) => (T & U)[K]) => void > : ^ ^^ ^^^^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1351,7 +1351,7 @@ function f72(func: (x: T, y: U, k: K) => (T & >func({ a: 1, b: "hello" }, { c: true }, 'a') : number > : ^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1377,7 +1377,7 @@ function f72(func: (x: T, y: U, k: K) => (T & >func({ a: 1, b: "hello" }, { c: true }, 'b') : string > : ^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1403,7 +1403,7 @@ function f72(func: (x: T, y: U, k: K) => (T & >func({ a: 1, b: "hello" }, { c: true }, 'c') : boolean > : ^^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1428,7 +1428,7 @@ function f73(func: (x: T, y: U, k: K) => (T & U)[ >f73 : (func: (x: T, y: U, k: K) => (T & U)[K]) => void > : ^ ^^ ^^^^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1442,7 +1442,7 @@ function f73(func: (x: T, y: U, k: K) => (T & U)[ >func({ a: 1, b: "hello" }, { c: true }, 'a') : number > : ^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1468,7 +1468,7 @@ function f73(func: (x: T, y: U, k: K) => (T & U)[ >func({ a: 1, b: "hello" }, { c: true }, 'b') : string > : ^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1494,7 +1494,7 @@ function f73(func: (x: T, y: U, k: K) => (T & U)[ >func({ a: 1, b: "hello" }, { c: true }, 'c') : boolean > : ^^^^^^^ >func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1519,7 +1519,7 @@ function f74(func: (x: T, y: U, k: K) => (T | U)[ >f74 : (func: (x: T, y: U, k: K) => (T | U)[K]) => void > : ^ ^^ ^^^^^^^^^ >func : (x: T, y: U, k: K) => (T | U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1533,7 +1533,7 @@ function f74(func: (x: T, y: U, k: K) => (T | U)[ >func({ a: 1, b: "hello" }, { a: 2, b: true }, 'a') : number > : ^^^^^^ >func : (x: T, y: U, k: K) => (T | U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1563,7 +1563,7 @@ function f74(func: (x: T, y: U, k: K) => (T | U)[ >func({ a: 1, b: "hello" }, { a: 2, b: true }, 'b') : string | boolean > : ^^^^^^^^^^^^^^^^ >func : (x: T, y: U, k: K) => (T | U)[K] -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1590,7 +1590,7 @@ function f74(func: (x: T, y: U, k: K) => (T | U)[ function f80(obj: T) { >f80 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : { x: any; } > : ^^^^^ ^^^ >x : any @@ -1677,7 +1677,7 @@ function f80(obj: T) { function f81(obj: T) { >f81 : (obj: T) => T["a"]["x"] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : { x: any; } > : ^^^^^ ^^^ >x : any @@ -1710,7 +1710,7 @@ function f82() { >f81({ a: { x: "hello" } }) : string > : ^^^^^^ >f81 : (obj: T) => T["a"]["x"] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ a: { x: "hello" } } : { a: { x: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^ >a : { x: string; } @@ -1728,7 +1728,7 @@ function f82() { >f81({ a: { x: 42 } }) : number > : ^^^^^^ >f81 : (obj: T) => T["a"]["x"] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ a: { x: 42 } } : { a: { x: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^ >a : { x: number; } @@ -1743,7 +1743,7 @@ function f82() { function f83(obj: T, key: K) { >f83 : (obj: T, key: K) => T[K]["x"] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ >x : any @@ -1778,7 +1778,7 @@ function f84() { >f83({ foo: { x: "hello" } }, "foo") : string > : ^^^^^^ >f83 : (obj: T, key: K) => T[K]["x"] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ foo: { x: "hello" } } : { foo: { x: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >foo : { x: string; } @@ -1798,7 +1798,7 @@ function f84() { >f83({ bar: { x: 42 } }, "bar") : number > : ^^^^^^ >f83 : (obj: T, key: K) => T[K]["x"] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ bar: { x: 42 } } : { bar: { x: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >bar : { x: number; } @@ -1823,7 +1823,7 @@ class C1 { get(key: K) { >get : (key: K) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >key : K > : ^ @@ -1837,7 +1837,7 @@ class C1 { } set(key: K, value: this[K]) { >set : (key: K, value: this[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >key : K > : ^ >value : this[K] @@ -1885,11 +1885,11 @@ class C1 { >this.get("x") : this["x"] > : ^^^^^^^^^ >this.get : (key: K) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >this : this > : ^^^^ >get : (key: K) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >"x" : "x" > : ^^^ @@ -1899,7 +1899,7 @@ class C1 { >getProperty(this, "x") : this["x"] > : ^^^^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >"x" : "x" @@ -1933,11 +1933,11 @@ class C1 { >this.set("x", 42) : void > : ^^^^ >this.set : (key: K, value: this[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >set : (key: K, value: this[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >"x" : "x" > : ^^^ >42 : 42 @@ -1947,7 +1947,7 @@ class C1 { >setProperty(this, "x", 42) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >"x" : "x" @@ -1973,7 +1973,7 @@ type S2 = { function f90(x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]) { >f90 : (x1: S2[keyof S2], x2: T[keyof S2], x3: S2[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x1 : string > : ^^^^^^ >x2 : T[keyof S2] @@ -2056,7 +2056,7 @@ function f90(x1: S2[keyof S2], x2: T[keyof S2] function f91(x: T, y: T[keyof T], z: T[K]) { >f91 : (x: T, y: T[keyof T], z: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T[keyof T] @@ -2095,7 +2095,7 @@ function f91(x: T, y: T[keyof T], z: T[K]) { function f92(x: T, y: T[keyof T], z: T[K]) { >f92 : (x: T, y: T[keyof T], z: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : T[keyof T] @@ -2140,7 +2140,7 @@ class Base { get(prop: K) { >get : (prop: K) => this[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >prop : K > : ^ @@ -2154,7 +2154,7 @@ class Base { } set(prop: K, value: this[K]) { >set : (prop: K, value: this[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >prop : K > : ^ >value : this[K] @@ -2242,7 +2242,7 @@ class OtherPerson { >setProperty(this, "parts", parts) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >"parts" : "parts" @@ -2258,7 +2258,7 @@ class OtherPerson { >getProperty(this, "parts") : this["parts"] > : ^^^^^^^^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >"parts" : "parts" @@ -2270,7 +2270,7 @@ class OtherPerson { function path(obj: T, key1: K1): T[K1]; >path : { (obj: T, key1: K1): T[K1]; (obj: T_1, key1: K1_1, key2: K2): T_1[K1_1][K2]; (obj: T_1, key1: K1_1, key2: K2, key3: K3): T_1[K1_1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >obj : T > : ^ >key1 : K1 @@ -2278,7 +2278,7 @@ function path(obj: T, key1: K1): T[K1]; function path(obj: T, key1: K1, key2: K2): T[K1][K2]; >path : { (obj: T_1, key1: K1_1): T_1[K1_1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T_1, key1: K1_1, key2: K2_1, key3: K3): T_1[K1_1][K2_1][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >obj : T > : ^ >key1 : K1 @@ -2288,7 +2288,7 @@ function path(obj: T, key1: K1, k function path(obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; >path : { (obj: T_1, key1: K1_1): T_1[K1_1]; (obj: T_1, key1: K1_1, key2: K2_1): T_1[K1_1][K2_1]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >obj : T > : ^ >key1 : K1 @@ -2300,7 +2300,7 @@ function pathpath : { (obj: T, key1: K1): T[K1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >obj : any > : ^^^ >keys : (string | number)[] @@ -2308,7 +2308,7 @@ function path(obj: any, ...keys: (string | number)[]): any; function path(obj: any, ...keys: (string | number)[]): any { >path : { (obj: T, key1: K1): T[K1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >obj : any > : ^^^ >keys : (string | number)[] @@ -2374,7 +2374,7 @@ function f1(thing: Thing) { >path(thing, 'a') : { x: number; y: string; } > : ^^^^^ ^^^^^ ^^^ >path : { (obj: T, key1: K1): T[K1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >thing : Thing > : ^^^^^ >'a' : "a" @@ -2386,7 +2386,7 @@ function f1(thing: Thing) { >path(thing, 'a', 'y') : string > : ^^^^^^ >path : { (obj: T, key1: K1): T[K1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >thing : Thing > : ^^^^^ >'a' : "a" @@ -2400,7 +2400,7 @@ function f1(thing: Thing) { >path(thing, 'b') : boolean > : ^^^^^^^ >path : { (obj: T, key1: K1): T[K1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >thing : Thing > : ^^^^^ >'b' : "b" @@ -2412,7 +2412,7 @@ function f1(thing: Thing) { >path(thing, ...['a', 'x']) : any > : ^^^ >path : { (obj: T, key1: K1): T[K1]; (obj: T, key1: K1, key2: K2): T[K1][K2]; (obj: T, key1: K1, key2: K2, key3: K3): T[K1][K2][K3]; (obj: any, ...keys: (string | number)[]): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >thing : Thing > : ^^^^^ >...['a', 'x'] : string @@ -2429,9 +2429,9 @@ function f1(thing: Thing) { const assignTo2 = (object: T, key1: K1, key2: K2) => >assignTo2 : (object: T, key1: K1, key2: K2) => (value: T[K1][K2]) => T[K1][K2] -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^ >(object: T, key1: K1, key2: K2) => (value: T[K1][K2]) => object[key1][key2] = value : (object: T, key1: K1, key2: K2) => (value: T[K1][K2]) => T[K1][K2] -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^ >object : T > : ^ >key1 : K1 @@ -2463,7 +2463,7 @@ const assignTo2 = (object: T, key declare function one(handler: (t: T) => void): T >one : (handler: (t: T) => void) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >handler : (t: T) => void > : ^ ^^ ^^^^^ >t : T @@ -2475,7 +2475,7 @@ var empty = one(() => {}) // inferred as {}, expected >one(() => {}) : unknown > : ^^^^^^^ >one : (handler: (t: T) => void) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => {} : () => void > : ^^^^^^^^^^ @@ -2487,7 +2487,7 @@ type Handlers = { [K in keyof T]: (t: T[K]) => void } declare function on(handlerHash: Handlers): T >on : (handlerHash: Handlers) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >handlerHash : Handlers > : ^^^^^^^^^^^ @@ -2497,7 +2497,7 @@ var hashOfEmpty1 = on({ test: () => {} }); // {} >on({ test: () => {} }) : { test: unknown; } > : ^^^^^^^^^^^^^^^^^^ >on : (handlerHash: Handlers) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ test: () => {} } : { test: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^ >test : () => void @@ -2511,7 +2511,7 @@ var hashOfEmpty2 = on({ test: (x: boolean) => {} }); // { test: boolean } >on({ test: (x: boolean) => {} }) : { test: boolean; } > : ^^^^^^^^^^^^^^^^^^ >on : (handlerHash: Handlers) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ test: (x: boolean) => {} } : { test: (x: boolean) => void; } > : ^^^^^^^^^ ^^ ^^^^^^^^^^^^ >test : (x: boolean) => void @@ -2543,7 +2543,7 @@ declare class Component1 { get(key: K): (Data & Computed)[K]; >get : (key: K) => (Data & Computed)[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ } @@ -2576,11 +2576,11 @@ c1.get("hello"); >c1.get("hello") : string > : ^^^^^^ >c1.get : (key: K) => ({ hello: string; } & unknown)[K] -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ >c1 : Component1<{ hello: string; }, unknown> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : (key: K) => ({ hello: string; } & unknown)[K] -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^ ^ >"hello" : "hello" > : ^^^^^^^ @@ -2606,7 +2606,7 @@ declare class Component2 { get(key: K): (Data & Computed)[K]; >get : (key: K) => (Data & Computed)[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ } @@ -2621,7 +2621,7 @@ interface R { function f(p: K) { >f : (p: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >p : K > : ^ @@ -2663,7 +2663,7 @@ type MethodDescriptor = { declare function dispatchMethod(name: M['name'], args: M['args']): M['returnValue']; >dispatchMethod : (name: M["name"], args: M["args"]) => M["returnValue"] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >name : M["name"] > : ^^^^^^^^^ >args : M["args"] @@ -2692,7 +2692,7 @@ let result = dispatchMethod("someMethod", ["hello", 35]); >dispatchMethod("someMethod", ["hello", 35]) : string[] > : ^^^^^^^^ >dispatchMethod : (name: M["name"], args: M["args"]) => M["returnValue"] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >"someMethod" : "someMethod" > : ^^^^^^^^^^^^ >["hello", 35] : [string, number] @@ -2714,7 +2714,7 @@ let MyThingy: { [key in KeyTypes]: string[] }; function addToMyThingy(key: S) { >addToMyThingy : (key: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : S > : ^ @@ -2751,7 +2751,7 @@ type Handler = { function onChangeGenericFunction(handler: Handler) { >onChangeGenericFunction : (handler: Handler) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >handler : Handler > : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^ >preset : number @@ -2774,7 +2774,7 @@ function onChangeGenericFunction(handler: Handler) { function updateIds, K extends string>( >updateIds : , K extends string>(obj: T, idFields: K[], idMapping: Partial>) => Record -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ obj: T, >obj : T @@ -2835,7 +2835,7 @@ function updateIds, K extends string>( function updateIds2( >updateIds2 : (obj: T, key: K, stringMap: { [oldId: string]: string; }) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : string > : ^^^^^^ @@ -2877,7 +2877,7 @@ function updateIds2( declare function head>(list: T): T[0]; >head : >(list: T) => T[0] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >list : T > : ^ @@ -2926,13 +2926,13 @@ class Form { private childFormFactories: {[K in keyof T]: (v: T[K]) => Form} >childFormFactories : { [K in keyof T]: (v: T[K]) => Form; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >v : T[K] > : ^^^^ public set(prop: K, value: T[K]) { >set : (prop: K, value: T[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >prop : K > : ^ >value : T[K] @@ -2942,13 +2942,13 @@ class Form { >this.childFormFactories[prop](value) : Form > : ^^^^^^^^^^ >this.childFormFactories[prop] : { [K_1 in keyof T]: (v: T[K_1]) => Form; }[K] -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^ >this.childFormFactories : { [K_1 in keyof T]: (v: T[K_1]) => Form; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >this : this > : ^^^^ >childFormFactories : { [K_1 in keyof T]: (v: T[K_1]) => Form; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >prop : K > : ^ >value : T[K] @@ -2982,11 +2982,11 @@ class SampleClass

{ >Object.freeze(props) : Readonly

> : ^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >props : P > : ^ } @@ -3000,7 +3000,7 @@ interface Foo { declare function merge(obj1: T, obj2: U): T & U; >merge : (obj1: T, obj2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >obj1 : T > : ^ >obj2 : U @@ -3034,7 +3034,7 @@ class AnotherSampleClass extends SampleClass { >merge(props, foo) : T & Foo > : ^^^^^^^ >merge : (obj1: T_1, obj2: U) => T_1 & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >props : T > : ^ >foo : Foo @@ -3073,7 +3073,7 @@ new AnotherSampleClass({}); // Positive repro from #17166 function f3>(t: T, k: K, tk: T[K]): void { >f3 : >(t: T, k: K, tk: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >k : K @@ -3192,7 +3192,7 @@ type SimpleDBRecord = { staticField: number } & DBBoolTable function getFlagsFromSimpleRecord(record: SimpleDBRecord, flags: Flag[]) { >getFlagsFromSimpleRecord : (record: SimpleDBRecord, flags: Flag[]) => SimpleDBRecord[Flag] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >record : SimpleDBRecord > : ^^^^^^^^^^^^^^^^^^^^ >flags : Flag[] @@ -3221,7 +3221,7 @@ type DynamicDBRecord = ({ dynamicField: number } | { dynami function getFlagsFromDynamicRecord(record: DynamicDBRecord, flags: Flag[]) { >getFlagsFromDynamicRecord : (record: DynamicDBRecord, flags: Flag[]) => DynamicDBRecord[Flag] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >record : DynamicDBRecord > : ^^^^^^^^^^^^^^^^^^^^^ >flags : Flag[] @@ -3250,13 +3250,13 @@ interface I { declare function take(p: T): void; >take : (p: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : T > : ^ function fn(o: T, k: K) { >fn : (o: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ >k : K @@ -3266,7 +3266,7 @@ function fn(o: T, k: K) { >take<{} | null | undefined>(o[k]) : void > : ^^^^ >take : (p: T_1) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >o[k] : T[K] > : ^^^^ >o : T @@ -3278,7 +3278,7 @@ function fn(o: T, k: K) { >take(o[k]) : void > : ^^^^ >take : (p: T_1) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >o[k] : T[K] > : ^^^^ >o : T @@ -3320,7 +3320,7 @@ type Foo7 = T; declare function f7(type: K): Foo7; >f7 : (type: K) => Foo7 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >type : K > : ^ @@ -3336,7 +3336,7 @@ type DictDict = { [key in V]: Dict }; function ff1(dd: DictDict, k1: V, k2: T): number { >ff1 : (dd: DictDict, k1: V, k2: T) => number -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dd : DictDict > : ^^^^^^^^^^^^^^ >k1 : V @@ -3359,7 +3359,7 @@ function ff1(dd: DictDict, k1: V, k2: function ff2(dd: DictDict, k1: V, k2: T): number { >ff2 : (dd: DictDict, k1: V, k2: T) => number -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dd : DictDict > : ^^^^^^^^^^^^^^ >k1 : V @@ -3390,9 +3390,9 @@ function ff2(dd: DictDict, k1: V, k2: const cf1 = (t: T, k: K) => >cf1 : (t: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(t: T, k: K) =>{ const s: string = t[k]; t.cool;} : (t: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >cool : string > : ^^^^^^ >t : T @@ -3422,9 +3422,9 @@ const cf1 = (t: T, k: K) => >cf2 : (t: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(t: T, k: K) =>{ const s: string = t[k]; t.cool;} : (t: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >k : K diff --git a/tests/baselines/reference/keyofAndIndexedAccess2.types b/tests/baselines/reference/keyofAndIndexedAccess2.types index b011829873acc..83b3d17abdf17 100644 --- a/tests/baselines/reference/keyofAndIndexedAccess2.types +++ b/tests/baselines/reference/keyofAndIndexedAccess2.types @@ -133,7 +133,7 @@ function f1(obj: { a: number, b: 0 | 1, c: string }, k0: 'a', k1: 'a' | 'b', k2: function f2(a: { x: number, y: number }, b: { [key: string]: number }, c: T, k: keyof T) { >f2 : (a: { x: number; y: number; }, b: { [key: string]: number; }, c: T, k: keyof T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >key : string > : ^^^^^^ >a : { x: number; y: number; } @@ -282,7 +282,7 @@ function f2(a: { x: number, y: number }, b: function f3(a: { [P in K]: number }, b: { [key: string]: number }, k: K) { >f3 : (a: { [P in K]: number; }, b: { [key: string]: number; }, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : { [P in K]: number; } > : ^^^^^^^^^^^^^^^^^^^^^ >b : { [key: string]: number; } @@ -331,7 +331,7 @@ function f3(a: { [P in K]: number }, b: { [key: string]: numbe function f3b(a: { [P in K]: number }, b: { [P in string]: number }, k: K) { >f3b : (a: { [P in K]: number; }, b: { [P in string]: number; }, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : { [P in K]: number; } > : ^^^^^^^^^^^^^^^^^^^^^ >b : { [x: string]: number; } @@ -358,7 +358,7 @@ function f3b(a: { [P in K]: number }, b: { [P in string]: numb function f4(a: { [key: string]: number }[K], b: number) { >f4 : (a: { [key: string]: number; }[K], b: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : number > : ^^^^^^ >key : string @@ -393,7 +393,7 @@ type Item = { a: string, b: number }; function f10(obj: T, k1: string, k2: keyof Item, k3: keyof T, k4: K) { >f10 : (obj: T, k1: string, k2: keyof Item, k3: keyof T, k4: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >k1 : string @@ -460,7 +460,7 @@ type Dict = Record; function f11(obj: Dict, k1: keyof Dict, k2: K) { >f11 : (obj: Dict, k1: keyof Dict, k2: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Dict > : ^^^^ >k1 : string @@ -507,7 +507,7 @@ function f11(obj: Dict, k1: keyof Dict, k2: K) { function f12, K extends keyof T>(obj: T, k1: keyof Dict, k2: keyof T, k3: K) { >f12 : , K extends keyof T>(obj: T, k1: keyof Dict, k2: keyof T, k3: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >k1 : string @@ -595,7 +595,7 @@ export interface EntityState { export function getAllEntities(state: EntityState): E[] { >getAllEntities : (state: EntityState) => E[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >state : EntityState > : ^^^^^^^^^^^^^^ @@ -630,7 +630,7 @@ export function getAllEntities(state: EntityState): E[] { export function getEntity(id: IdOf, state: EntityState): E | undefined { >getEntity : (id: IdOf, state: EntityState) => E | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >id : IdOf > : ^^^^^^^ >state : EntityState @@ -686,7 +686,7 @@ interface Type { function get123(): Type[K] { >get123 : () => Type[K] -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return 123; // Error >123 : 123 @@ -715,7 +715,7 @@ type B = A<{ [Q in keyof T]: StrictExclude, {}>; }>; function fn} | {elements: Array}>(param: T, cb: (element: T['elements'][number]) => void) { >fn : ; } | { elements: Array; }>(param: T, cb: (element: T["elements"][number]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >elements : string[] > : ^^^^^^^^ >elements : number[] @@ -746,7 +746,7 @@ function fn} | {elements: Array}>(par function fn2>(param: T, cb: (element: T[number]) => void) { >fn2 : >(param: T, cb: (element: T[number]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >param : T > : ^ >cb : (element: T[number]) => void @@ -771,7 +771,7 @@ function fn2>(param: T, cb: (element: T[number]) => void function fn3>(param: T, cb: (element: T[number]) => void) { >fn3 : >(param: T, cb: (element: T[number]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >param : T > : ^ >cb : (element: T[number]) => void diff --git a/tests/baselines/reference/keyofAndIndexedAccessErrors.types b/tests/baselines/reference/keyofAndIndexedAccessErrors.types index cf4d601035bae..f5556a79ae3cb 100644 --- a/tests/baselines/reference/keyofAndIndexedAccessErrors.types +++ b/tests/baselines/reference/keyofAndIndexedAccessErrors.types @@ -172,7 +172,7 @@ declare let cond: boolean; function getProperty(obj: T, key: K) { >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -189,7 +189,7 @@ function getProperty(obj: T, key: K) { function setProperty(obj: T, key: K, value: T[K]) { >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >key : K @@ -222,7 +222,7 @@ function f10(shape: Shape) { >getProperty(shape, "name") : string > : ^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >"name" : "name" @@ -234,7 +234,7 @@ function f10(shape: Shape) { >getProperty(shape, "size") : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >"size" : "size" @@ -246,7 +246,7 @@ function f10(shape: Shape) { >getProperty(shape, cond ? "name" : "size") : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >getProperty : (obj: T, key: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >cond ? "name" : "size" : "name" | "size" @@ -262,7 +262,7 @@ function f10(shape: Shape) { >setProperty(shape, "name", "rectangle") : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >"name" : "name" @@ -274,7 +274,7 @@ function f10(shape: Shape) { >setProperty(shape, "size", 10) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >"size" : "size" @@ -286,7 +286,7 @@ function f10(shape: Shape) { >setProperty(shape, cond ? "name" : "size", 10) : void > : ^^^^ >setProperty : (obj: T, key: K, value: T[K]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >cond ? "name" : "size" : "name" | "size" @@ -303,7 +303,7 @@ function f10(shape: Shape) { function f20(x: T | U, y: T & U, k1: keyof (T | U), k2: keyof T & keyof U, k3: keyof (T & U), k4: keyof T | keyof U) { >f20 : (x: T | U, y: T & U, k1: keyof (T | U), k2: keyof T & keyof U, k3: keyof (T & U), k4: keyof T | keyof U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T | U > : ^^^^^ >y : T & U @@ -481,7 +481,7 @@ function f20(x: T | U, y: T & U, k1: keyof (T | U), k2: keyof T & keyof U, // Repro from #17166 function f3, U extends T, J extends K>( >f3 : , U extends T, J extends K>(t: T, k: K, tk: T[K], u: U, j: J, uk: U[K], tj: T[J], uj: U[J]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ t: T, k: K, tk: T[K], u: U, j: J, uk: U[K], tj: T[J], uj: U[J]): void { >t : T @@ -615,7 +615,7 @@ function f3, U extends T, J extends K>( // The constraint of 'keyof T' is 'keyof T' function f4(k: keyof T) { >f4 : (k: keyof T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >k : keyof T > : ^^^^^^^ @@ -671,7 +671,7 @@ const b1: Result1['b'] = 'b'; function test1, K extends keyof T>(t: T, k: K) { >test1 : , K extends keyof T>(t: T, k: K) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >k : K @@ -722,7 +722,7 @@ function test1, K extends keyof T>(t: T, k: K) { function f30() { >f30 : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ let x: Partial>[K] = "hello"; >x : Partial>[K] @@ -733,7 +733,7 @@ function f30() { function f31() { >f31 : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ let x: Partial>>>>>>>[K] = "hello"; >x : Partial>>>>>>>[K] diff --git a/tests/baselines/reference/keyofDoesntContainSymbols.types b/tests/baselines/reference/keyofDoesntContainSymbols.types index 40da3f01eb489..b6be78cf07ddf 100644 --- a/tests/baselines/reference/keyofDoesntContainSymbols.types +++ b/tests/baselines/reference/keyofDoesntContainSymbols.types @@ -45,7 +45,7 @@ const obj = { num: 0, str: 's', [num]: num as 0, [sym]: sym }; function set (obj: T, key: K, value: T[K]): T[K] { >set : (obj: T, key: K, value: T[K]) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >key : K @@ -72,7 +72,7 @@ const val = set(obj, 'str', ''); >set(obj, 'str', '') : string > : ^^^^^^ >set : (obj: T, key: K, value: T[K]) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { num: number; str: string; 0: 0; [sym]: symbol; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >'str' : "str" @@ -87,7 +87,7 @@ const valB = set(obj, 'num', ''); >set(obj, 'num', '') : number > : ^^^^^^ >set : (obj: T, key: K, value: T[K]) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { num: number; str: string; 0: 0; [sym]: symbol; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >'num' : "num" @@ -103,7 +103,7 @@ const valC = set(obj, sym, sym); >set(obj, sym, sym) : symbol > : ^^^^^^ >set : (obj: T, key: K, value: T[K]) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { num: number; str: string; 0: 0; [sym]: symbol; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >sym : unique symbol @@ -119,7 +119,7 @@ const valD = set(obj, num, num); >set(obj, num, num) : 0 > : ^ >set : (obj: T, key: K, value: T[K]) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { num: number; str: string; 0: 0; [sym]: symbol; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >num : 0 diff --git a/tests/baselines/reference/keyofInferenceIntersectsResults.types b/tests/baselines/reference/keyofInferenceIntersectsResults.types index 6828fa2081137..a51b3142029d8 100644 --- a/tests/baselines/reference/keyofInferenceIntersectsResults.types +++ b/tests/baselines/reference/keyofInferenceIntersectsResults.types @@ -13,7 +13,7 @@ interface X { declare function foo(x: keyof T, y: keyof T): T; >foo : (x: keyof T, y: keyof T) => T -> : ^ ^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : keyof T > : ^^^^^^^ >y : keyof T @@ -21,7 +21,7 @@ declare function foo(x: keyof T, y: keyof T): T; declare function bar(x: keyof T, y: keyof T): T; >bar : (x: keyof T, y: keyof T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : keyof T > : ^^^^^^^ >y : keyof T @@ -33,7 +33,7 @@ const a = foo('a', 'b'); // compiles cleanly >foo('a', 'b') : X > : ^ >foo : (x: keyof T, y: keyof T) => T -> : ^ ^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ >'b' : "b" @@ -45,7 +45,7 @@ const b = foo('a', 'b'); // also clean >foo('a', 'b') : { a: any; } & { b: any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: keyof T, y: keyof T) => T -> : ^ ^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ >'b' : "b" @@ -57,7 +57,7 @@ const c = bar('a', 'b'); // still clean >bar('a', 'b') : { a: any; } & { b: any; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >bar : (x: keyof T, y: keyof T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ >'b' : "b" diff --git a/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types b/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types index d6a5e15b2b802..4923d375bf34e 100644 --- a/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types +++ b/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types @@ -44,7 +44,7 @@ declare class ConflictTarget { public static tableColumns(cols: (keyof Cols)[]): ConflictTarget; >tableColumns : (cols: (keyof Cols)[]) => ConflictTarget -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >cols : (keyof Cols)[] > : ^^^^^^^^^^^^^^ @@ -83,7 +83,7 @@ interface BookDef { function insertOnConflictDoNothing(_table: Table, _conflictTarget: ConflictTarget): boolean { >insertOnConflictDoNothing : (_table: Table, _conflictTarget: ConflictTarget) => boolean -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >_table : Table > : ^^^^^^^^^^^^^^^ >_conflictTarget : ConflictTarget @@ -104,17 +104,17 @@ function f() { >insertOnConflictDoNothing(bookTable, ConflictTarget.tableColumns(["serial"])) : boolean > : ^^^^^^^ >insertOnConflictDoNothing : (_table: Table, _conflictTarget: ConflictTarget) => boolean -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >bookTable : Table > : ^^^^^^^^^^^^^^^^^^^^^^^ >ConflictTarget.tableColumns(["serial"]) : ConflictTarget > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ConflictTarget.tableColumns : (cols: (keyof Cols)[]) => ConflictTarget -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >ConflictTarget : typeof ConflictTarget > : ^^^^^^^^^^^^^^^^^^^^^ >tableColumns : (cols: (keyof Cols)[]) => ConflictTarget -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >["serial"] : "serial"[] > : ^^^^^^^^^^ >"serial" : "serial" diff --git a/tests/baselines/reference/keyofIsLiteralContexualType.types b/tests/baselines/reference/keyofIsLiteralContexualType.types index a4f0e07aa9cdb..2ac847e3cb924 100644 --- a/tests/baselines/reference/keyofIsLiteralContexualType.types +++ b/tests/baselines/reference/keyofIsLiteralContexualType.types @@ -38,7 +38,7 @@ function foo() { declare function pick(obj: T, propNames: K[]): Pick; >pick : (obj: T, propNames: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >propNames : K[] @@ -50,7 +50,7 @@ let x = pick({ a: 10, b: 20, c: 30 }, ["a", "c"]); >pick({ a: 10, b: 20, c: 30 }, ["a", "c"]) : Pick<{ a: number; b: number; c: number; }, "a" | "c"> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >pick : (obj: T, propNames: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ a: 10, b: 20, c: 30 } : { a: number; b: number; c: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number diff --git a/tests/baselines/reference/keyofModuleObjectHasCorrectKeys.types b/tests/baselines/reference/keyofModuleObjectHasCorrectKeys.types index ba794dcebed3e..6ac039829ac91 100644 --- a/tests/baselines/reference/keyofModuleObjectHasCorrectKeys.types +++ b/tests/baselines/reference/keyofModuleObjectHasCorrectKeys.types @@ -25,7 +25,7 @@ import * as example from './example'; declare function test(object: T, method: keyof T): void; >test : (object: T, method: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >object : T > : ^ >method : keyof T @@ -35,7 +35,7 @@ test(example, "default"); >test(example, "default") : void > : ^^^^ >test : (object: T, method: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >example : typeof example > : ^^^^^^^^^^^^^^ >"default" : "default" diff --git a/tests/baselines/reference/knockout.types b/tests/baselines/reference/knockout.types index 8ae212db9b775..0caa45bd15939 100644 --- a/tests/baselines/reference/knockout.types +++ b/tests/baselines/reference/knockout.types @@ -25,7 +25,7 @@ } export function observable(value: T): Observable; >observable : (value: T) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ } @@ -41,11 +41,11 @@ >ko.observable("Bob") : ko.Observable > : ^^^^^^^^^^^^^^^^^^^^^ >ko.observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >ko : typeof ko > : ^^^^^^^^^ >observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >"Bob" : "Bob" > : ^^^^^ @@ -55,11 +55,11 @@ >ko.observable(37) : ko.Observable > : ^^^^^^^^^^^^^^^^^^^^^ >ko.observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >ko : typeof ko > : ^^^^^^^^^ >observable : (value: T) => ko.Observable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >37 : 37 > : ^^ } diff --git a/tests/baselines/reference/lambdaParamTypes.types b/tests/baselines/reference/lambdaParamTypes.types index 2bd67407567f9..041f96c9cc11d 100644 --- a/tests/baselines/reference/lambdaParamTypes.types +++ b/tests/baselines/reference/lambdaParamTypes.types @@ -21,7 +21,7 @@ interface MyArrayWrapper { declare function create(initialValues?: T[]): MyArrayWrapper; >create : (initialValues?: T[]) => MyArrayWrapper -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >initialValues : T[] > : ^^^ @@ -31,7 +31,7 @@ var thing = create([{ name: "bob", id: 24 }, { name: "doug", id: 32 }]); >create([{ name: "bob", id: 24 }, { name: "doug", id: 32 }]) : MyArrayWrapper<{ name: string; id: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >create : (initialValues?: T[]) => MyArrayWrapper -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >[{ name: "bob", id: 24 }, { name: "doug", id: 32 }] : { name: string; id: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ name: "bob", id: 24 } : { name: string; id: number; } diff --git a/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.types b/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.types index dce49edbd6940..8733128cfd8d2 100644 --- a/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.types +++ b/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.types @@ -26,7 +26,7 @@ class GenericClass { function createClass(f: GenericFunction): GenericClass { >createClass : (f: GenericFunction) => GenericClass -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >f : GenericFunction > : ^^^^^^^^^^^^^^^^^^ @@ -52,7 +52,7 @@ consumeClass(createClass(str => console.log(str.length))); >createClass(str => console.log(str.length)) : GenericClass<[str: string]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createClass : (f: GenericFunction) => GenericClass -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >str => console.log(str.length) : (str: string) => void > : ^ ^^^^^^^^^^^^^^^^^ >str : string @@ -81,7 +81,7 @@ consumeClass(createClass((str, _unused_num) => console.log(str.length))); >createClass((str, _unused_num) => console.log(str.length)) : GenericClass<[str: string, _unused_num: boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createClass : (f: GenericFunction) => GenericClass -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(str, _unused_num) => console.log(str.length) : (str: string, _unused_num: boolean) => void > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ >str : string diff --git a/tests/baselines/reference/largeTupleTypes.types b/tests/baselines/reference/largeTupleTypes.types index a8826173d19fa..a48cebf525c0c 100644 --- a/tests/baselines/reference/largeTupleTypes.types +++ b/tests/baselines/reference/largeTupleTypes.types @@ -43,7 +43,7 @@ declare class ArrayValidator { lengthRange(start: S, endBefore: E): ArrayValidator]>>, ExpandSmallerTuples]>>>>; >lengthRange : (start: S, endBefore: E) => ArrayValidator]>>, ExpandSmallerTuples]>>>> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >start : S > : ^ >endBefore : E diff --git a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types index dd0a4ad51fe16..b83d67467b09f 100644 --- a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types +++ b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport3.types @@ -55,11 +55,11 @@ Object.defineProperty(module.exports, _sym, { value: "ok" }); >Object.defineProperty(module.exports, _sym, { value: "ok" }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } @@ -79,11 +79,11 @@ Object.defineProperty(module.exports, _str, { value: "ok" }); >Object.defineProperty(module.exports, _str, { value: "ok" }) : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >module.exports : typeof module.exports > : ^^^^^^^^^^^^^^^^^^^^^ >module : { exports: typeof module.exports; } diff --git a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types index 38f57aa09d37c..86db4af44a633 100644 --- a/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types +++ b/tests/baselines/reference/lateBoundAssignmentDeclarationSupport6.types @@ -87,11 +87,11 @@ Object.defineProperty(F.prototype, _str, {value: "ok"}); >Object.defineProperty(F.prototype, _str, {value: "ok"}) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >F.prototype : any > : ^^^ >F : typeof F @@ -111,11 +111,11 @@ Object.defineProperty(F.prototype, _sym, {value: "ok"}); >Object.defineProperty(F.prototype, _sym, {value: "ok"}) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >F.prototype : any > : ^^^ >F : typeof F diff --git a/tests/baselines/reference/lateBoundConstraintTypeChecksCorrectly.types b/tests/baselines/reference/lateBoundConstraintTypeChecksCorrectly.types index 78b5819b177e0..fca2e5c9b05df 100644 --- a/tests/baselines/reference/lateBoundConstraintTypeChecksCorrectly.types +++ b/tests/baselines/reference/lateBoundConstraintTypeChecksCorrectly.types @@ -33,7 +33,7 @@ export interface Foo { function f>(x: T) { >f : >(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/library_ArraySlice.types b/tests/baselines/reference/library_ArraySlice.types index 1ff239e551d58..78bde4bc9def7 100644 --- a/tests/baselines/reference/library_ArraySlice.types +++ b/tests/baselines/reference/library_ArraySlice.types @@ -6,7 +6,7 @@ Array.prototype.slice(); >Array.prototype.slice() : any[] > : ^^^^^ >Array.prototype.slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >Array.prototype : any[] > : ^^^^^ >Array : ArrayConstructor @@ -14,13 +14,13 @@ Array.prototype.slice(); >prototype : any[] > : ^^^^^ >slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ Array.prototype.slice(0); >Array.prototype.slice(0) : any[] > : ^^^^^ >Array.prototype.slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >Array.prototype : any[] > : ^^^^^ >Array : ArrayConstructor @@ -28,7 +28,7 @@ Array.prototype.slice(0); >prototype : any[] > : ^^^^^ >slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ @@ -36,7 +36,7 @@ Array.prototype.slice(0, 1); >Array.prototype.slice(0, 1) : any[] > : ^^^^^ >Array.prototype.slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >Array.prototype : any[] > : ^^^^^ >Array : ArrayConstructor @@ -44,7 +44,7 @@ Array.prototype.slice(0, 1); >prototype : any[] > : ^^^^^ >slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ >1 : 1 diff --git a/tests/baselines/reference/library_RegExpExecArraySlice.types b/tests/baselines/reference/library_RegExpExecArraySlice.types index 7e80612e32faa..4f60c393b00df 100644 --- a/tests/baselines/reference/library_RegExpExecArraySlice.types +++ b/tests/baselines/reference/library_RegExpExecArraySlice.types @@ -10,21 +10,21 @@ regExpExecArrayValue.slice(); >regExpExecArrayValue.slice() : string[] > : ^^^^^^^^ >regExpExecArrayValue.slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >regExpExecArrayValue : RegExpExecArray > : ^^^^^^^^^^^^^^^ >slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ regExpExecArrayValue.slice(0); >regExpExecArrayValue.slice(0) : string[] > : ^^^^^^^^ >regExpExecArrayValue.slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >regExpExecArrayValue : RegExpExecArray > : ^^^^^^^^^^^^^^^ >slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ @@ -32,11 +32,11 @@ regExpExecArrayValue.slice(0,1); >regExpExecArrayValue.slice(0,1) : string[] > : ^^^^^^^^ >regExpExecArrayValue.slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >regExpExecArrayValue : RegExpExecArray > : ^^^^^^^^^^^^^^^ >slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ >1 : 1 diff --git a/tests/baselines/reference/listFailure.types b/tests/baselines/reference/listFailure.types index 1fbd3a017e557..ce3ec8f7d9da8 100644 --- a/tests/baselines/reference/listFailure.types +++ b/tests/baselines/reference/listFailure.types @@ -15,7 +15,7 @@ module Editor { >ListMakeHead() : List > : ^^^^^^^^^^ >ListMakeHead : () => List -> : ^ ^^^^^^^ +> : ^^^^^^^^^ addLine(lineText: string): List { >addLine : (lineText: string) => List @@ -57,7 +57,7 @@ module Editor { export function ListRemoveEntry(entry: List): List { >ListRemoveEntry : (entry: List) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >entry : List > : ^^^^^^^ @@ -68,14 +68,14 @@ module Editor { export function ListMakeHead(): List { >ListMakeHead : () => List -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return null; } export function ListMakeEntry(data: U): List { >ListMakeEntry : (data: U) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : U > : ^ @@ -108,7 +108,7 @@ module Editor { >ListMakeEntry(data) : List > : ^^^^^^^ >ListMakeEntry : (data: U) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : T > : ^ @@ -133,7 +133,7 @@ module Editor { >ListRemoveEntry(this.next) : List > : ^^^^^^^ >ListRemoveEntry : (entry: List) => List -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this.next : List > : ^^^^^^^ >this : this diff --git a/tests/baselines/reference/literalTypeNameAssertionNotTriggered.types b/tests/baselines/reference/literalTypeNameAssertionNotTriggered.types index 9521d5c2e6726..9b4e776c82b43 100644 --- a/tests/baselines/reference/literalTypeNameAssertionNotTriggered.types +++ b/tests/baselines/reference/literalTypeNameAssertionNotTriggered.types @@ -7,7 +7,7 @@ import a = require('./a'); declare function f(obj: T, key: keyof T): void; >f : (obj: T, key: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >key : keyof T @@ -17,7 +17,7 @@ f(a, ""); >f(a, "") : void > : ^^^^ >f : (obj: T, key: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : typeof a > : ^^^^^^^^ >"" : "" diff --git a/tests/baselines/reference/literalTypeWidening.types b/tests/baselines/reference/literalTypeWidening.types index 112032c349d22..8ace702c96107 100644 --- a/tests/baselines/reference/literalTypeWidening.types +++ b/tests/baselines/reference/literalTypeWidening.types @@ -338,13 +338,13 @@ function f5() { declare function widening(x: T): T; >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function nonWidening(x: T): T; >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -360,7 +360,7 @@ function f6(cond: boolean) { >widening('a') : "a" > : ^^^ >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >'a' : "a" > : ^^^ @@ -370,7 +370,7 @@ function f6(cond: boolean) { >widening(10) : 10 > : ^^ >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -380,7 +380,7 @@ function f6(cond: boolean) { >widening(cond ? 'a' : 10) : "a" | 10 > : ^^^^^^^^ >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cond ? 'a' : 10 : "a" | 10 > : ^^^^^^^^ >cond : boolean @@ -396,7 +396,7 @@ function f6(cond: boolean) { >nonWidening('a') : "a" > : ^^^ >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ @@ -406,7 +406,7 @@ function f6(cond: boolean) { >nonWidening(10) : 10 > : ^^ >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -416,7 +416,7 @@ function f6(cond: boolean) { >nonWidening(cond ? 'a' : 10) : "a" | 10 > : ^^^^^^^^ >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cond ? 'a' : 10 : "a" | 10 > : ^^^^^^^^ >cond : boolean @@ -445,7 +445,7 @@ type Result = T | FAILURE; function doWork(): Result { >doWork : () => Result -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return FAILURE; >FAILURE : "FAILURE" @@ -454,7 +454,7 @@ function doWork(): Result { function isSuccess(result: Result): result is T { >isSuccess : (result: Result) => result is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >result : Result > : ^^^^^^^^^ @@ -464,14 +464,14 @@ function isSuccess(result: Result): result is T { >isFailure(result) : boolean > : ^^^^^^^ >isFailure : (result: Result) => result is FAILURE -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >result : Result > : ^^^^^^^^^ } function isFailure(result: Result): result is FAILURE { >isFailure : (result: Result) => result is FAILURE -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >result : Result > : ^^^^^^^^^ @@ -505,13 +505,13 @@ let result = doWork(); >doWork() : Result > : ^^^^^^^^^^^^^^ >doWork : () => Result -> : ^ ^^^^^^^ +> : ^^^^^^^^^ if (isSuccess(result)) { >isSuccess(result) : boolean > : ^^^^^^^ >isSuccess : (result: Result) => result is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >result : Result > : ^^^^^^^^^^^^^^ @@ -548,7 +548,7 @@ let x = onMouseOver(); export function Set(...keys: K[]): Record { >Set : (...keys: K[]) => Record -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >keys : K[] > : ^^^ >true : true @@ -595,7 +595,7 @@ export function Set(...keys: K[]): Record export function keys(obj: Record): K[] { >keys : (obj: Record) => K[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >obj : Record > : ^^^^^^^^^^^^ @@ -626,7 +626,7 @@ const langCodeSet = Set('fr', 'en', 'es', 'it', 'nl') >Set('fr', 'en', 'es', 'it', 'nl') : Record<"fr" | "en" | "es" | "it" | "nl", true> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Set : (...keys: K[]) => Record -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >'fr' : "fr" > : ^^^^ >'en' : "en" @@ -650,7 +650,7 @@ export const langCodes = keys(langCodeSet) >keys(langCodeSet) : ("fr" | "en" | "es" | "it" | "nl")[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >keys : (obj: Record) => K[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >langCodeSet : Record<"fr" | "en" | "es" | "it" | "nl", true> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -680,7 +680,7 @@ const arr: Obj[] = langCodes.map(code => ({ code })) function test(obj: T): T { >test : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : string > : ^^^^^^ >b : string @@ -713,7 +713,7 @@ function test(obj: T): T { declare function f(x: T): NonNullable; >f : (x: T) => NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -731,7 +731,7 @@ const a = f(E.A); >f(E.A) : E.A > : ^^^ >f : (x: T) => NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E.A : E.A > : ^^^ >E : typeof E diff --git a/tests/baselines/reference/literalTypes2.types b/tests/baselines/reference/literalTypes2.types index 45b897c5e5584..02235e79b996b 100644 --- a/tests/baselines/reference/literalTypes2.types +++ b/tests/baselines/reference/literalTypes2.types @@ -969,13 +969,13 @@ function f20() { declare function g1(x: T): T; >g1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function g2(x: T, y: T): T; >g2 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -983,7 +983,7 @@ declare function g2(x: T, y: T): T; declare function g3(x: T, y: U): T | U; >g3 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -991,13 +991,13 @@ declare function g3(x: T, y: U): T | U; declare function g4(x: T): T[]; >g4 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function g5(x: T, y: T): T[]; >g5 : (x: T, y: T) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -1005,19 +1005,19 @@ declare function g5(x: T, y: T): T[]; declare function g6(x: T[]): T; >g6 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ declare function g7(x: T[]): T[]; >g7 : (x: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ declare function g8(x: T, f: (p: T) => T): T; >g8 : (x: T, f: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >f : (p: T) => T @@ -1041,7 +1041,7 @@ const x1 = g1(1); // Type 1 >g1(1) : 1 > : ^ >g1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -1051,7 +1051,7 @@ const x2 = g2(1, 1); // Type 1 >g2(1, 1) : 1 > : ^ >g2 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >1 : 1 @@ -1063,7 +1063,7 @@ const x3 = g2(1, 2); // Type 1 | 2 >g2(1, 2) : 1 | 2 > : ^^^^^ >g2 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -1075,7 +1075,7 @@ const x4 = g3(1, "two"); // Type 1 | "two" >g3(1, "two") : 1 | "two" > : ^^^^^^^^^ >g3 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"two" : "two" @@ -1087,7 +1087,7 @@ const x5 = g4(1); // Type number[] >g4(1) : number[] > : ^^^^^^^^ >g4 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -1097,7 +1097,7 @@ const x6 = g5(1, 2); // Type (1 | 2)[] >g5(1, 2) : (1 | 2)[] > : ^^^^^^^^^ >g5 : (x: T, y: T) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -1109,7 +1109,7 @@ const x7 = g6([1, 2]); // Type number >g6([1, 2]) : number > : ^^^^^^ >g6 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, 2] : number[] > : ^^^^^^^^ >1 : 1 @@ -1123,7 +1123,7 @@ const x8 = g6(a); // Type 1 | 2 >g6(a) : 1 | 2 > : ^^^^^ >g6 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (1 | 2)[] > : ^^^^^^^^^ @@ -1133,7 +1133,7 @@ const x9 = g7(a); // Type (1 | 2)[] >g7(a) : (1 | 2)[] > : ^^^^^^^^^ >g7 : (x: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (1 | 2)[] > : ^^^^^^^^^ @@ -1143,7 +1143,7 @@ const x10 = g8(1, x => x); // Type number >g8(1, x => x) : number > : ^^^^^^ >g8 : (x: T, f: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >x => x : (x: number) => number @@ -1159,7 +1159,7 @@ const x11 = g8(1, x => x + 1); // Type number >g8(1, x => x + 1) : number > : ^^^^^^ >g8 : (x: T, f: (p: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >x => x + 1 : (x: number) => number @@ -1175,7 +1175,7 @@ const x11 = g8(1, x => x + 1); // Type number function makeArray(x: T): T[] { >makeArray : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -1188,7 +1188,7 @@ function makeArray(x: T): T[] { function append(a: T[], x: T): T[] { >append : (a: T[], x: T) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >x : T @@ -1233,7 +1233,7 @@ let aa = makeArray(0); >makeArray(0) : Bit[] > : ^^^^^ >makeArray : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >0 : 0 > : ^ @@ -1245,7 +1245,7 @@ aa = append(aa, 1); >append(aa, 1) : Bit[] > : ^^^^^ >append : (a: T[], x: T) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >aa : Bit[] > : ^^^^^ >1 : 1 diff --git a/tests/baselines/reference/localTypeParameterInferencePriority.types b/tests/baselines/reference/localTypeParameterInferencePriority.types index 5242030dda0ef..42d82be1bd92d 100644 --- a/tests/baselines/reference/localTypeParameterInferencePriority.types +++ b/tests/baselines/reference/localTypeParameterInferencePriority.types @@ -24,7 +24,7 @@ class Table { // Removing this line, removes the error getRows(): Array>> { >getRows : () => Array>> -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return null! >null! : null @@ -41,13 +41,13 @@ class ColumnSelectViewImp extends Table { } const ColumnSelectView1: new () => Table> = ColumnSelectViewImp; >ColumnSelectView1 : new () => Table> -> : ^^^^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ >ColumnSelectViewImp : typeof ColumnSelectViewImp > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ const ColumnSelectView2: new () => Table> = Table; >ColumnSelectView2 : new () => Table> -> : ^^^^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ >Table : typeof Table > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/localTypes3.types b/tests/baselines/reference/localTypes3.types index 56690b06f80d9..8d3c4a42ed588 100644 --- a/tests/baselines/reference/localTypes3.types +++ b/tests/baselines/reference/localTypes3.types @@ -70,7 +70,7 @@ function f2() { function f(x: X) { >f : (x: X) => typeof C -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >x : X > : ^ @@ -98,7 +98,7 @@ function f2() { >f(10) : typeof C > : ^^^^^^^^ >f : (x: X) => typeof C -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >10 : 10 > : ^^ @@ -139,7 +139,7 @@ function f3() { function f(x: X, y: Y) { >f : (x: X, y: Y) => typeof C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >x : X > : ^ >y : Y @@ -171,7 +171,7 @@ function f3() { >f(10, "hello") : typeof C > : ^^^^^^^^ >f : (x: X, y: Y) => typeof C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >10 : 10 > : ^^ >"hello" : "hello" diff --git a/tests/baselines/reference/localTypes4.types b/tests/baselines/reference/localTypes4.types index ed1791e737898..688a17b977b1f 100644 --- a/tests/baselines/reference/localTypes4.types +++ b/tests/baselines/reference/localTypes4.types @@ -8,7 +8,7 @@ function f1() { // Type parameters are in scope in parameters and return types function f(x: T): T { >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types b/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types index 78c513c0014e2..29c640df9b2a9 100644 --- a/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types +++ b/tests/baselines/reference/logicalAndOperatorWithTypeParameters.types @@ -6,7 +6,7 @@ function foo(t: T, u: U, v: V) { >foo : (t: T, u: U, v: V) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types index c14aa703ff34a..2265fc34ba848 100644 --- a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types +++ b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types @@ -3,7 +3,7 @@ === logicalOrOperatorWithTypeParameters.ts === function fn1(t: T, u: U) { >fn1 : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -52,7 +52,7 @@ function fn1(t: T, u: U) { function fn2(t: T, u: U, v: V) { >fn2 : (t: T, u: U, v: V) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -116,7 +116,7 @@ function fn2(t: T, u: U, v: V) { function fn3(t: T, u: U) { >fn3 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string diff --git a/tests/baselines/reference/mapGroupBy.types b/tests/baselines/reference/mapGroupBy.types index 090af0f19de64..ccd2102129c2e 100644 --- a/tests/baselines/reference/mapGroupBy.types +++ b/tests/baselines/reference/mapGroupBy.types @@ -7,11 +7,11 @@ const basic = Map.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large'); >Map.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large') : Map<"small" | "large", number[]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Map.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Map : MapConstructor > : ^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >[0, 2, 8] : number[] > : ^^^^^^^^ >0 : 0 @@ -43,11 +43,11 @@ const chars = Map.groupBy('a string', c => c); >Map.groupBy('a string', c => c) : Map > : ^^^^^^^^^^^^^^^^^^^^^ >Map.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Map : MapConstructor > : ^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >'a string' : "a string" > : ^^^^^^^^^^ >c => c : (c: string) => string @@ -79,11 +79,11 @@ const byRole = Map.groupBy(employees, x => x.role); >Map.groupBy(employees, x => x.role) : Map<"ic" | "manager", Employee[]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Map.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Map : MapConstructor > : ^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >employees : Set > : ^^^^^^^^^^^^^ >x => x.role : (x: Employee) => "ic" | "manager" @@ -103,11 +103,11 @@ const byNonKey = Map.groupBy(employees, x => x); >Map.groupBy(employees, x => x) : Map > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >Map.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Map : MapConstructor > : ^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Map -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >employees : Set > : ^^^^^^^^^^^^^ >x => x : (x: Employee) => Employee diff --git a/tests/baselines/reference/mappedToToIndexSignatureInference.types b/tests/baselines/reference/mappedToToIndexSignatureInference.types index c3fcd988fff4d..e4adcacd9b4da 100644 --- a/tests/baselines/reference/mappedToToIndexSignatureInference.types +++ b/tests/baselines/reference/mappedToToIndexSignatureInference.types @@ -3,7 +3,7 @@ === mappedToToIndexSignatureInference.ts === declare const fn: (object: { [Key in K]: V }) => object; >fn : (object: { [Key in K]: V; }) => object -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >object : { [Key in K]: V; } > : ^^^^^^^^^^^^^^^^^^ @@ -17,7 +17,7 @@ fn(a); >fn(a) : object > : ^^^^^^ >fn : (object: { [Key in K]: V; }) => object -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a : { [index: string]: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -25,7 +25,7 @@ fn(a); declare function enumValues(e: Record): V[]; >enumValues : (e: Record) => V[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >e : Record > : ^^^^^^^^^^^^ @@ -47,7 +47,7 @@ let x: E[] = enumValues(E); >enumValues(E) : E[] > : ^^^ >enumValues : (e: Record) => V[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >E : typeof E > : ^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeAsClauseRelationships.types b/tests/baselines/reference/mappedTypeAsClauseRelationships.types index 92c94148d6732..b261c46a94f1e 100644 --- a/tests/baselines/reference/mappedTypeAsClauseRelationships.types +++ b/tests/baselines/reference/mappedTypeAsClauseRelationships.types @@ -22,7 +22,7 @@ type Modify = { [P in keyof T as P extends string? `bool${P}`: P]: T[P] }; function fun(val: T) { >fun : (val: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >val : T > : ^ @@ -57,7 +57,7 @@ type ModifyExclOpt = { [P in keyof T as P extends string? `bool${P}`: never ] function fun2(val: T) { >fun2 : (val: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >val : T > : ^ diff --git a/tests/baselines/reference/mappedTypeAsStringTemplate.types b/tests/baselines/reference/mappedTypeAsStringTemplate.types index 0d40a2c2bf3a2..70a2532b8a8a3 100644 --- a/tests/baselines/reference/mappedTypeAsStringTemplate.types +++ b/tests/baselines/reference/mappedTypeAsStringTemplate.types @@ -5,7 +5,7 @@ function foo}y`]: number }>(foox: T) { } >foo : }y`]: number; }>(foox: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >foox : T > : ^ @@ -23,7 +23,7 @@ foo(c); >foo(c) : void > : ^^^^ >foo : }y`]: number; }>(foox: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >c : { x: number; } > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeConstraints.types b/tests/baselines/reference/mappedTypeConstraints.types index b796c17e79844..f6aa885230e09 100644 --- a/tests/baselines/reference/mappedTypeConstraints.types +++ b/tests/baselines/reference/mappedTypeConstraints.types @@ -3,7 +3,7 @@ === mappedTypeConstraints.ts === function f0(obj: Pick>) { >f0 : (obj: Pick>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -22,7 +22,7 @@ function f0(obj: Pick(obj: Pick>) { >f1 : (obj: Pick>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -41,7 +41,7 @@ function f1(obj: Pick(obj: Pick) { >f2 : (obj: Pick) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -64,7 +64,7 @@ function f2(obj: Pick) { >f3 : (obj: Pick) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -103,7 +103,7 @@ function f3(obj: Record | 'c', string>) { >f4 : (obj: Record | "c", string>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -146,9 +146,9 @@ type TargetProps = { const modifier = (targetProps: T) => { >modifier : (targetProps: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(targetProps: T) => { let {bar, ...rest} = targetProps; rest.foo;} : (targetProps: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >targetProps : T > : ^ diff --git a/tests/baselines/reference/mappedTypeConstraints2.types b/tests/baselines/reference/mappedTypeConstraints2.types index 521fec1f4927d..3904ad9566d52 100644 --- a/tests/baselines/reference/mappedTypeConstraints2.types +++ b/tests/baselines/reference/mappedTypeConstraints2.types @@ -9,7 +9,7 @@ type Mapped1 = { [P in K]: { a: P } }; function f1(obj: Mapped1, key: K) { >f1 : (obj: Mapped1, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Mapped1 > : ^^^^^^^^^^ >key : K @@ -36,7 +36,7 @@ type Mapped2 = { [P in K as `get${P}`]: { a: P } }; function f2(obj: Mapped2, key: `get${K}`) { >f2 : (obj: Mapped2, key: `get${K}`) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Mapped2 > : ^^^^^^^^^^ >key : `get${K}` @@ -63,7 +63,7 @@ type Mapped3 = { [P in K as Uppercase

): void; >foo : (options: { props: P; computed: ComputedOf; } & ThisType

) => void -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >options : { props: P; computed: ComputedOf; } & ThisType

> : ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ >props : P @@ -24,7 +24,7 @@ foo({ >foo({ props: { x: 10, y: 20 }, computed: { bar(): number { let z = this.bar; return 42; }, baz: 42 }}) : void > : ^^^^ >foo : (options: { props: P; computed: ComputedOf; } & ThisType

) => void -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ props: { x: 10, y: 20 }, computed: { bar(): number { let z = this.bar; return 42; }, baz: 42 }} : { props: { x: number; y: number; }; computed: { bar(): number; baz: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeInferenceToMappedType.types b/tests/baselines/reference/mappedTypeInferenceToMappedType.types index 7110ccf78afad..6c2cdc7724294 100644 --- a/tests/baselines/reference/mappedTypeInferenceToMappedType.types +++ b/tests/baselines/reference/mappedTypeInferenceToMappedType.types @@ -13,7 +13,7 @@ declare class Base { method(x: { [K in keyof U]: U[K] }): Base; >method : (x: { [K in keyof U]: U[K]; }) => Base -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { [K in keyof U]: U[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -26,7 +26,7 @@ declare class Derived extends Base { method(x: { [K in keyof V]: V[K] }): Base; >method : (x: { [K in keyof V]: V[K]; }) => Base -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { [K in keyof V]: V[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/mappedTypeMultiInference.types b/tests/baselines/reference/mappedTypeMultiInference.types index 3cef75d787c5b..ad860198371a8 100644 --- a/tests/baselines/reference/mappedTypeMultiInference.types +++ b/tests/baselines/reference/mappedTypeMultiInference.types @@ -8,7 +8,7 @@ interface Style { declare function mergeStyleSets( >mergeStyleSets : (...cssSets: { [P in K]?: Style; }[]) => { [P in K]: Style; } -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ...cssSets: { [P in K]?: Style }[]): { [P in K]: Style }; >cssSets : { [P in K]?: Style; }[] @@ -25,7 +25,7 @@ let x = mergeStyleSets( >mergeStyleSets( {}, { a: { flashy: true }, }, { b: { flashy: true }, },) : { a: Style; b: Style; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >mergeStyleSets : (...cssSets: { [P in K]?: Style; }[]) => { [P in K]: Style; } -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ {}, >{} : {} diff --git a/tests/baselines/reference/mappedTypeNestedGenericInstantiation.types b/tests/baselines/reference/mappedTypeNestedGenericInstantiation.types index 624fa6d54aa31..f3c2c79cd95d3 100644 --- a/tests/baselines/reference/mappedTypeNestedGenericInstantiation.types +++ b/tests/baselines/reference/mappedTypeNestedGenericInstantiation.types @@ -10,7 +10,7 @@ interface Chainable { mapValues(func: (v: T[keyof T]) => U): Chainable<{[k in keyof T]: U}>; >mapValues : (func: (v: T[keyof T]) => U) => Chainable<{ [k in keyof T]: U; }> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (v: T[keyof T]) => U > : ^ ^^ ^^^^^ >v : T[keyof T] @@ -19,7 +19,7 @@ interface Chainable { declare function chain(t: T): Chainable; >chain : (t: T) => Chainable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T > : ^ @@ -43,15 +43,15 @@ const v = chain({a: 1, b: 2}).mapValues(square).value(); >chain({a: 1, b: 2}).mapValues(square).value() : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >chain({a: 1, b: 2}).mapValues(square).value : () => { a: number; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ >chain({a: 1, b: 2}).mapValues(square) : Chainable<{ a: number; b: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >chain({a: 1, b: 2}).mapValues : (func: (v: number) => U) => Chainable<{ [k in keyof { a: number; b: number; }]: U; }> -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^ >chain({a: 1, b: 2}) : Chainable<{ a: number; b: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >chain : (t: T) => Chainable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{a: 1, b: 2} : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -63,9 +63,9 @@ const v = chain({a: 1, b: 2}).mapValues(square).value(); >2 : 2 > : ^ >mapValues : (func: (v: number) => U) => Chainable<{ [k in keyof { a: number; b: number; }]: U; }> -> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^ >square : (x: number) => number > : ^ ^^ ^^^^^^^^^^^ >value : () => { a: number; b: number; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeParameterConstraint.types b/tests/baselines/reference/mappedTypeParameterConstraint.types index 90ebbc10e28be..af45751691bb8 100644 --- a/tests/baselines/reference/mappedTypeParameterConstraint.types +++ b/tests/baselines/reference/mappedTypeParameterConstraint.types @@ -9,7 +9,7 @@ type MyMap = {[P in keyof T]: T[keyof T]}; function foo(arg: U): MyMap { >foo : (arg: U) => MyMap -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : U > : ^ diff --git a/tests/baselines/reference/mappedTypeRecursiveInference.types b/tests/baselines/reference/mappedTypeRecursiveInference.types index afd4e643a3c93..5ed06793a14f8 100644 --- a/tests/baselines/reference/mappedTypeRecursiveInference.types +++ b/tests/baselines/reference/mappedTypeRecursiveInference.types @@ -21,7 +21,7 @@ type Deep = { [K in keyof T]: Deep } declare function foo(deep: Deep): T; >foo : (deep: Deep) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >deep : Deep > : ^^^^^^^ @@ -31,7 +31,7 @@ const out = foo(a); >foo(a) : { a: { a: any; }; } > : ^^^^^^^^^^^^^^^^^^^ >foo : (deep: Deep) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : A > : ^ @@ -102,7 +102,7 @@ const oub = foo(b); >foo(b) : { [x: string]: any; } > : ^^^^^^^^^^^^^^^^^^^^^ >foo : (deep: Deep) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : B > : ^ @@ -164,7 +164,7 @@ const out2 = foo(xhr); >foo(xhr) : { onreadystatechange: unknown; readonly readyState: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly response: unknown; readonly responseText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; responseType: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseURL: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; readonly responseXML: { readonly URL: any; alinkColor: any; readonly all: any; readonly anchors: any; readonly applets: any; bgColor: any; body: any; readonly characterSet: any; readonly charset: any; readonly compatMode: any; readonly contentType: any; cookie: any; readonly currentScript: any; readonly defaultView: any; designMode: any; dir: any; readonly doctype: any; readonly documentElement: any; readonly documentURI: any; domain: any; readonly embeds: any; fgColor: any; readonly forms: any; readonly fullscreen: any; readonly fullscreenEnabled: any; readonly head: any; readonly hidden: any; readonly images: any; readonly implementation: any; readonly inputEncoding: any; readonly lastModified: any; linkColor: any; readonly links: any; location: any; onfullscreenchange: any; onfullscreenerror: any; onpointerlockchange: any; onpointerlockerror: any; onreadystatechange: any; onvisibilitychange: any; readonly ownerDocument: any; readonly pictureInPictureEnabled: any; readonly plugins: any; readonly readyState: any; readonly referrer: any; readonly rootElement: any; readonly scripts: any; readonly scrollingElement: any; readonly timeline: any; title: any; readonly visibilityState: any; vlinkColor: any; adoptNode: any; captureEvents: any; caretRangeFromPoint: any; clear: any; close: any; createAttribute: any; createAttributeNS: any; createCDATASection: any; createComment: any; createDocumentFragment: any; createElement: any; createElementNS: any; createEvent: any; createNodeIterator: any; createProcessingInstruction: any; createRange: any; createTextNode: any; createTreeWalker: any; execCommand: any; exitFullscreen: any; exitPictureInPicture: any; exitPointerLock: any; getElementById: any; getElementsByClassName: any; getElementsByName: any; getElementsByTagName: any; getElementsByTagNameNS: any; getSelection: any; hasFocus: any; hasStorageAccess: any; importNode: any; open: any; queryCommandEnabled: any; queryCommandIndeterm: any; queryCommandState: any; queryCommandSupported: any; queryCommandValue: any; releaseEvents: any; requestStorageAccess: any; write: any; writeln: any; addEventListener: any; removeEventListener: any; readonly baseURI: any; readonly childNodes: any; readonly firstChild: any; readonly isConnected: any; readonly lastChild: any; readonly nextSibling: any; readonly nodeName: any; readonly nodeType: any; nodeValue: any; readonly parentElement: any; readonly parentNode: any; readonly previousSibling: any; textContent: any; appendChild: any; cloneNode: any; compareDocumentPosition: any; contains: any; getRootNode: any; hasChildNodes: any; insertBefore: any; isDefaultNamespace: any; isEqualNode: any; isSameNode: any; lookupNamespaceURI: any; lookupPrefix: any; normalize: any; removeChild: any; replaceChild: any; readonly ELEMENT_NODE: any; readonly ATTRIBUTE_NODE: any; readonly TEXT_NODE: any; readonly CDATA_SECTION_NODE: any; readonly ENTITY_REFERENCE_NODE: any; readonly ENTITY_NODE: any; readonly PROCESSING_INSTRUCTION_NODE: any; readonly COMMENT_NODE: any; readonly DOCUMENT_NODE: any; readonly DOCUMENT_TYPE_NODE: any; readonly DOCUMENT_FRAGMENT_NODE: any; readonly NOTATION_NODE: any; readonly DOCUMENT_POSITION_DISCONNECTED: any; readonly DOCUMENT_POSITION_PRECEDING: any; readonly DOCUMENT_POSITION_FOLLOWING: any; readonly DOCUMENT_POSITION_CONTAINS: any; readonly DOCUMENT_POSITION_CONTAINED_BY: any; readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: any; dispatchEvent: any; readonly activeElement: any; adoptedStyleSheets: any; readonly fullscreenElement: any; readonly pictureInPictureElement: any; readonly pointerLockElement: any; readonly styleSheets: any; elementFromPoint: any; elementsFromPoint: any; getAnimations: any; readonly fonts: any; onabort: any; onanimationcancel: any; onanimationend: any; onanimationiteration: any; onanimationstart: any; onauxclick: any; onbeforeinput: any; onbeforetoggle: any; onblur: any; oncancel: any; oncanplay: any; oncanplaythrough: any; onchange: any; onclick: any; onclose: any; oncontextmenu: any; oncopy: any; oncuechange: any; oncut: any; ondblclick: any; ondrag: any; ondragend: any; ondragenter: any; ondragleave: any; ondragover: any; ondragstart: any; ondrop: any; ondurationchange: any; onemptied: any; onended: any; onerror: any; onfocus: any; onformdata: any; ongotpointercapture: any; oninput: any; oninvalid: any; onkeydown: any; onkeypress: any; onkeyup: any; onload: any; onloadeddata: any; onloadedmetadata: any; onloadstart: any; onlostpointercapture: any; onmousedown: any; onmouseenter: any; onmouseleave: any; onmousemove: any; onmouseout: any; onmouseover: any; onmouseup: any; onpaste: any; onpause: any; onplay: any; onplaying: any; onpointercancel: any; onpointerdown: any; onpointerenter: any; onpointerleave: any; onpointermove: any; onpointerout: any; onpointerover: any; onpointerup: any; onprogress: any; onratechange: any; onreset: any; onresize: any; onscroll: any; onscrollend: any; onsecuritypolicyviolation: any; onseeked: any; onseeking: any; onselect: any; onselectionchange: any; onselectstart: any; onslotchange: any; onstalled: any; onsubmit: any; onsuspend: any; ontimeupdate: any; ontoggle: any; ontouchcancel?: any; ontouchend?: any; ontouchmove?: any; ontouchstart?: any; ontransitioncancel: any; ontransitionend: any; ontransitionrun: any; ontransitionstart: any; onvolumechange: any; onwaiting: any; onwebkitanimationend: any; onwebkitanimationiteration: any; onwebkitanimationstart: any; onwebkittransitionend: any; onwheel: any; readonly childElementCount: any; readonly children: any; readonly firstElementChild: any; readonly lastElementChild: any; append: any; prepend: any; querySelector: any; querySelectorAll: any; replaceChildren: any; createExpression: any; createNSResolver: any; evaluate: any; }; readonly status: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly statusText: { toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; readonly length: any; substr: any; valueOf: any; codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [Symbol.iterator]: any; }; timeout: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly upload: { addEventListener: any; removeEventListener: any; onabort: any; onerror: any; onload: any; onloadend: any; onloadstart: any; onprogress: any; ontimeout: any; dispatchEvent: any; }; withCredentials: { valueOf: any; }; abort: unknown; getAllResponseHeaders: unknown; getResponseHeader: unknown; open: unknown; overrideMimeType: unknown; send: unknown; setRequestHeader: unknown; readonly UNSENT: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly OPENED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly HEADERS_RECEIVED: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly LOADING: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; readonly DONE: { toString: any; toFixed: any; toExponential: any; toPrecision: any; valueOf: any; toLocaleString: any; }; addEventListener: unknown; removeEventListener: unknown; onabort: unknown; onerror: unknown; onload: unknown; onloadend: unknown; onloadstart: unknown; onprogress: unknown; ontimeout: unknown; dispatchEvent: unknown; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (deep: Deep) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >xhr : XMLHttpRequest > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeRecursiveInference2.types b/tests/baselines/reference/mappedTypeRecursiveInference2.types index 695d52b719f98..76f5b19b3e734 100644 --- a/tests/baselines/reference/mappedTypeRecursiveInference2.types +++ b/tests/baselines/reference/mappedTypeRecursiveInference2.types @@ -26,7 +26,7 @@ type validateDefinition = def extends MorphTuple declare function type(def: validateDefinition): def >type : (def: validateDefinition) => def -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >def : validateDefinition > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -36,7 +36,7 @@ const shallow = type(["ark", "|>", (x) => x.length]) >type(["ark", "|>", (x) => x.length]) : ["ark", "|>", (x: "ark") => number] > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >type : (def: validateDefinition) => def -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >["ark", "|>", (x) => x.length] : ["ark", "|>", (x: "ark") => number] > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >"ark" : "ark" @@ -60,7 +60,7 @@ const objectLiteral = type({ a: ["ark", "|>", (x) => x.length] }) >type({ a: ["ark", "|>", (x) => x.length] }) : { a: ["ark", "|>", (x: "ark") => number]; } > : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >type : (def: validateDefinition) => def -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >{ a: ["ark", "|>", (x) => x.length] } : { a: ["ark", "|>", (x: "ark") => number]; } > : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >a : ["ark", "|>", (x: "ark") => number] @@ -88,7 +88,7 @@ const nestedTuple = type([["ark", "|>", (x) => x.length]]) >type([["ark", "|>", (x) => x.length]]) : [["ark", "|>", (x: "ark") => number]] > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >type : (def: validateDefinition) => def -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >[["ark", "|>", (x) => x.length]] : [["ark", "|>", (x: "ark") => number]] > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >["ark", "|>", (x) => x.length] : ["ark", "|>", (x: "ark") => number] diff --git a/tests/baselines/reference/mappedTypeRelationships.types b/tests/baselines/reference/mappedTypeRelationships.types index f8bac595ade76..c38f58510ba51 100644 --- a/tests/baselines/reference/mappedTypeRelationships.types +++ b/tests/baselines/reference/mappedTypeRelationships.types @@ -3,7 +3,7 @@ === mappedTypeRelationships.ts === function f1(x: T, k: keyof T) { >f1 : (x: T, k: keyof T) => T[keyof T] -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ >x : T > : ^ >k : keyof T @@ -20,7 +20,7 @@ function f1(x: T, k: keyof T) { function f2(x: T, k: K) { >f2 : (x: T, k: K) => T[K] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >k : K @@ -37,7 +37,7 @@ function f2(x: T, k: K) { function f3(x: T, y: U, k: keyof T) { >f3 : (x: T, y: U, k: keyof T) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -80,7 +80,7 @@ function f3(x: T, y: U, k: keyof T) { function f4(x: T, y: U, k: K) { >f4 : (x: T, y: U, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -123,7 +123,7 @@ function f4(x: T, y: U, k: K) { function f5(x: T, y: U, k: keyof U) { >f5 : (x: T, y: U, k: keyof U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -166,7 +166,7 @@ function f5(x: T, y: U, k: keyof U) { function f6(x: T, y: U, k: K) { >f6 : (x: T, y: U, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -209,7 +209,7 @@ function f6(x: T, y: U, k: K) { function f10(x: T, y: Partial, k: keyof T) { >f10 : (x: T, y: Partial, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Partial @@ -252,7 +252,7 @@ function f10(x: T, y: Partial, k: keyof T) { function f11(x: T, y: Partial, k: K) { >f11 : (x: T, y: Partial, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Partial @@ -295,7 +295,7 @@ function f11(x: T, y: Partial, k: K) { function f12(x: T, y: Partial, k: keyof T) { >f12 : (x: T, y: Partial, k: keyof T) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Partial @@ -338,7 +338,7 @@ function f12(x: T, y: Partial, k: keyof T) { function f13(x: T, y: Partial, k: K) { >f13 : (x: T, y: Partial, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Partial @@ -381,7 +381,7 @@ function f13(x: T, y: Partial, k: K) { function f20(x: T, y: Readonly, k: keyof T) { >f20 : (x: T, y: Readonly, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Readonly @@ -424,7 +424,7 @@ function f20(x: T, y: Readonly, k: keyof T) { function f21(x: T, y: Readonly, k: K) { >f21 : (x: T, y: Readonly, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Readonly @@ -467,7 +467,7 @@ function f21(x: T, y: Readonly, k: K) { function f22(x: T, y: Readonly, k: keyof T) { >f22 : (x: T, y: Readonly, k: keyof T) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Readonly @@ -510,7 +510,7 @@ function f22(x: T, y: Readonly, k: keyof T) { function f23(x: T, y: Readonly, k: K) { >f23 : (x: T, y: Readonly, k: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Readonly @@ -561,7 +561,7 @@ type Thing = { a: string, b: string }; function f30(x: T, y: Partial) { >f30 : (x: T, y: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Partial @@ -586,7 +586,7 @@ function f30(x: T, y: Partial) { function f31(x: Partial, y: Partial) { >f31 : (x: Partial, y: Partial) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Partial > : ^^^^^^^^^^^^^^ >y : Partial @@ -611,7 +611,7 @@ function f31(x: Partial, y: Partial) { function f40(x: T, y: Readonly) { >f40 : (x: T, y: Readonly) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : Readonly @@ -636,7 +636,7 @@ function f40(x: T, y: Readonly) { function f41(x: Readonly, y: Readonly) { >f41 : (x: Readonly, y: Readonly) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Readonly > : ^^^^^^^^^^^^^^^ >y : Readonly @@ -679,7 +679,7 @@ type ItemMap = { function f50(obj: T, key: keyof T) { >f50 : (obj: T, key: keyof T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >obj : T > : ^ >key : keyof T @@ -710,7 +710,7 @@ function f50(obj: T, key: keyof T) { function f51(obj: T, key: K) { >f51 : (obj: T, key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >obj : T > : ^ >key : K @@ -755,7 +755,7 @@ type T2 = { function f60(x: T1, y: T2) { >f60 : (x: T1, y: T2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T1 > : ^^^^^ >y : T2 @@ -787,7 +787,7 @@ type Identity = { function f61(x: Identity, y: Partial) { >f61 : (x: Identity, y: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Identity > : ^^^^^^^^^^^ >y : Partial @@ -812,7 +812,7 @@ function f61(x: Identity, y: Partial) { function f62(x: Identity, y: Readonly) { >f62 : (x: Identity, y: Readonly) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Identity > : ^^^^^^^^^^^ >y : Readonly @@ -837,7 +837,7 @@ function f62(x: Identity, y: Readonly) { function f70(x: { [P in keyof T]: T[P] }, y: { [P in keyof T]: T[P] }) { >f70 : (x: { [P in keyof T]: T[P]; }, y: { [P in keyof T]: T[P]; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in keyof T]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >y : { [P in keyof T]: T[P]; } @@ -862,7 +862,7 @@ function f70(x: { [P in keyof T]: T[P] }, y: { [P in keyof T]: T[P] }) { function f71(x: { [P in keyof T]: T[P] }, y: { [P in keyof T]: U[P] }) { >f71 : (x: { [P in keyof T]: T[P]; }, y: { [P in keyof T]: U[P]; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in keyof T]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >y : { [P in keyof T]: U[P]; } @@ -887,7 +887,7 @@ function f71(x: { [P in keyof T]: T[P] }, y: { [P in keyof T]: U function f72(x: { [P in keyof T]: T[P] }, y: { [P in keyof U]: U[P] }) { >f72 : (x: { [P in keyof T]: T[P]; }, y: { [P in keyof U]: U[P]; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in keyof T]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >y : { [P in keyof U]: U[P]; } @@ -912,7 +912,7 @@ function f72(x: { [P in keyof T]: T[P] }, y: { [P in keyof U]: U function f73(x: { [P in K]: T[P] }, y: { [P in keyof T]: T[P] }) { >f73 : (x: { [P in K]: T[P]; }, y: { [P in keyof T]: T[P]; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in K]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^ >y : { [P in keyof T]: T[P]; } @@ -937,7 +937,7 @@ function f73(x: { [P in K]: T[P] }, y: { [P in keyof T]: T function f74(x: { [P in K]: T[P] }, y: { [P in keyof U]: U[P] }) { >f74 : (x: { [P in K]: T[P]; }, y: { [P in keyof U]: U[P]; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in K]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^ >y : { [P in keyof U]: U[P]; } @@ -962,7 +962,7 @@ function f74(x: { [P in K]: T[P] }, y: { [P i function f75(x: { [P in K]: T[P] }, y: { [P in keyof T]: U[P] }) { >f75 : (x: { [P in K]: T[P]; }, y: { [P in keyof T]: U[P]; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in K]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^ >y : { [P in keyof T]: U[P]; } @@ -987,7 +987,7 @@ function f75(x: { [P in K]: T[P] }, y: { [P i function f76(x: { [P in K]: T[P] }, y: { [P in K]: U[P] }) { >f76 : (x: { [P in K]: T[P]; }, y: { [P in K]: U[P]; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in K]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^ >y : { [P in K]: U[P]; } @@ -1012,7 +1012,7 @@ function f76(x: { [P in K]: T[P] }, y: { [P i function f80(t: T): Partial { >f80 : (t: T) => Partial -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : T > : ^ @@ -1023,7 +1023,7 @@ function f80(t: T): Partial { function f81(t: T, k: K): Partial { >f81 : (t: T, k: K) => Partial -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >k : K @@ -1040,7 +1040,7 @@ function f81(t: T, k: K): Partial { function f82(t: T, k1: K1, k2: K2): Partial { >f82 : (t: T, k1: K1, k2: K2) => Partial -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >k1 : K1 @@ -1085,7 +1085,7 @@ function f90() { function f(): Partial { >f : () => Partial -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >x : {} > : ^^ diff --git a/tests/baselines/reference/mappedTypeTupleConstraintAssignability.types b/tests/baselines/reference/mappedTypeTupleConstraintAssignability.types index 19d498ff9d50b..94efbac792c42 100644 --- a/tests/baselines/reference/mappedTypeTupleConstraintAssignability.types +++ b/tests/baselines/reference/mappedTypeTupleConstraintAssignability.types @@ -26,7 +26,7 @@ declare class ZodEnum { declare function createZodEnum>(values: T): ZodEnum>; >createZodEnum : >(values: T) => ZodEnum> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >values : T > : ^ @@ -84,7 +84,7 @@ declare class TupleSchema< export function create(schemas: { >create : (schemas: { [K in keyof T]: ISchema; }) => TupleSchema -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >schemas : { [K in keyof T]: ISchema; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeUnionConstrainTupleTreatedAsArrayLike.types b/tests/baselines/reference/mappedTypeUnionConstrainTupleTreatedAsArrayLike.types index f431571775280..096fd187743e3 100644 --- a/tests/baselines/reference/mappedTypeUnionConstrainTupleTreatedAsArrayLike.types +++ b/tests/baselines/reference/mappedTypeUnionConstrainTupleTreatedAsArrayLike.types @@ -7,7 +7,7 @@ type HomomorphicMappedType = { [P in keyof T]: T[P] extends string ? boolean function test1(args: T) { >test1 : (args: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >args : T > : ^ @@ -30,7 +30,7 @@ function test1(args: T) { function test2(args: T) { >test2 : (args: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >args : T > : ^ diff --git a/tests/baselines/reference/mappedTypeUnionConstraintInferences.types b/tests/baselines/reference/mappedTypeUnionConstraintInferences.types index 60b79ab279edc..48d52822dd27a 100644 --- a/tests/baselines/reference/mappedTypeUnionConstraintInferences.types +++ b/tests/baselines/reference/mappedTypeUnionConstraintInferences.types @@ -11,7 +11,7 @@ export declare type PartialProperties = Partial export function doSomething_ActualdoSomething_Actual : (a: T) => { [P in keyof PartialProperties]: PartialProperties[P]; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ prop: string; >prop : string @@ -33,7 +33,7 @@ export function doSomething_ActualdoSomething_Expected : (a: T) => { [P in keyof PartialProperties]: PartialProperties[P]; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ prop: string; >prop : string @@ -49,7 +49,7 @@ export let a = doSomething_Actual({ prop: "test" }); >doSomething_Actual({ prop: "test" }) : { prop?: string; } > : ^^^^^^^^^^^^^^^^^^ >doSomething_Actual : (a: T) => { [P in keyof PartialProperties]: PartialProperties[P]; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ prop: "test" } : { prop: string; } > : ^^^^^^^^^^^^^^^^^ >prop : string @@ -71,7 +71,7 @@ export let b = doSomething_Expected({ prop: "test" }); >doSomething_Expected({ prop: "test" }) : { prop?: string; } > : ^^^^^^^^^^^^^^^^^^ >doSomething_Expected : (a: T) => { [P in keyof PartialProperties]: PartialProperties[P]; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ prop: "test" } : { prop: string; } > : ^^^^^^^^^^^^^^^^^ >prop : string diff --git a/tests/baselines/reference/mappedTypeWithAny.types b/tests/baselines/reference/mappedTypeWithAny.types index 587ff68bb42f3..ba85864fa486b 100644 --- a/tests/baselines/reference/mappedTypeWithAny.types +++ b/tests/baselines/reference/mappedTypeWithAny.types @@ -144,7 +144,7 @@ function bar(arrayish: Arrayish, objectish: Objectish, indirectArrayis declare function stringifyArray(arr: T): { -readonly [K in keyof T]: string }; >stringifyArray : (arr: T) => { -readonly [K in keyof T]: string; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arr : T > : ^ @@ -154,7 +154,7 @@ let abc: any[] = stringifyArray(void 0 as any); >stringifyArray(void 0 as any) : string[] > : ^^^^^^^^ >stringifyArray : (arr: T) => { -readonly [K in keyof T]: string; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >void 0 as any : any > : ^^^ >void 0 : undefined @@ -164,7 +164,7 @@ let abc: any[] = stringifyArray(void 0 as any); declare function stringifyPair(arr: T): { -readonly [K in keyof T]: string }; >stringifyPair : (arr: T) => { -readonly [K in keyof T]: string; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arr : T > : ^ @@ -174,7 +174,7 @@ let def: [any, any] = stringifyPair(void 0 as any); >stringifyPair(void 0 as any) : string[] > : ^^^^^^^^ >stringifyPair : (arr: T) => { -readonly [K in keyof T]: string; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >void 0 as any : any > : ^^^ >void 0 : undefined diff --git a/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.types b/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.types index 4922d453be85a..cd40089219228 100644 --- a/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.types +++ b/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty.types @@ -7,13 +7,13 @@ declare let tgt2: number[]; declare let src2: { [K in keyof number[] as Exclude]: (number[])[K] }; >src2 : { [x: number]: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number | undefined; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | ReadonlyArray, thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [Symbol.iterator]: () => IterableIterator; readonly [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tgt2 = src2; // Should error >tgt2 = src2 : { [x: number]: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number | undefined; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | ReadonlyArray, thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [Symbol.iterator]: () => IterableIterator; readonly [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >tgt2 : number[] > : ^^^^^^^^ >src2 : { [x: number]: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number | undefined; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | ReadonlyArray, thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [Symbol.iterator]: () => IterableIterator; readonly [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty2.types b/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty2.types index 623f98f9f341c..72b67b7b45fea 100644 --- a/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty2.types +++ b/tests/baselines/reference/mappedTypeWithAsClauseAndLateBoundProperty2.types @@ -3,10 +3,10 @@ === mappedTypeWithAsClauseAndLateBoundProperty2.ts === export const thing = (null as any as { [K in keyof number[] as Exclude]: (number[])[K] }); >thing : { [x: number]: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number | undefined; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | ReadonlyArray, thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [Symbol.iterator]: () => IterableIterator; readonly [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(null as any as { [K in keyof number[] as Exclude]: (number[])[K] }) : { [x: number]: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number | undefined; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | ReadonlyArray, thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [Symbol.iterator]: () => IterableIterator; readonly [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any as { [K in keyof number[] as Exclude]: (number[])[K] } : { [x: number]: number; toString: () => string; toLocaleString: { (): string; (locales: string | string[], options?: Intl.NumberFormatOptions & Intl.DateTimeFormatOptions): string; }; pop: () => number | undefined; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number | undefined; slice: (start?: number, end?: number) => number[]; sort: (compareFn?: (a: number, b: number) => number) => number[]; splice: { (start: number, deleteCount?: number): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }; unshift: (...items: number[]) => number; indexOf: (searchElement: number, fromIndex?: number) => number; lastIndexOf: (searchElement: number, fromIndex?: number) => number; every: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }; some: (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean; forEach: (callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void; map: (callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]; filter: { (predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }; reduce: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; reduceRight: { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }; find: { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }; findIndex: (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number; fill: (value: number, start?: number, end?: number) => number[]; copyWithin: (target: number, start: number, end?: number) => number[]; entries: () => IterableIterator<[number, number]>; keys: () => IterableIterator; values: () => IterableIterator; includes: (searchElement: number, fromIndex?: number) => boolean; flatMap: (callback: (this: This, value: number, index: number, array: number[]) => U | ReadonlyArray, thisArg?: This) => U[]; flat: (this: A, depth?: D) => FlatArray[]; [Symbol.iterator]: () => IterableIterator; readonly [Symbol.unscopables]: { [x: number]: boolean; length?: boolean; toString?: boolean; toLocaleString?: boolean; pop?: boolean; push?: boolean; concat?: boolean; join?: boolean; reverse?: boolean; shift?: boolean; slice?: boolean; sort?: boolean; splice?: boolean; unshift?: boolean; indexOf?: boolean; lastIndexOf?: boolean; every?: boolean; some?: boolean; forEach?: boolean; map?: boolean; filter?: boolean; reduce?: boolean; reduceRight?: boolean; find?: boolean; findIndex?: boolean; fill?: boolean; copyWithin?: boolean; entries?: boolean; keys?: boolean; values?: boolean; includes?: boolean; flatMap?: boolean; flat?: boolean; [Symbol.iterator]?: boolean; readonly [Symbol.unscopables]?: boolean; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^ ^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >null as any : any diff --git a/tests/baselines/reference/mappedTypes1.types b/tests/baselines/reference/mappedTypes1.types index 2d6ccaaa10c92..a2453c62e7fba 100644 --- a/tests/baselines/reference/mappedTypes1.types +++ b/tests/baselines/reference/mappedTypes1.types @@ -105,19 +105,19 @@ type T47 = { [P in string | "a" | "b" | "0" | "1"]: void }; declare function f1(): { [P in keyof T1]: void }; >f1 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^^ declare function f2(): { [P in keyof T1]: void }; >f2 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^ declare function f3(): { [P in keyof T1]: void }; >f3 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^ declare function f4(): { [P in keyof T1]: void }; >f4 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^ let x1 = f1(); >x1 : {} @@ -125,7 +125,7 @@ let x1 = f1(); >f1() : {} > : ^^ >f1 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^^ let x2 = f2(); >x2 : string @@ -133,7 +133,7 @@ let x2 = f2(); >f2() : string > : ^^^^^^ >f2 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^ let x3 = f3(); >x3 : number @@ -141,7 +141,7 @@ let x3 = f3(); >f3() : number > : ^^^^^^ >f3 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^ let x4 = f4(); >x4 : { toString: void; toFixed: void; toExponential: void; toPrecision: void; valueOf: void; toLocaleString: void; } @@ -149,5 +149,5 @@ let x4 = f4(); >f4() : { toString: void; toFixed: void; toExponential: void; toPrecision: void; valueOf: void; toLocaleString: void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : () => { [P in keyof T1]: void; } -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^ diff --git a/tests/baselines/reference/mappedTypes2.types b/tests/baselines/reference/mappedTypes2.types index 09c2de1631d48..9dba5be04b4c4 100644 --- a/tests/baselines/reference/mappedTypes2.types +++ b/tests/baselines/reference/mappedTypes2.types @@ -3,7 +3,7 @@ === mappedTypes2.ts === function verifyLibTypes() { >verifyLibTypes : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ var x1: Partial; >x1 : Partial @@ -69,7 +69,7 @@ type DeepReadonly = { declare function assign(obj: T, props: Partial): void; >assign : (obj: T, props: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >props : Partial @@ -77,13 +77,13 @@ declare function assign(obj: T, props: Partial): void; declare function freeze(obj: T): Readonly; >freeze : (obj: T) => Readonly -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ declare function pick(obj: T, ...keys: K[]): Pick; >pick : (obj: T, ...keys: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >obj : T > : ^ >keys : K[] @@ -91,7 +91,7 @@ declare function pick(obj: T, ...keys: K[]): Pick; declare function mapObject(obj: Record, f: (x: T) => U): Record; >mapObject : (obj: Record, f: (x: T) => U) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >obj : Record > : ^^^^^^^^^^^^ >f : (x: T) => U @@ -101,7 +101,7 @@ declare function mapObject(obj: Record, f: (x: T) declare function proxify(obj: T): Proxify; >proxify : (obj: T) => Proxify -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -181,7 +181,7 @@ function f0(s1: Shape, s2: Shape) { >assign(s1, { name: "circle" }) : void > : ^^^^ >assign : (obj: T, props: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >s1 : Shape > : ^^^^^ >{ name: "circle" } : { name: string; } @@ -195,7 +195,7 @@ function f0(s1: Shape, s2: Shape) { >assign(s2, { width: 10, height: 20 }) : void > : ^^^^ >assign : (obj: T, props: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >s2 : Shape > : ^^^^^ >{ width: 10, height: 20 } : { width: number; height: number; } @@ -230,7 +230,7 @@ function f1(shape: Shape) { >freeze(shape) : Readonly > : ^^^^^^^^^^^^^^^ >freeze : (obj: T) => Readonly -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >shape : Shape > : ^^^^^ } @@ -268,7 +268,7 @@ function f3(shape: Shape) { >pick(shape, "name", "location") : Pick > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >pick : (obj: T, ...keys: K[]) => Pick -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >shape : Shape > : ^^^^^ >"name" : "name" @@ -305,7 +305,7 @@ function f4() { >mapObject(rec, s => s.length) : Record<"foo" | "bar" | "baz", number> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mapObject : (obj: Record, f: (x: T) => U) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >rec : { foo: string; bar: string; baz: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >s => s.length : (s: string) => number @@ -332,7 +332,7 @@ function f5(shape: Shape) { >proxify(shape) : Proxify > : ^^^^^^^^^^^^^^ >proxify : (obj: T) => Proxify -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >shape : Shape > : ^^^^^ @@ -342,7 +342,7 @@ function f5(shape: Shape) { >p.name.get() : string > : ^^^^^^ >p.name.get : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >p.name : Proxy > : ^^^^^^^^^^^^^ >p : Proxify @@ -350,7 +350,7 @@ function f5(shape: Shape) { >name : Proxy > : ^^^^^^^^^^^^^ >get : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ p.width.set(42); >p.width.set(42) : void diff --git a/tests/baselines/reference/mappedTypes3.types b/tests/baselines/reference/mappedTypes3.types index ef704dc277dab..3f6b3bb08d66f 100644 --- a/tests/baselines/reference/mappedTypes3.types +++ b/tests/baselines/reference/mappedTypes3.types @@ -19,13 +19,13 @@ type Boxified = { declare function boxify(obj: T): Boxified; >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ declare function unboxify(obj: Boxified): T; >unboxify : (obj: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : Boxified > : ^^^^^^^^^^^ @@ -61,7 +61,7 @@ function f1(b: Bacon) { >boxify(b) : Boxified > : ^^^^^^^^^^^^^^^ >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : Bacon > : ^^^^^ @@ -106,7 +106,7 @@ function f2(bb: Boxified) { >unboxify(bb) : Bacon > : ^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bb : Boxified > : ^^^^^^^^^^^^^^^ @@ -143,7 +143,7 @@ function f3(bb: BoxifiedBacon) { >unboxify(bb) : Bacon > : ^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bb : BoxifiedBacon > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypes4.types b/tests/baselines/reference/mappedTypes4.types index 79c32add1b52a..2bff88fc624e1 100644 --- a/tests/baselines/reference/mappedTypes4.types +++ b/tests/baselines/reference/mappedTypes4.types @@ -16,7 +16,7 @@ type Boxified = { function boxify(obj: T): Boxified { >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T > : ^ @@ -102,7 +102,7 @@ function f1(x: A | B | C | undefined) { >boxify(x) : Boxified > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >boxify : (obj: T) => Boxified -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A | B | C | undefined > : ^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/mappedTypes5.types b/tests/baselines/reference/mappedTypes5.types index a38f0e983c749..2e7461a0549e8 100644 --- a/tests/baselines/reference/mappedTypes5.types +++ b/tests/baselines/reference/mappedTypes5.types @@ -3,7 +3,7 @@ === mappedTypes5.ts === function f(p: Partial, r: Readonly, pr: Partial>, rp: Readonly>) { >f : (p: Partial, r: Readonly, pr: Partial>, rp: Readonly>) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >p : Partial > : ^^^^^^^^^^ >r : Readonly diff --git a/tests/baselines/reference/mappedTypes6.types b/tests/baselines/reference/mappedTypes6.types index 6474f0a30a891..1ca500bb8c6cd 100644 --- a/tests/baselines/reference/mappedTypes6.types +++ b/tests/baselines/reference/mappedTypes6.types @@ -67,7 +67,7 @@ type T15 = { -readonly [P in keyof T]-?: T[P] }; function f1(x: Required, y: T, z: Partial) { >f1 : (x: Required, y: T, z: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Required > : ^^^^^^^^^^^ >y : T @@ -154,7 +154,7 @@ type Denullified = { [P in keyof T]-?: NonNullable }; function f2(w: Denullified, x: Required, y: T, z: Partial) { >f2 : (w: Denullified, x: Required, y: T, z: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >w : Denullified > : ^^^^^^^^^^^^^^ >x : Required @@ -296,7 +296,7 @@ function f2(w: Denullified, x: Required, y: T, z: Partial) { function f3(w: Denullified, x: Required, y: T, z: Partial) { >f3 : (w: Denullified, x: Required, y: T, z: Partial) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >w : Denullified > : ^^^^^^^^^^^^^^ >x : Required @@ -348,7 +348,7 @@ type Readwrite = { function f10(x: Readonly, y: T, z: Readwrite) { >f10 : (x: Readonly, y: T, z: Readwrite) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Readonly > : ^^^^^^^^^^^ >y : T diff --git a/tests/baselines/reference/mappedTypesAndObjects.types b/tests/baselines/reference/mappedTypesAndObjects.types index a7501367f51f3..c1c2940757bc1 100644 --- a/tests/baselines/reference/mappedTypesAndObjects.types +++ b/tests/baselines/reference/mappedTypesAndObjects.types @@ -3,7 +3,7 @@ === mappedTypesAndObjects.ts === function f1(x: Partial, y: Readonly) { >f1 : (x: Partial, y: Readonly) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Partial > : ^^^^^^^^^^ >y : Readonly @@ -32,7 +32,7 @@ function f1(x: Partial, y: Readonly) { function f2(x: Partial, y: Readonly) { >f2 : (x: Partial, y: Readonly) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Partial > : ^^^^^^^^^^ >y : Readonly @@ -63,7 +63,7 @@ function f2(x: Partial, y: Readonly) { function f3(x: Partial) { >f3 : (x: Partial) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : Partial > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypesArraysTuples.types b/tests/baselines/reference/mappedTypesArraysTuples.types index 739e7af27e551..e4f3cf01ebd69 100644 --- a/tests/baselines/reference/mappedTypesArraysTuples.types +++ b/tests/baselines/reference/mappedTypesArraysTuples.types @@ -121,7 +121,7 @@ type T54 = ReadWrite>; declare function unboxify(x: Boxified): T; >unboxify : (x: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Boxified > : ^^^^^^^^^^^ @@ -135,7 +135,7 @@ let y10 = unboxify(x10); >unboxify(x10) : [number, string, ...boolean[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (x: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x10 : [Box, Box, ...Box[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -149,7 +149,7 @@ let y11 = unboxify(x11); >unboxify(x11) : number[] > : ^^^^^^^^ >unboxify : (x: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x11 : Box[] > : ^^^^^^^^^^^^^ @@ -167,13 +167,13 @@ let y12 = unboxify(x12); >unboxify(x12) : { a: number; b: string[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (x: Boxified) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x12 : { a: Box; b: Box; } > : ^^^^^ ^^^^^ ^^^ declare function nonpartial(x: Partial): T; >nonpartial : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Partial > : ^^^^^^^^^^ @@ -187,7 +187,7 @@ let y20 = nonpartial(x20); >nonpartial(x20) : [number, string, ...boolean[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >nonpartial : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x20 : [number | undefined, (string | undefined)?, ...boolean[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -201,7 +201,7 @@ let y21 = nonpartial(x21); >nonpartial(x21) : number[] > : ^^^^^^^^ >nonpartial : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x21 : (number | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -219,7 +219,7 @@ let y22 = nonpartial(x22); >nonpartial(x22) : { a: number; b: string[]; } > : ^^^^^^^^^^^^^^^^ ^^^ >nonpartial : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x22 : { a: number | undefined; b?: string[]; } > : ^^^^^ ^^^^^^ ^^^ @@ -233,7 +233,7 @@ type Awaitified = { [P in keyof T]: __Awaited }; declare function all(...values: T): Promise>; >all : (...values: T) => Promise> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >values : T > : ^ @@ -255,7 +255,7 @@ function f1(a: number, b: Promise, c: string[], d: Promise) { >all(a) : Promise<[number]> > : ^^^^^^^^^^^^^^^^^ >all : (...values: T) => Promise> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a : number > : ^^^^^^ @@ -265,7 +265,7 @@ function f1(a: number, b: Promise, c: string[], d: Promise) { >all(a, b) : Promise<[number, number]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >all : (...values: T) => Promise> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a : number > : ^^^^^^ >b : Promise @@ -277,7 +277,7 @@ function f1(a: number, b: Promise, c: string[], d: Promise) { >all(a, b, c) : Promise<[number, number, string[]]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >all : (...values: T) => Promise> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a : number > : ^^^^^^ >b : Promise @@ -291,7 +291,7 @@ function f1(a: number, b: Promise, c: string[], d: Promise) { >all(a, b, c, d) : Promise<[number, number, string[], string[]]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >all : (...values: T) => Promise> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >a : number > : ^^^^^^ >b : Promise @@ -304,7 +304,7 @@ function f1(a: number, b: Promise, c: string[], d: Promise) { function f2(a: Boxified) { >f2 : (a: Boxified) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : Boxified > : ^^^^^^^^^^^ @@ -314,11 +314,11 @@ function f2(a: Boxified) { >a.pop() : Box | undefined > : ^^^^^^^^^^^^^^^^^^^^ >a.pop : () => Box | undefined -> : ^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^^ >a : Boxified > : ^^^^^^^^^^^ >pop : () => Box | undefined -> : ^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^^ let y: Box[] = a.concat(a); >y : Box[] @@ -326,11 +326,11 @@ function f2(a: Boxified) { >a.concat(a) : Box[] > : ^^^^^^^^^^ >a.concat : { (...items: ConcatArray>[]): Box[]; (...items: (Box | ConcatArray>)[]): Box[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ >a : Boxified > : ^^^^^^^^^^^ >concat : { (...items: ConcatArray>[]): Box[]; (...items: (Box | ConcatArray>)[]): Box[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ >a : Boxified > : ^^^^^^^^^^^ } @@ -367,13 +367,13 @@ declare function acceptArray(arr: any[]): void; declare function mapArray(arr: T): Mapped; >mapArray : (arr: T) => Mapped -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arr : T > : ^ function acceptMappedArray(arr: T) { >acceptMappedArray : (arr: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arr : T > : ^ @@ -385,7 +385,7 @@ function acceptMappedArray(arr: T) { >mapArray(arr) : Mapped > : ^^^^^^^^^ >mapArray : (arr: T_1) => Mapped -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >arr : T > : ^ } diff --git a/tests/baselines/reference/mappedTypesGenericTuples2.types b/tests/baselines/reference/mappedTypesGenericTuples2.types index 26e5366029f05..f158bf79bd3ad 100644 --- a/tests/baselines/reference/mappedTypesGenericTuples2.types +++ b/tests/baselines/reference/mappedTypesGenericTuples2.types @@ -5,7 +5,7 @@ declare function getT(): T; >getT : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ Promise.all([getT(), ...getT()]).then((result) => { >Promise.all([getT(), ...getT()]).then((result) => { const head = result[0]; // string const tail = result.slice(1); // any[] tail satisfies string[]; // ok}) : Promise @@ -15,21 +15,21 @@ Promise.all([getT(), ...getT()]).then((result) => { >Promise.all([getT(), ...getT()]) : Promise<[string, ...any[]]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[getT(), ...getT()] : [string, ...any[]] > : ^^^^^^^^^^^^^^^^^^ >getT() : string > : ^^^^^^ >getT : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >...getT() : any >getT() : any >getT : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >then : (onfulfilled?: ((value: [string, ...any[]]) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ >(result) => { const head = result[0]; // string const tail = result.slice(1); // any[] tail satisfies string[]; // ok} : (result: [string, ...any[]]) => void @@ -53,11 +53,11 @@ Promise.all([getT(), ...getT()]).then((result) => { >result.slice(1) : any[] > : ^^^^^ >result.slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >result : [string, ...any[]] > : ^^^^^^^^^^^^^^^^^^ >slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/matchingOfObjectLiteralConstraints.types b/tests/baselines/reference/matchingOfObjectLiteralConstraints.types index 76588f2860b17..5eecec0d19f88 100644 --- a/tests/baselines/reference/matchingOfObjectLiteralConstraints.types +++ b/tests/baselines/reference/matchingOfObjectLiteralConstraints.types @@ -3,7 +3,7 @@ === matchingOfObjectLiteralConstraints.ts === function foo2(x: U, z: T) { } >foo2 : (x: U, z: T) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >y : T > : ^ >x : U @@ -15,7 +15,7 @@ foo2({ y: "foo" }, "foo"); >foo2({ y: "foo" }, "foo") : void > : ^^^^ >foo2 : (x: U, z: T) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >{ y: "foo" } : { y: string; } > : ^^^^^^^^^^^^^^ >y : string diff --git a/tests/baselines/reference/maxConstraints.types b/tests/baselines/reference/maxConstraints.types index 7c035fa1691ac..79640cc721e7c 100644 --- a/tests/baselines/reference/maxConstraints.types +++ b/tests/baselines/reference/maxConstraints.types @@ -19,7 +19,7 @@ var max2: Comparer = (x, y) => { return (x.compareTo(y) > 0) ? x : y }; >max2 : Comparer > : ^^^^^^^^ >(x, y) => { return (x.compareTo(y) > 0) ? x : y } : >(x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/methodContainingLocalFunction.types b/tests/baselines/reference/methodContainingLocalFunction.types index 16e730b1e4543..a633d6de34435 100644 --- a/tests/baselines/reference/methodContainingLocalFunction.types +++ b/tests/baselines/reference/methodContainingLocalFunction.types @@ -65,7 +65,7 @@ class BugExhibition3 { function localGenericFunction(u?: U) { } >localGenericFunction : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ >u : U > : ^ @@ -75,11 +75,11 @@ class BugExhibition3 { x = localGenericFunction; >x = localGenericFunction : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ >x : () => void > : ^^^^^^ >localGenericFunction : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ } } @@ -93,9 +93,9 @@ class C { var funcExpr = (u?: U) => { }; >funcExpr : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ >(u?: U) => { } : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ >u : U > : ^ @@ -105,11 +105,11 @@ class C { x = funcExpr; >x = funcExpr : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ >x : () => void > : ^^^^^^ >funcExpr : (u?: U) => void -> : ^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^^ ^^^^^^^^^ } } diff --git a/tests/baselines/reference/methodSignaturesWithOverloads.types b/tests/baselines/reference/methodSignaturesWithOverloads.types index fcf3524653b58..662ff8fb205e7 100644 --- a/tests/baselines/reference/methodSignaturesWithOverloads.types +++ b/tests/baselines/reference/methodSignaturesWithOverloads.types @@ -36,23 +36,23 @@ var c: { var c2: { >c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ func4(x: T): number; >func4 : { (x: T): number; (s: T_1): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ func4? (s: T): string; // error, mismatched optionality >func4 : { (x: T_1): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >s : T > : ^ func5?: { >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: T): number; >x : T diff --git a/tests/baselines/reference/methodSignaturesWithOverloads2.types b/tests/baselines/reference/methodSignaturesWithOverloads2.types index d29fe4fc8c56a..24a885e6440b1 100644 --- a/tests/baselines/reference/methodSignaturesWithOverloads2.types +++ b/tests/baselines/reference/methodSignaturesWithOverloads2.types @@ -70,23 +70,23 @@ c.func5 = c.func4; var c2: { >c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ func4?(x: T): number; >func4 : { (x: T): number; (s: T_1): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ func4? (s: T): string; >func4 : { (x: T_1): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >s : T > : ^ func5?: { >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (x: T): number; >x : T @@ -102,33 +102,33 @@ var c2: { // no errors c2.func4 = c2.func5; >c2.func4 = c2.func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ >func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ c2.func5 = c2.func4; >c2.func5 = c2.func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ >func5 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2.func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >c2 : { func4?(x: T): number; func4?(s: T): string; func5?: { (x: T): number; (s: T): string; }; } -> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ >func4 : { (x: T): number; (s: T): string; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types b/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types index b9b42cc5fc935..212f59de2da97 100644 --- a/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types +++ b/tests/baselines/reference/mismatchedExplicitTypeParameterAndArgumentType.types @@ -3,7 +3,7 @@ === mismatchedExplicitTypeParameterAndArgumentType.ts === function map(xs: T[], f: (x: T) => U) { >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >xs : T[] > : ^^^ >f : (x: T) => U @@ -56,7 +56,7 @@ var r0 = map([1, ""], (x) => x.toString()); >map([1, ""], (x) => x.toString()) : string[] > : ^^^^^^^^ >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >[1, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -82,7 +82,7 @@ var r5 = map([1, ""], (x) => x.toString()); >map([1, ""], (x) => x.toString()) : any[] > : ^^^^^ >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >[1, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -108,7 +108,7 @@ var r6 = map([1, ""], (x) => x.toString()); >map([1, ""], (x) => x.toString()) : Object[] > : ^^^^^^^^ >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >[1, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -134,7 +134,7 @@ var r7 = map([1, ""], (x) => x.toString()); // error >map([1, ""], (x) => x.toString()) : string[] > : ^^^^^^^^ >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >[1, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -160,7 +160,7 @@ var r7b = map([1, ""], (x) => x.toString()); // error >map([1, ""], (x) => x.toString()) : unknown[] > : ^^^^^^^^^ >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >[1, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -186,7 +186,7 @@ var r8 = map([1, ""], (x) => x.toString()); >map([1, ""], (x) => x.toString()) : string[] > : ^^^^^^^^ >map : (xs: T[], f: (x: T) => U) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^ >[1, ""] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/mismatchedGenericArguments1.types b/tests/baselines/reference/mismatchedGenericArguments1.types index 45d155b9c7705..49c1ec1fb313b 100644 --- a/tests/baselines/reference/mismatchedGenericArguments1.types +++ b/tests/baselines/reference/mismatchedGenericArguments1.types @@ -4,7 +4,7 @@ interface IFoo { foo(x: T): T; >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/missingTypeArguments3.types b/tests/baselines/reference/missingTypeArguments3.types index 9fc720e304785..123bda330f715 100644 --- a/tests/baselines/reference/missingTypeArguments3.types +++ b/tests/baselines/reference/missingTypeArguments3.types @@ -12,7 +12,7 @@ declare module linq { GroupBy(keySelector: (element: T) => TKey): Enumerable>; >GroupBy : { (keySelector: (element: T) => TKey): Enumerable>; (keySelector: (element: T) => TKey_1, elementSelector: (element: T) => TElement): Enumerable>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >keySelector : (element: T) => TKey > : ^ ^^ ^^^^^ >element : T @@ -20,7 +20,7 @@ declare module linq { GroupBy(keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; >GroupBy : { (keySelector: (element: T) => TKey_1): Enumerable>; (keySelector: (element: T) => TKey, elementSelector: (element: T) => TElement): Enumerable>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >keySelector : (element: T) => TKey > : ^ ^^ ^^^^^ >element : T @@ -32,7 +32,7 @@ declare module linq { ToDictionary(keySelector: (element: T) => TKey): Dictionary; >ToDictionary : (keySelector: (element: T) => TKey) => Dictionary -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >keySelector : (element: T) => TKey > : ^ ^^ ^^^^^ >element : T @@ -42,7 +42,7 @@ declare module linq { interface OrderedEnumerable extends Enumerable { ThenBy(keySelector: (element: T) => TCompare): OrderedEnumerable; // used to incorrectly think this was missing a type argument >ThenBy : (keySelector: (element: T) => TCompare) => OrderedEnumerable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >keySelector : (element: T) => TCompare > : ^ ^^ ^^^^^ >element : T diff --git a/tests/baselines/reference/mixinAbstractClasses.2.types b/tests/baselines/reference/mixinAbstractClasses.2.types index d6a5c7c36c1da..6b314151a342e 100644 --- a/tests/baselines/reference/mixinAbstractClasses.2.types +++ b/tests/baselines/reference/mixinAbstractClasses.2.types @@ -9,7 +9,7 @@ interface Mixin { function Mixin any>(baseClass: TBaseClass): TBaseClass & (abstract new (...args: any) => Mixin) { >Mixin : any>(baseClass: TBaseClass) => TBaseClass & (abstract new (...args: any) => Mixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : any > : ^^^ >baseClass : TBaseClass @@ -49,7 +49,7 @@ const MixedBase = Mixin(AbstractBase); >Mixin(AbstractBase) : typeof AbstractBase & (abstract new (...args: any) => Mixin) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^ >Mixin : any>(baseClass: TBaseClass) => TBaseClass & (abstract new (...args: any) => Mixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >AbstractBase : typeof AbstractBase > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mixinAbstractClasses.types b/tests/baselines/reference/mixinAbstractClasses.types index 6ce2463ee1235..812fc93ae6180 100644 --- a/tests/baselines/reference/mixinAbstractClasses.types +++ b/tests/baselines/reference/mixinAbstractClasses.types @@ -9,7 +9,7 @@ interface Mixin { function Mixin any>(baseClass: TBaseClass): TBaseClass & (abstract new (...args: any) => Mixin) { >Mixin : any>(baseClass: TBaseClass) => TBaseClass & (abstract new (...args: any) => Mixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : any >baseClass : TBaseClass > : ^^^^^^^^^^ @@ -55,7 +55,7 @@ class DerivedFromConcrete extends Mixin(ConcreteBase) { >Mixin(ConcreteBase) : ConcreteBase & Mixin > : ^^^^^^^^^^^^^^^^^^^^ >Mixin : any>(baseClass: TBaseClass) => TBaseClass & (abstract new (...args: any) => Mixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >ConcreteBase : typeof ConcreteBase > : ^^^^^^^^^^^^^^^^^^^ } @@ -94,7 +94,7 @@ class DerivedFromAbstract extends Mixin(AbstractBase) { >Mixin(AbstractBase) : AbstractBase & Mixin > : ^^^^^^^^^^^^^^^^^^^^ >Mixin : any>(baseClass: TBaseClass) => TBaseClass & (abstract new (...args: any) => Mixin) -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >AbstractBase : typeof AbstractBase > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mixinAbstractClassesReturnTypeInference.types b/tests/baselines/reference/mixinAbstractClassesReturnTypeInference.types index e7824f8e2dcee..e1dcb85c29811 100644 --- a/tests/baselines/reference/mixinAbstractClassesReturnTypeInference.types +++ b/tests/baselines/reference/mixinAbstractClassesReturnTypeInference.types @@ -18,7 +18,7 @@ abstract class AbstractBase { function Mixin2 any>(baseClass: TBase) { >Mixin2 : any>(baseClass: TBase) => ((abstract new (...args: any[]) => MixinClass) & { prototype: Mixin2.MixinClass; staticMixinMethod(): void; }) & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >args : any[] > : ^^^^^ >baseClass : TBase @@ -51,7 +51,7 @@ class DerivedFromAbstract2 extends Mixin2(AbstractBase) { >Mixin2(AbstractBase) : Mixin2.MixinClass & AbstractBase > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mixin2 : any>(baseClass: TBase) => ((abstract new (...args: any[]) => MixinClass) & { prototype: Mixin2.MixinClass; staticMixinMethod(): void; }) & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >AbstractBase : typeof AbstractBase > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mixinAccessModifiers.types b/tests/baselines/reference/mixinAccessModifiers.types index 0e0d834813a5e..a640829ab3823 100644 --- a/tests/baselines/reference/mixinAccessModifiers.types +++ b/tests/baselines/reference/mixinAccessModifiers.types @@ -193,7 +193,7 @@ function f6(x: Public & Public2) { declare function Mix(c1: T, c2: U): T & U; >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >c1 : T > : ^ >c2 : U @@ -207,7 +207,7 @@ class C1 extends Mix(Private, Private2) {} >Mix(Private, Private2) : typeof Private & typeof Private2 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Private : typeof Private > : ^^^^^^^^^^^^^^ >Private2 : typeof Private2 @@ -219,7 +219,7 @@ class C2 extends Mix(Private, Protected) {} >Mix(Private, Protected) : typeof Private & typeof Protected > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Private : typeof Private > : ^^^^^^^^^^^^^^ >Protected : typeof Protected @@ -231,7 +231,7 @@ class C3 extends Mix(Private, Public) {} >Mix(Private, Public) : typeof Private & typeof Public > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Private : typeof Private > : ^^^^^^^^^^^^^^ >Public : typeof Public @@ -243,7 +243,7 @@ class C4 extends Mix(Protected, Protected2) { >Mix(Protected, Protected2) : Protected & Protected2 > : ^^^^^^^^^^^^^^^^^^^^^^ >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Protected : typeof Protected > : ^^^^^^^^^^^^^^^^ >Protected2 : typeof Protected2 @@ -319,7 +319,7 @@ class C5 extends Mix(Protected, Public) { >Mix(Protected, Public) : Protected & Public > : ^^^^^^^^^^^^^^^^^^ >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Protected : typeof Protected > : ^^^^^^^^^^^^^^^^ >Public : typeof Public @@ -395,7 +395,7 @@ class C6 extends Mix(Public, Public2) { >Mix(Public, Public2) : Public & Public2 > : ^^^^^^^^^^^^^^^^ >Mix : (c1: T, c2: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >Public : typeof Public > : ^^^^^^^^^^^^^ >Public2 : typeof Public2 diff --git a/tests/baselines/reference/mixinClassesAnnotated.types b/tests/baselines/reference/mixinClassesAnnotated.types index 799d3eb27f0c5..c6fe34de17cf8 100644 --- a/tests/baselines/reference/mixinClassesAnnotated.types +++ b/tests/baselines/reference/mixinClassesAnnotated.types @@ -52,9 +52,9 @@ interface Printable { const Printable = >(superClass: T): Constructor & { message: string } & T => >Printable : >(superClass: T) => Constructor & { message: string; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >>(superClass: T): Constructor & { message: string } & T => class extends superClass { static message = "hello"; print() { const output = this.x + "," + this.y; } } : >(superClass: T) => Constructor & { message: string; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >superClass : T > : ^ >message : string @@ -108,7 +108,7 @@ interface Tagged { function Tagged>(superClass: T): Constructor & T { >Tagged : >(superClass: T) => Constructor & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >superClass : T > : ^ @@ -159,7 +159,7 @@ const Thing1 = Tagged(Derived); >Tagged(Derived) : Constructor & typeof Derived > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Tagged : >(superClass: T) => Constructor & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Derived : typeof Derived > : ^^^^^^^^^^^^^^ @@ -169,11 +169,11 @@ const Thing2 = Tagged(Printable(Derived)); >Tagged(Printable(Derived)) : Constructor & Constructor & { message: string; } & typeof Derived > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >Tagged : >(superClass: T) => Constructor & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Printable(Derived) : Constructor & { message: string; } & typeof Derived > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >Printable : >(superClass: T) => Constructor & { message: string; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Derived : typeof Derived > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mixinClassesAnonymous.types b/tests/baselines/reference/mixinClassesAnonymous.types index 49df926846c56..6e823bd057157 100644 --- a/tests/baselines/reference/mixinClassesAnonymous.types +++ b/tests/baselines/reference/mixinClassesAnonymous.types @@ -46,9 +46,9 @@ class Derived extends Base { const Printable = >(superClass: T) => class extends superClass { >Printable : >(superClass: T) => { new (...args: any[]): (Anonymous class); prototype: Printable.(Anonymous class); message: string; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>(superClass: T) => class extends superClass { static message = "hello"; print() { const output = this.x + "," + this.y; }} : >(superClass: T) => { new (...args: any[]): (Anonymous class); prototype: Printable.(Anonymous class); message: string; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >superClass : T > : ^ >class extends superClass { static message = "hello"; print() { const output = this.x + "," + this.y; }} : { new (...args: any[]): (Anonymous class); prototype: Printable.(Anonymous class); message: string; } & T @@ -92,7 +92,7 @@ const Printable = >(superClass: T) => class extends function Tagged>(superClass: T) { >Tagged : >(superClass: T) => { new (...args: any[]): C; prototype: Tagged.C; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >superClass : T > : ^ @@ -143,7 +143,7 @@ const Thing1 = Tagged(Derived); >Tagged(Derived) : { new (...args: any[]): Tagged.C; prototype: Tagged.C; } & typeof Derived > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Tagged : >(superClass: T) => { new (...args: any[]): C; prototype: Tagged.C; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Derived : typeof Derived > : ^^^^^^^^^^^^^^ @@ -153,11 +153,11 @@ const Thing2 = Tagged(Printable(Derived)); >Tagged(Printable(Derived)) : { new (...args: any[]): Tagged<{ new (...args: any[]): Printable.(Anonymous class); prototype: Printable.(Anonymous class); message: string; } & typeof Derived>.C; prototype: Tagged.C; } & { new (...args: any[]): Printable.(Anonymous class); prototype: Printable.(Anonymous class); message: string; } & typeof Derived > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Tagged : >(superClass: T) => { new (...args: any[]): C; prototype: Tagged.C; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Printable(Derived) : { new (...args: any[]): Printable.(Anonymous class); prototype: Printable.(Anonymous class); message: string; } & typeof Derived > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Printable : >(superClass: T) => { new (...args: any[]): (Anonymous class); prototype: Printable.(Anonymous class); message: string; } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Derived : typeof Derived > : ^^^^^^^^^^^^^^ @@ -303,9 +303,9 @@ class Thing3 extends Thing2 { const Timestamped = >(Base: CT) => { >Timestamped : >(Base: CT) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & CT -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>(Base: CT) => { return class extends Base { timestamp = new Date(); };} : >(Base: CT) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & CT -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : CT > : ^^ diff --git a/tests/baselines/reference/mixinIntersectionIsValidbaseType.types b/tests/baselines/reference/mixinIntersectionIsValidbaseType.types index ee2f364bf8142..4280e6ed4b7fd 100644 --- a/tests/baselines/reference/mixinIntersectionIsValidbaseType.types +++ b/tests/baselines/reference/mixinIntersectionIsValidbaseType.types @@ -20,9 +20,9 @@ export interface Initable { */ export const Serializable = & Initable>( >Serializable : & Initable>(SuperClass: K) => { new (...args: any[]): SerializableLocal; prototype: Serializable.SerializableLocal; init(...args: any[]): void; } & K -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ > & Initable>( SuperClass: K) => { const LocalMixin = (InnerSuperClass: K) => { return class SerializableLocal extends InnerSuperClass { } }; let ResultClass = LocalMixin(SuperClass); return ResultClass;} : & Initable>(SuperClass: K) => { new (...args: any[]): SerializableLocal; prototype: Serializable.SerializableLocal; init(...args: any[]): void; } & K -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ SuperClass: K >SuperClass : K @@ -64,9 +64,9 @@ export const Serializable = & Initable>( const AMixin = & Initable>(SuperClass: K) => { >AMixin : & Initable>(SuperClass: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ > & Initable>(SuperClass: K) => { let SomeHowOkay = class A extends SuperClass { }; let SomeHowNotOkay = class A extends Serializable(SuperClass) { };} : & Initable>(SuperClass: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >SuperClass : K > : ^ @@ -92,7 +92,7 @@ const AMixin = & Initable>(SuperClass: K) => { >Serializable(SuperClass) : Serializable.SerializableLocal & Initable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Serializable : & Initable>(SuperClass: K_1) => { new (...args: any[]): SerializableLocal; prototype: Serializable.SerializableLocal; init(...args: any[]): void; } & K_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ >SuperClass : K > : ^ diff --git a/tests/baselines/reference/mixinOverMappedTypeNoCrash.types b/tests/baselines/reference/mixinOverMappedTypeNoCrash.types index 4749fc523f582..3c9c37d0d2bd4 100644 --- a/tests/baselines/reference/mixinOverMappedTypeNoCrash.types +++ b/tests/baselines/reference/mixinOverMappedTypeNoCrash.types @@ -27,7 +27,7 @@ type Constructor = ClassInterface & InstanceInterf function cloneClass>(OriginalClass: T): T { >cloneClass : >(OriginalClass: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >OriginalClass : T > : ^ diff --git a/tests/baselines/reference/mixinPrivateAndProtected.types b/tests/baselines/reference/mixinPrivateAndProtected.types index e0948d6a56c62..1860c0ecff6a0 100644 --- a/tests/baselines/reference/mixinPrivateAndProtected.types +++ b/tests/baselines/reference/mixinPrivateAndProtected.types @@ -34,7 +34,7 @@ class A { function mixB>(Cls: T) { >mixB : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixB.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Cls : T > : ^ @@ -61,7 +61,7 @@ function mixB>(Cls: T) { function mixB2>(Cls: T) { >mixB2 : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixB2.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Cls : T > : ^ @@ -87,7 +87,7 @@ const >mixB(A) : { new (...args: any[]): mixB.(Anonymous class); prototype: mixB.(Anonymous class); } & typeof A > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixB : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixB.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >A : typeof A > : ^^^^^^^^ @@ -97,13 +97,13 @@ const >mixB2(A) : { new (...args: any[]): mixB2.(Anonymous class); prototype: mixB2.(Anonymous class); } & typeof A > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixB2 : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixB2.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >A : typeof A > : ^^^^^^^^ function mixC>(Cls: T) { >mixC : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixC.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Cls : T > : ^ @@ -135,7 +135,7 @@ const >mixC(AB2) : { new (...args: any[]): mixC<{ new (...args: any[]): mixB2.(Anonymous class); prototype: mixB2.(Anonymous class); } & typeof A>.(Anonymous class); prototype: mixC.(Anonymous class); } & { new (...args: any[]): mixB2.(Anonymous class); prototype: mixB2.(Anonymous class); } & typeof A > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixC : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixC.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >AB2 : { new (...args: any[]): mixB2.(Anonymous class); prototype: mixB2.(Anonymous class); } & typeof A > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -145,7 +145,7 @@ const >mixC(AB) : { new (...args: any[]): mixC<{ new (...args: any[]): mixB.(Anonymous class); prototype: mixB.(Anonymous class); } & typeof A>.(Anonymous class); prototype: mixC.(Anonymous class); } & { new (...args: any[]): mixB.(Anonymous class); prototype: mixB.(Anonymous class); } & typeof A > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mixC : >(Cls: T) => { new (...args: any[]): (Anonymous class); prototype: mixC.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >AB : { new (...args: any[]): mixB.(Anonymous class); prototype: mixB.(Anonymous class); } & typeof A > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -370,7 +370,7 @@ class Person { function PersonMixin>(Base: T) { >PersonMixin : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: PersonMixin.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : T > : ^ @@ -420,7 +420,7 @@ class Customer extends PersonMixin(Person) { >PersonMixin(Person) : PersonMixin.(Anonymous class) & Person > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >PersonMixin : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: PersonMixin.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Person : typeof Person > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mixingApparentTypeOverrides.types b/tests/baselines/reference/mixingApparentTypeOverrides.types index 7faccb888fd71..d4ed0e68c99fb 100644 --- a/tests/baselines/reference/mixingApparentTypeOverrides.types +++ b/tests/baselines/reference/mixingApparentTypeOverrides.types @@ -9,7 +9,7 @@ type Constructor = new(...args: any[]) => T; function Tagged>(Base: T) { >Tagged : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: Tagged.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : T > : ^ @@ -71,7 +71,7 @@ class B extends Tagged(A) { >Tagged(A) : Tagged.(Anonymous class) & A > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Tagged : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: Tagged.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >A : typeof A > : ^^^^^^^^ diff --git a/tests/baselines/reference/modularizeLibrary_Dom.iterable.types b/tests/baselines/reference/modularizeLibrary_Dom.iterable.types index bb7b4f8f19f04..6d264c644ea63 100644 --- a/tests/baselines/reference/modularizeLibrary_Dom.iterable.types +++ b/tests/baselines/reference/modularizeLibrary_Dom.iterable.types @@ -7,11 +7,11 @@ for (const element of document.getElementsByTagName("a")) { >document.getElementsByTagName("a") : HTMLCollectionOf > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >document.getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >getElementsByTagName : { (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: K): HTMLCollectionOf; (qualifiedName: string): HTMLCollectionOf; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >"a" : "a" > : ^^^ diff --git a/tests/baselines/reference/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.types b/tests/baselines/reference/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.types index dc9159eb95ea3..d1e070a87a0b4 100644 --- a/tests/baselines/reference/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.types +++ b/tests/baselines/reference/modularizeLibrary_ErrorFromUsingWellknownSymbolWithOutES6WellknownSymbolLib.types @@ -15,11 +15,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types index 2075637dfce8d..6d4b14a5771bb 100644 --- a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types +++ b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types @@ -16,11 +16,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } @@ -61,11 +61,11 @@ m.keys(); >m.keys() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >m.keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >m : Map > : ^^^^^^^^^^^^^^^^^^^ >keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ // Using ES6 function function Baz() { } diff --git a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types index f07eee75a879e..c30844500917f 100644 --- a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types +++ b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types @@ -16,11 +16,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } @@ -61,11 +61,11 @@ m.keys(); >m.keys() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >m.keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >m : Map > : ^^^^^^^^^^^^^^^^^^^ >keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ // Using ES6 function function Baz() { } diff --git a/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types b/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types index 51aa526440d80..d96a868f6e7d2 100644 --- a/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types +++ b/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types @@ -16,11 +16,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } @@ -61,11 +61,11 @@ m.keys(); >m.keys() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >m.keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >m : Map > : ^^^^^^^^^^^^^^^^^^^ >keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ // Using ES6 function function Baz() { } diff --git a/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types b/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types index 05dc79e9bd2b1..e2e9dcf48bbf3 100644 --- a/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types +++ b/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types @@ -16,11 +16,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } @@ -61,11 +61,11 @@ m.keys(); >m.keys() : IterableIterator > : ^^^^^^^^^^^^^^^^^^^^^^^^ >m.keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ >m : Map > : ^^^^^^^^^^^^^^^^^^^ >keys : () => IterableIterator -> : ^^^^^^ ^^^^^^ +> : ^^^^^^ // Using ES6 function function Baz() { } diff --git a/tests/baselines/reference/modularizeLibrary_UsingES5LibAndES6ArrayLib.types b/tests/baselines/reference/modularizeLibrary_UsingES5LibAndES6ArrayLib.types index 1925491a33863..fb2fb66712579 100644 --- a/tests/baselines/reference/modularizeLibrary_UsingES5LibAndES6ArrayLib.types +++ b/tests/baselines/reference/modularizeLibrary_UsingES5LibAndES6ArrayLib.types @@ -16,11 +16,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types b/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types index a59aefad56b23..69552d32f84f8 100644 --- a/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types +++ b/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types @@ -15,11 +15,11 @@ function f(x: number, y: number, z: number) { >Array.from(arguments) : any[] > : ^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >arguments : IArguments > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/moduleAugmentationDeclarationEmit1.types b/tests/baselines/reference/moduleAugmentationDeclarationEmit1.types index 880d389e934cb..3806cfe71aadb 100644 --- a/tests/baselines/reference/moduleAugmentationDeclarationEmit1.types +++ b/tests/baselines/reference/moduleAugmentationDeclarationEmit1.types @@ -30,7 +30,7 @@ declare module "./observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleAugmentationDeclarationEmit2.types b/tests/baselines/reference/moduleAugmentationDeclarationEmit2.types index 3c7bcb221af21..7ad59b43ff299 100644 --- a/tests/baselines/reference/moduleAugmentationDeclarationEmit2.types +++ b/tests/baselines/reference/moduleAugmentationDeclarationEmit2.types @@ -30,7 +30,7 @@ declare module "./observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleAugmentationExtendAmbientModule1.types b/tests/baselines/reference/moduleAugmentationExtendAmbientModule1.types index 048bca67402d2..0b623aa7f890c 100644 --- a/tests/baselines/reference/moduleAugmentationExtendAmbientModule1.types +++ b/tests/baselines/reference/moduleAugmentationExtendAmbientModule1.types @@ -64,7 +64,7 @@ declare module "observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleAugmentationExtendAmbientModule2.types b/tests/baselines/reference/moduleAugmentationExtendAmbientModule2.types index 32b4fd421f87f..0594a109562fd 100644 --- a/tests/baselines/reference/moduleAugmentationExtendAmbientModule2.types +++ b/tests/baselines/reference/moduleAugmentationExtendAmbientModule2.types @@ -96,7 +96,7 @@ declare module "observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleAugmentationExtendFileModule1.types b/tests/baselines/reference/moduleAugmentationExtendFileModule1.types index 52080226fe351..d1d9516d6dea8 100644 --- a/tests/baselines/reference/moduleAugmentationExtendFileModule1.types +++ b/tests/baselines/reference/moduleAugmentationExtendFileModule1.types @@ -30,7 +30,7 @@ declare module "./observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleAugmentationExtendFileModule2.types b/tests/baselines/reference/moduleAugmentationExtendFileModule2.types index 09cdc189a583d..62154ef52c439 100644 --- a/tests/baselines/reference/moduleAugmentationExtendFileModule2.types +++ b/tests/baselines/reference/moduleAugmentationExtendFileModule2.types @@ -30,7 +30,7 @@ declare module "./observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleAugmentationNoNewNames.types b/tests/baselines/reference/moduleAugmentationNoNewNames.types index 42bfa842b603a..ab01bf145b254 100644 --- a/tests/baselines/reference/moduleAugmentationNoNewNames.types +++ b/tests/baselines/reference/moduleAugmentationNoNewNames.types @@ -30,7 +30,7 @@ declare module "./observable" { interface Observable { map(proj: (e:T) => U): Observable >map : (proj: (e: T) => U) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >proj : (e: T) => U > : ^ ^^ ^^^^^ >e : T diff --git a/tests/baselines/reference/moduleExportsElementAccessAssignment2.types b/tests/baselines/reference/moduleExportsElementAccessAssignment2.types index 1def876409090..55e299a7df7a9 100644 --- a/tests/baselines/reference/moduleExportsElementAccessAssignment2.types +++ b/tests/baselines/reference/moduleExportsElementAccessAssignment2.types @@ -19,7 +19,7 @@ var GlobalThing = { x: 12 }; */ function f(type, ctor, exports) { >f : (type: any, ctor: any, exports: any) => void -> : ^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ +> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >type : any >ctor : any >exports : any diff --git a/tests/baselines/reference/multiSignatureTypeInference.types b/tests/baselines/reference/multiSignatureTypeInference.types index ca7e073893eff..9dd3f824ef5bd 100644 --- a/tests/baselines/reference/multiSignatureTypeInference.types +++ b/tests/baselines/reference/multiSignatureTypeInference.types @@ -117,19 +117,19 @@ type InferTwoOverloads = type Expected = InferTwoOverloads<((x: string) => number) & (() => string)>; // [(x: string) => number, () => string] >Expected : [(x: string) => number, () => string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^ >x : string > : ^^^^^^ type JustOneSignature = InferTwoOverloads<((x: string) => number)>; // [(x: string) => number, (x: string) => number] >JustOneSignature : [(x: string) => number, (x: string) => number] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^ >x : string > : ^^^^^^ type JustTheOtherSignature = InferTwoOverloads<(() => string)>; // [() => string, () => string] >JustTheOtherSignature : [() => string, () => string] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^ ^ // Repro from #28867 diff --git a/tests/baselines/reference/multipleInferenceContexts.types b/tests/baselines/reference/multipleInferenceContexts.types index 80d1520bb674d..de7d8147d0c78 100644 --- a/tests/baselines/reference/multipleInferenceContexts.types +++ b/tests/baselines/reference/multipleInferenceContexts.types @@ -21,14 +21,14 @@ interface ComponentOptionsProperties { interface Instance { get(name: K): unknown; >get : (name: K) => unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >name : K > : ^ } declare var Moon: { >Moon : (options?: ConstructorOptions) => Instance -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ (options?: ConstructorOptions): Instance; >options : ConstructorOptions | undefined @@ -42,7 +42,7 @@ const r2 = Moon({ >Moon({ data: { msg: "" }, render() { const h = (x: unknown) => x; return h(this.get("msg")); },}) : Instance<{ msg: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >Moon : (options?: ConstructorOptions) => Instance -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^^ ^^^^^ >{ data: { msg: "" }, render() { const h = (x: unknown) => x; return h(this.get("msg")); },} : { data: { msg: string; }; render(): unknown; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mutuallyRecursiveCallbacks.types b/tests/baselines/reference/mutuallyRecursiveCallbacks.types index 0f988e74fc003..b536080e0ffb5 100644 --- a/tests/baselines/reference/mutuallyRecursiveCallbacks.types +++ b/tests/baselines/reference/mutuallyRecursiveCallbacks.types @@ -15,7 +15,7 @@ type Bar = (foo: Foo) => Foo; declare function foo(bar: Bar): void; >foo : (bar: Bar) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bar : Bar > : ^^^^^^ @@ -25,9 +25,9 @@ declare var bar: Bar<{}>; bar = foo; >bar = foo : (bar: Bar) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bar : Bar<{}> > : ^^^^^^^ >foo : (bar: Bar) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types index 4e21cefca6dfe..bf2e07e40c519 100644 --- a/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types +++ b/tests/baselines/reference/mutuallyRecursiveGenericBaseTypes1.types @@ -29,11 +29,11 @@ b.foo(); // should not error >b.foo() : B > : ^^^^^^^^^ >b.foo : { (): B; (): void; } -> : ^^^^^^ ^^^^^^ ^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^^ >b : B > : ^^^^^^^^^ >foo : { (): B; (): void; } -> : ^^^^^^ ^^^^^^ ^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^^ diff --git a/tests/baselines/reference/namedTupleMembers.types b/tests/baselines/reference/namedTupleMembers.types index 1cf3f98f73540..17087496a30af 100644 --- a/tests/baselines/reference/namedTupleMembers.types +++ b/tests/baselines/reference/namedTupleMembers.types @@ -150,7 +150,7 @@ export const func = null as any as Func; export function useState(initial: T): [value: T, setter: (T) => void] { >useState : (initial: T) => [value: T, setter: (T: any) => void] -> : ^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^ ^^^ >initial : T > : ^ >T : any @@ -248,7 +248,7 @@ y = x; declare function f(...x: T): T; >f : (...x: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -262,7 +262,7 @@ declare function g(elem: object, index: number): object; declare function getArgsForInjection any>(x: T): Parameters; >getArgsForInjection : any>(x: T) => Parameters -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : any[] > : ^^^^^ >x : T @@ -274,11 +274,11 @@ export const argumentsOfGAsFirstArgument = f(getArgsForInjection(g)); // one tup >f(getArgsForInjection(g)) : [[elem: object, index: number]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (...x: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >getArgsForInjection(g) : [elem: object, index: number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getArgsForInjection : any>(x: T) => Parameters -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >g : (elem: object, index: number) => object > : ^ ^^ ^^ ^^ ^^^^^ @@ -288,13 +288,13 @@ export const argumentsOfG = f(...getArgsForInjection(g)); // captured arguments >f(...getArgsForInjection(g)) : [elem: object, index: number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (...x: T) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...getArgsForInjection(g) : number | object > : ^^^^^^^^^^^^^^^ >getArgsForInjection(g) : [elem: object, index: number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getArgsForInjection : any>(x: T) => Parameters -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >g : (elem: object, index: number) => object > : ^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/narrowingAssignmentReadonlyRespectsAssertion.types b/tests/baselines/reference/narrowingAssignmentReadonlyRespectsAssertion.types index 51f63563fe28b..2403685dfc987 100644 --- a/tests/baselines/reference/narrowingAssignmentReadonlyRespectsAssertion.types +++ b/tests/baselines/reference/narrowingAssignmentReadonlyRespectsAssertion.types @@ -112,7 +112,7 @@ function subDataFunc(): TestCase[] { function dataFunc(subFunc: () => T[]): MultiCaseFixture { >dataFunc : (subFunc: () => T[]) => MultiCaseFixture -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >subFunc : () => T[] > : ^^^^^^ @@ -137,7 +137,7 @@ function testFunc() { >dataFunc>(subDataFunc) : MultiCaseFixture> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >dataFunc : (subFunc: () => T[]) => MultiCaseFixture -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >subDataFunc : () => TestCase[] > : ^^^^^^ @@ -180,17 +180,17 @@ function testFunc() { >val1.slice().reverse() : any[] > : ^^^^^ >val1.slice().reverse : () => any[] -> : ^^^^^^^^^ +> : ^^^^^^ >val1.slice() : any[] > : ^^^^^ >val1.slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >val1 : any[] > : ^^^^^ >slice : (start?: number, end?: number) => any[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >reverse : () => any[] -> : ^^^^^^^^^ +> : ^^^^^^ console.log(reversedVal1); >console.log(reversedVal1) : void diff --git a/tests/baselines/reference/narrowingByTypeofInSwitch.types b/tests/baselines/reference/narrowingByTypeofInSwitch.types index ef91b62d22aa9..77120c4fcfbe2 100644 --- a/tests/baselines/reference/narrowingByTypeofInSwitch.types +++ b/tests/baselines/reference/narrowingByTypeofInSwitch.types @@ -230,7 +230,7 @@ function testUnion(x: Basic) { function testExtendsUnion(x: T) { >testExtendsUnion : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -541,7 +541,7 @@ function testUnionImplicitDefault(x: Basic) { function testExtendsExplicitDefault(x: T) { >testExtendsExplicitDefault : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -604,7 +604,7 @@ function testExtendsExplicitDefault(x: T) { function testExtendsImplicitDefault(x: T) { >testExtendsImplicitDefault : (x: T) => Basic -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^ >x : T > : ^ @@ -733,7 +733,7 @@ function exhaustiveChecks(x: number | string | L | R): string { function exhaustiveChecksGenerics(x: T): string { >exhaustiveChecksGenerics : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -795,7 +795,7 @@ function exhaustiveChecksGenerics(x: T): stri function multipleGeneric(xy: X | Y): [X, string] | [Y, number] { >multipleGeneric : (xy: X | Y) => [X, string] | [Y, number] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >xy : X | Y > : ^^^^^ @@ -845,7 +845,7 @@ function multipleGeneric(xy: X | Y): [X, string] | [Y, function multipleGenericFuse(xy: X | Y): [X, number] | [Y, string] | [(X | Y)] { >multipleGenericFuse : (xy: X | Y) => [X, number] | [Y, string] | [(X | Y)] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >xy : X | Y > : ^^^^^ @@ -887,7 +887,7 @@ function multipleGenericFuse(xy: X | function multipleGenericExhaustive(xy: X | Y): [X, string] | [Y, number] { >multipleGenericExhaustive : (xy: X | Y) => [X, string] | [Y, number] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >xy : X | Y > : ^^^^^ @@ -1193,7 +1193,7 @@ function unknownNarrowing(x: unknown) { function keyofNarrowing(k: keyof S) { >keyofNarrowing : (k: keyof S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >k : keyof S > : ^^^^^^^ @@ -1626,7 +1626,7 @@ function fallThroughTestWithTempalte(x: string | number | boolean | object) { function keyofNarrowingWithTemplate(k: keyof S) { >keyofNarrowingWithTemplate : (k: keyof S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >k : keyof S > : ^^^^^^^ @@ -1696,7 +1696,7 @@ function keyofNarrowingWithTemplate(k: key function multipleGenericFuseWithBoth(xy: X | Y): [X, number] | [Y, string] | [(X | Y)] { >multipleGenericFuseWithBoth : (xy: X | Y) => [X, number] | [Y, string] | [(X | Y)] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >xy : X | Y > : ^^^^^ diff --git a/tests/baselines/reference/narrowingConstrainedTypeParameter.types b/tests/baselines/reference/narrowingConstrainedTypeParameter.types index 04935903cbe5d..8a3e58f7ec603 100644 --- a/tests/baselines/reference/narrowingConstrainedTypeParameter.types +++ b/tests/baselines/reference/narrowingConstrainedTypeParameter.types @@ -30,7 +30,7 @@ function isPet(pet: any): pet is Pet { export function speak(pet: TPet, voice: (pet: TPet) => string): string { >speak : (pet: TPet, voice: (pet: TPet) => string) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >pet : TPet > : ^^^^ >voice : (pet: TPet) => string diff --git a/tests/baselines/reference/narrowingConstrainedTypeVariable.types b/tests/baselines/reference/narrowingConstrainedTypeVariable.types index 7b588f22b1e0e..d40500c5ade86 100644 --- a/tests/baselines/reference/narrowingConstrainedTypeVariable.types +++ b/tests/baselines/reference/narrowingConstrainedTypeVariable.types @@ -9,7 +9,7 @@ class C { } function f1(v: T | string): void { >f1 : (v: T | string) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >v : string | T > : ^^^^^^^^^^ @@ -42,7 +42,7 @@ class D { } function f2(v: T | U) { >f2 : (v: T | U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >v : T | U > : ^^^^^ @@ -77,7 +77,7 @@ class E { x: string | undefined } function f3(v: T | { x: string }) { >f3 : (v: T | { x: string; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >v : T | { x: string; } > : ^^^^^^^^^ ^^^ >x : string diff --git a/tests/baselines/reference/narrowingDestructuring.types b/tests/baselines/reference/narrowingDestructuring.types index 0041dd06ab6d5..d92d999c094e5 100644 --- a/tests/baselines/reference/narrowingDestructuring.types +++ b/tests/baselines/reference/narrowingDestructuring.types @@ -15,7 +15,7 @@ type X = { kind: "a", a: string } | { kind: "b", b: string } function func(value: T) { >func : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T > : ^ @@ -90,7 +90,7 @@ type Z = { kind: "f", f: { a: number, b: string, c: number } } function func2(value: T) { >func2 : (value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T > : ^ @@ -155,7 +155,7 @@ function func2(value: T) { function func3(t: T) { >func3 : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >kind : "a" > : ^^^ >a : string @@ -209,7 +209,7 @@ function func3(t: function farr(x: T) { >farr : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/narrowingGenericTypeFromInstanceof01.types b/tests/baselines/reference/narrowingGenericTypeFromInstanceof01.types index 42132cbc054e6..87e1a129558aa 100644 --- a/tests/baselines/reference/narrowingGenericTypeFromInstanceof01.types +++ b/tests/baselines/reference/narrowingGenericTypeFromInstanceof01.types @@ -17,19 +17,19 @@ class B { function acceptA(a: A) { } >acceptA : (a: A) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : A > : ^^^^ function acceptB(b: B) { } >acceptB : (b: B) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >b : B > : ^^^^ function test(x: A | B) { >test : (x: A | B) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : A | B > : ^^^^^^^^^^^ @@ -45,7 +45,7 @@ function test(x: A | B) { >acceptA(x) : void > : ^^^^ >acceptA : (a: A) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^ >x : B > : ^^^^ } @@ -62,7 +62,7 @@ function test(x: A | B) { >acceptA(x) : void > : ^^^^ >acceptA : (a: A) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^ >x : A > : ^^^^ } @@ -79,7 +79,7 @@ function test(x: A | B) { >acceptB(x) : void > : ^^^^ >acceptB : (b: B) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^ >x : B > : ^^^^ } @@ -96,7 +96,7 @@ function test(x: A | B) { >acceptB(x) : void > : ^^^^ >acceptB : (b: B) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^ >x : B > : ^^^^ } diff --git a/tests/baselines/reference/narrowingMutualSubtypes.types b/tests/baselines/reference/narrowingMutualSubtypes.types index fdb0711a36788..b54ce321e24ee 100644 --- a/tests/baselines/reference/narrowingMutualSubtypes.types +++ b/tests/baselines/reference/narrowingMutualSubtypes.types @@ -285,7 +285,7 @@ type Self = T extends unknown ? Identity : never; function is(value: T): value is Self { >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ @@ -314,7 +314,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -322,7 +322,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -330,7 +330,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -338,7 +338,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -346,7 +346,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -354,7 +354,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -362,7 +362,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ @@ -370,7 +370,7 @@ function example(x: Union) { >is(x) : boolean > : ^^^^^^^ >is : (value: T) => value is Self -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Union > : ^^^^^ diff --git a/tests/baselines/reference/narrowingOfQualifiedNames.types b/tests/baselines/reference/narrowingOfQualifiedNames.types index db3c1be7cc581..771cbaad6aca2 100644 --- a/tests/baselines/reference/narrowingOfQualifiedNames.types +++ b/tests/baselines/reference/narrowingOfQualifiedNames.types @@ -452,7 +452,7 @@ type Pet = Fish | Dog; function handleDogBroken(pet: PetType) { >handleDogBroken : (pet: PetType) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >pet : PetType > : ^^^^^^^ diff --git a/tests/baselines/reference/narrowingPastLastAssignment.types b/tests/baselines/reference/narrowingPastLastAssignment.types index 8161272644be3..7d9e4276d07a0 100644 --- a/tests/baselines/reference/narrowingPastLastAssignment.types +++ b/tests/baselines/reference/narrowingPastLastAssignment.types @@ -680,11 +680,11 @@ function f12() { >fooMap.get("a") : number[] | undefined > : ^^^^^^^^^^^^^^^^^^^^ >fooMap.get : (key: string) => number[] | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^ >fooMap : Map > : ^^^^^^^^^^^^^^^^^^^^^ >get : (key: string) => number[] | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^ >"a" : "a" > : ^^^ diff --git a/tests/baselines/reference/narrowingRestGenericCall.types b/tests/baselines/reference/narrowingRestGenericCall.types index 8c24b54a62af0..57e0231671871 100644 --- a/tests/baselines/reference/narrowingRestGenericCall.types +++ b/tests/baselines/reference/narrowingRestGenericCall.types @@ -13,7 +13,7 @@ interface Slugs { function call(obj: T, cb: (val: T) => void) { >call : (obj: T, cb: (val: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >cb : (val: T) => void @@ -38,7 +38,7 @@ call(obj, ({foo, ...rest}) => { >call(obj, ({foo, ...rest}) => { console.log(rest.bar);}) : void > : ^^^^ >call : (obj: T, cb: (val: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Slugs > : ^^^^^ >({foo, ...rest}) => { console.log(rest.bar);} : ({ foo, ...rest }: Slugs) => void diff --git a/tests/baselines/reference/narrowingTypeofFunction.types b/tests/baselines/reference/narrowingTypeofFunction.types index 963f10069c4c1..a727634072b3f 100644 --- a/tests/baselines/reference/narrowingTypeofFunction.types +++ b/tests/baselines/reference/narrowingTypeofFunction.types @@ -38,7 +38,7 @@ function f1(a: (F & Meta) | string) { function f2(x: (T & F) | T & string) { >f2 : (x: (T & F) | (T & string)) => void -> : ^ ^^ ^^ ^ ^^^^^^^^^^ +> : ^^^^ ^^ ^ ^^^^^^^^^^ >x : (T & F) | (T & string) > : ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/narrowingTypeofUndefined2.types b/tests/baselines/reference/narrowingTypeofUndefined2.types index 0f7337722b448..e847c158ffafd 100644 --- a/tests/baselines/reference/narrowingTypeofUndefined2.types +++ b/tests/baselines/reference/narrowingTypeofUndefined2.types @@ -9,7 +9,7 @@ declare function takeArray(arr: Array): void; function fn | undefined>(arg: T) { >fn : | undefined>(arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/narrowingUnionToUnion.types b/tests/baselines/reference/narrowingUnionToUnion.types index 708dfa79387ac..6a62ebc8d51fc 100644 --- a/tests/baselines/reference/narrowingUnionToUnion.types +++ b/tests/baselines/reference/narrowingUnionToUnion.types @@ -35,7 +35,7 @@ function fx1(x: string | number | undefined) { function fx2(x: T | undefined) { >fx2 : (x: T | undefined) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T | undefined > : ^^^^^^^^^^^^^ @@ -55,7 +55,7 @@ function fx2(x: T | undefined) { function fx3(x: T) { >fx3 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -296,13 +296,13 @@ declare function isMaybeZero(value: number | null | undefined): value is 0 | nul declare function isEmptyArray(value: T[]): value is []; >isEmptyArray : (value: T[]) => value is [] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T[] > : ^^^ declare function isMaybeEmptyArray(value: T[] | null | undefined): value is [] | null | undefined; >isMaybeEmptyArray : (value: T[] | null | undefined) => value is [] | null | undefined -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T[] | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -452,7 +452,7 @@ const TEST_CASES = [ >isEmptyArray(value) : boolean > : ^^^^^^^ >isEmptyArray : (value: T[]) => value is [] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : string[] > : ^^^^^^^^ @@ -469,7 +469,7 @@ const TEST_CASES = [ >isMaybeEmptyArray(value) : boolean > : ^^^^^^^ >isMaybeEmptyArray : (value: T[] | null | undefined) => value is [] | null | undefined -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : string[] > : ^^^^^^^^ @@ -493,7 +493,7 @@ const TEST_CASES = [ >isMaybeEmptyArray(value) : boolean > : ^^^^^^^ >isMaybeEmptyArray : (value: T[] | null | undefined) => value is [] | null | undefined -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : string[] | undefined > : ^^^^^^^^^^^^^^^^^^^^ @@ -565,7 +565,7 @@ if (isEmpty(test)) { declare function assert(value: any): asserts value is T >assert : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : any function test1(foo: number | string | boolean) { @@ -578,7 +578,7 @@ function test1(foo: number | string | boolean) { >assert<1 | string>(foo) : void > : ^^^^ >assert : (value: any) => asserts value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types b/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types index 11d9cb162fc6b..b3f997764a884 100644 --- a/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types +++ b/tests/baselines/reference/nearbyIdenticalGenericLambdasAssignable.types @@ -3,15 +3,15 @@ === nearbyIdenticalGenericLambdasAssignable.ts === declare const fA: () => { v: T }; >fA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >v : T > : ^ const fB = () => { >fB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ >() => { return { v: '' as any as T };} : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ return { v: '' as any as T }; >{ v: '' as any as T } : { v: T; } @@ -27,9 +27,9 @@ const fB = () => { }; const fC = () => { >fC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => { return {} as any as { v: T };} : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return {} as any as { v: T }; >{} as any as { v: T } : { v: T; } @@ -45,21 +45,21 @@ const fC = () => { // Hover display is identical on all of these type TA = typeof fA; >TA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >fA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ type TB = typeof fB; >TB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ >fB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ type TC = typeof fC; >TC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >fC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ type TL = () => { v: T }; >TL : TL @@ -71,19 +71,19 @@ declare function accA(x: TA): void; >accA : (x: TA) => void > : ^ ^^ ^^^^^ >x : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ declare function accB(x: TB): void; >accB : (x: TB) => void > : ^ ^^ ^^^^^ >x : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ declare function accC(x: TC): void; >accC : (x: TC) => void > : ^ ^^ ^^^^^ >x : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ declare function accL(x: TL): void; >accL : (x: TL) => void @@ -98,19 +98,19 @@ accA(fA); accA(fB); accA(fC); >accA : (x: TA) => void > : ^ ^^ ^^^^^ >fA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >accA(fB) : void > : ^^^^ >accA : (x: TA) => void > : ^ ^^ ^^^^^ >fB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ >accA(fC) : void > : ^^^^ >accA : (x: TA) => void > : ^ ^^ ^^^^^ >fC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // ~~ previously an error accB(fA); accB(fB); accB(fC); @@ -119,19 +119,19 @@ accB(fA); accB(fB); accB(fC); >accB : (x: TB) => void > : ^ ^^ ^^^^^ >fA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >accB(fB) : void > : ^^^^ >accB : (x: TB) => void > : ^ ^^ ^^^^^ >fB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ >accB(fC) : void > : ^^^^ >accB : (x: TB) => void > : ^ ^^ ^^^^^ >fC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // OK accC(fA); accC(fB); accC(fC); @@ -140,19 +140,19 @@ accC(fA); accC(fB); accC(fC); >accC : (x: TC) => void > : ^ ^^ ^^^^^ >fA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >accC(fB) : void > : ^^^^ >accC : (x: TC) => void > : ^ ^^ ^^^^^ >fB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ >accC(fC) : void > : ^^^^ >accC : (x: TC) => void > : ^ ^^ ^^^^^ >fC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // ~~ previously an error accL(fA); accL(fB); accL(fC); @@ -161,18 +161,18 @@ accL(fA); accL(fB); accL(fC); >accL : (x: TL) => void > : ^ ^^ ^^^^^ >fA : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >accL(fB) : void > : ^^^^ >accL : (x: TL) => void > : ^ ^^ ^^^^^ >fB : () => { v: T; } -> : ^ ^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ >accL(fC) : void > : ^^^^ >accL : (x: TL) => void > : ^ ^^ ^^^^^ >fC : () => { v: T; } -> : ^ ^^^^^^^ +> : ^^^^^^^^^ // ~~ previously an error diff --git a/tests/baselines/reference/nestedCallbackErrorNotFlattened.types b/tests/baselines/reference/nestedCallbackErrorNotFlattened.types index f23415587861b..c6d96fecaf22a 100644 --- a/tests/baselines/reference/nestedCallbackErrorNotFlattened.types +++ b/tests/baselines/reference/nestedCallbackErrorNotFlattened.types @@ -11,17 +11,17 @@ type Cb = {noAlias: () => T}["noAlias"]; // `"noAlias"` here prevents an alia declare const x: Cb>>>; // one more layer of `Cb` adn we'd get a `true` from the deeply-nested symbol check >x : () => () => () => () => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ declare let y: Cb>>>; >y : () => () => () => () => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ y = x; >y = x : () => () => () => () => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ >y : () => () => () => () => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ >x : () => () => () => () => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ diff --git a/tests/baselines/reference/nestedGenericSpreadInference.types b/tests/baselines/reference/nestedGenericSpreadInference.types index 1d13f4dd71d70..06608cbb16a81 100644 --- a/tests/baselines/reference/nestedGenericSpreadInference.types +++ b/tests/baselines/reference/nestedGenericSpreadInference.types @@ -3,7 +3,7 @@ === nestedGenericSpreadInference.ts === declare function wrap(x: X): { x: X }; >wrap : (x: X) => { x: X; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : X > : ^ >x : X @@ -11,7 +11,7 @@ declare function wrap(x: X): { x: X }; declare function call(x: { x: (...args: A) => T }, ...args: A): T; >call : (x: { x: (...args: A) => T; }, ...args: A) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >x : { x: (...args: A) => T; } > : ^^^^^ ^^^ >x : (...args: A) => T @@ -28,13 +28,13 @@ const leak = call(wrap((x: T) => x), 1); >call(wrap((x: T) => x), 1) : number > : ^^^^^^ >call : (x: { x: (...args: A) => T; }, ...args: A) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >wrap((x: T) => x) : { x: (x: A[0]) => A[0]; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^ >wrap : (x: X) => { x: X; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/nestedTypeVariableInfersLiteral.types b/tests/baselines/reference/nestedTypeVariableInfersLiteral.types index c0a7c192aa6b6..12280570da431 100644 --- a/tests/baselines/reference/nestedTypeVariableInfersLiteral.types +++ b/tests/baselines/reference/nestedTypeVariableInfersLiteral.types @@ -4,13 +4,13 @@ // https://github.com/Microsoft/TypeScript/issues/19632 declare function direct(a: A | A[]): Record >direct : (a: A | A[]) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : A | A[] > : ^^^^^^^ declare function nested(a: { fields: A }): Record >nested : (a: { fields: A; }) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : { fields: A; } > : ^^^^^^^^^^ ^^^ >fields : A @@ -18,7 +18,7 @@ declare function nested(a: { fields: A }): Record declare function nestedUnion(a: { fields: A | A[] }): Record >nestedUnion : (a: { fields: A | A[]; }) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : { fields: A | A[]; } > : ^^^^^^^^^^ ^^^ >fields : A | A[] @@ -30,7 +30,7 @@ const directUnionSingle = direct("z") >direct("z") : Record<"z", string> > : ^^^^^^^^^^^^^^^^^^^ >direct : (a: A | A[]) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"z" : "z" > : ^^^ @@ -40,7 +40,7 @@ const directUnionArray = direct(["z", "y"]) >direct(["z", "y"]) : Record<"z" | "y", string> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >direct : (a: A | A[]) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >["z", "y"] : ("z" | "y")[] > : ^^^^^^^^^^^^^ >"z" : "z" @@ -54,7 +54,7 @@ const nestedSingle = nested({fields: "z"}) >nested({fields: "z"}) : Record<"z", string> > : ^^^^^^^^^^^^^^^^^^^ >nested : (a: { fields: A; }) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{fields: "z"} : { fields: "z"; } > : ^^^^^^^^^^^^^^^^ >fields : "z" @@ -68,7 +68,7 @@ const nestedUnionSingle = nestedUnion({fields: "z"}) >nestedUnion({fields: "z"}) : Record<"z", string> > : ^^^^^^^^^^^^^^^^^^^ >nestedUnion : (a: { fields: A | A[]; }) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{fields: "z"} : { fields: "z"; } > : ^^^^^^^^^^^^^^^^ >fields : "z" @@ -82,7 +82,7 @@ const nestedUnionArray = nestedUnion({fields: ["z", "y"]}) >nestedUnion({fields: ["z", "y"]}) : Record<"z" | "y", string> > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >nestedUnion : (a: { fields: A | A[]; }) => Record -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{fields: ["z", "y"]} : { fields: ("z" | "y")[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >fields : ("z" | "y")[] diff --git a/tests/baselines/reference/neverInference.types b/tests/baselines/reference/neverInference.types index f2234fd52941f..08cf6b6cdc6d3 100644 --- a/tests/baselines/reference/neverInference.types +++ b/tests/baselines/reference/neverInference.types @@ -3,7 +3,7 @@ === neverInference.ts === declare function f1(x: T[]): T; >f1 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -19,7 +19,7 @@ let a1 = f1([]); // never >f1([]) : never > : ^^^^^ >f1 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[] : never[] > : ^^^^^^^ @@ -29,7 +29,7 @@ let a2 = f1(neverArray); // never >f1(neverArray) : never > : ^^^^^ >f1 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >neverArray : never[] > : ^^^^^^^ @@ -71,7 +71,7 @@ declare function compareNumbers(x: number, y: number): number; declare function mkList(items: T[], comparator: Comparator): LinkedList; >mkList : (items: T[], comparator: Comparator) => LinkedList -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >items : T[] > : ^^^ >comparator : Comparator @@ -83,7 +83,7 @@ const list: LinkedList = mkList([], compareNumbers); >mkList([], compareNumbers) : LinkedList > : ^^^^^^^^^^^^^^^^^^ >mkList : (items: T[], comparator: Comparator) => LinkedList -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >[] : never[] > : ^^^^^^^ >compareNumbers : (x: number, y: number) => number @@ -93,7 +93,7 @@ const list: LinkedList = mkList([], compareNumbers); declare function f2(as1: a[], as2: a[], cmp: (a1: a, a2: a) => number): void; >f2 : (as1: a[], as2: a[], cmp: (a1: a, a2: a) => number) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >as1 : a[] > : ^^^ >as2 : a[] @@ -109,15 +109,15 @@ f2(Array.from([0]), [], (a1, a2) => a1 - a2); >f2(Array.from([0]), [], (a1, a2) => a1 - a2) : void > : ^^^^ >f2 : (as1: a[], as2: a[], cmp: (a1: a, a2: a) => number) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Array.from([0]) : number[] > : ^^^^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[0] : number[] > : ^^^^^^^^ >0 : 0 @@ -141,15 +141,15 @@ f2(Array.from([]), [0], (a1, a2) => a1 - a2); >f2(Array.from([]), [0], (a1, a2) => a1 - a2) : void > : ^^^^ >f2 : (as1: a[], as2: a[], cmp: (a1: a, a2: a) => number) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Array.from([]) : never[] > : ^^^^^^^ >Array.from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >Array : ArrayConstructor > : ^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): T[]; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; (iterable: Iterable | ArrayLike): T[]; (iterable: Iterable | ArrayLike, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[] : never[] > : ^^^^^^^ >[0] : number[] diff --git a/tests/baselines/reference/neverReturningFunctions1.types b/tests/baselines/reference/neverReturningFunctions1.types index faf50f8a7557a..63353a415de9c 100644 --- a/tests/baselines/reference/neverReturningFunctions1.types +++ b/tests/baselines/reference/neverReturningFunctions1.types @@ -821,7 +821,7 @@ export interface ComponentConstructor { declare function registerComponent( >registerComponent : (name: string, component: ComponentDefinition) => ComponentConstructor -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ name: string, >name : string @@ -843,7 +843,7 @@ const Component = registerComponent('test-component', { >registerComponent('test-component', { schema: { myProperty: { default: [], parse() { return [true]; } }, string: { type: 'string' }, num: 0 }, init() { this.data.num = 0; this.el.setAttribute('custom-attribute', 'custom-value'); }, update() {}, tick() {}, remove() {}, pause() {}, play() {}, multiply(f: number) { // Reference to system because both were registered with the same name. return f * this.data.num * this.system!.data.counter; }}) : ComponentConstructor<{ schema: { myProperty: { default: never[]; parse(): boolean[]; }; string: { type: string; }; num: number; }; init(): void; update(): void; tick(): void; remove(): void; pause(): void; play(): void; multiply(f: number): number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ >registerComponent : (name: string, component: ComponentDefinition) => ComponentConstructor -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'test-component' : "test-component" > : ^^^^^^^^^^^^^^^^ >{ schema: { myProperty: { default: [], parse() { return [true]; } }, string: { type: 'string' }, num: 0 }, init() { this.data.num = 0; this.el.setAttribute('custom-attribute', 'custom-value'); }, update() {}, tick() {}, remove() {}, pause() {}, play() {}, multiply(f: number) { // Reference to system because both were registered with the same name. return f * this.data.num * this.system!.data.counter; }} : { schema: { myProperty: { default: never[]; parse(): boolean[]; }; string: { type: string; }; num: number; }; init(): void; update(): void; tick(): void; remove(): void; pause(): void; play(): void; multiply(f: number): number; } diff --git a/tests/baselines/reference/neverType.types b/tests/baselines/reference/neverType.types index 9d75ae4fb7027..6c75f02e54976 100644 --- a/tests/baselines/reference/neverType.types +++ b/tests/baselines/reference/neverType.types @@ -167,7 +167,7 @@ function move2(direction: "up" | "down") { function check(x: T | undefined) { >check : (x: T | undefined) => NonNullable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >x : T | undefined > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/newOperator.types b/tests/baselines/reference/newOperator.types index 97a58a096c803..97982a5335e40 100644 --- a/tests/baselines/reference/newOperator.types +++ b/tests/baselines/reference/newOperator.types @@ -163,7 +163,7 @@ new ctorUnion(""); // Error on union with incompatible constructors declare const ctorUnion2: (new (a: T) => void) | (new (a: string) => void) >ctorUnion2 : (new (a: T) => void) | (new (a: string) => void) -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ ^ >a : T > : ^ >a : string @@ -173,7 +173,7 @@ new ctorUnion2(""); >new ctorUnion2("") : any > : ^^^ >ctorUnion2 : (new (a: T) => void) | (new (a: string) => void) -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ ^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ ^ >"" : "" > : ^^ diff --git a/tests/baselines/reference/newOperatorConformance.types b/tests/baselines/reference/newOperatorConformance.types index 869134f639ca9..380234967eb13 100644 --- a/tests/baselines/reference/newOperatorConformance.types +++ b/tests/baselines/reference/newOperatorConformance.types @@ -98,7 +98,7 @@ var d = new anyCtor1(undefined); // Construct expression of type where apparent type has a construct signature with 0 arguments function newFn1(s: T) { >newFn1 : (s: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >s : T > : ^ @@ -118,7 +118,7 @@ function newFn1(s: T) { // Construct expression of type where apparent type has a construct signature with 1 arguments function newFn2(s: T) { >newFn2 : (s: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >s : number > : ^^^^^^ >s : T diff --git a/tests/baselines/reference/noConstraintInReturnType1.types b/tests/baselines/reference/noConstraintInReturnType1.types index fda28849f9dc0..c37c4d82ea383 100644 --- a/tests/baselines/reference/noConstraintInReturnType1.types +++ b/tests/baselines/reference/noConstraintInReturnType1.types @@ -7,6 +7,6 @@ class List { static empty(): List { return null; } >empty : () => List -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } diff --git a/tests/baselines/reference/noCrashOnMixin.types b/tests/baselines/reference/noCrashOnMixin.types index cd8a3c173fa37..4b2f9eb7f826c 100644 --- a/tests/baselines/reference/noCrashOnMixin.types +++ b/tests/baselines/reference/noCrashOnMixin.types @@ -24,7 +24,7 @@ type Constructor = new (...args: any[]) => T; function Mixin(Base: TBase) { >Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : TBase > : ^^^^^ @@ -48,7 +48,7 @@ class CrashTrigger extends Mixin(Empty) { >Mixin(Empty) : Mixin.(Anonymous class) & Empty > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Empty : typeof Empty > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/noCrashOnThisTypeUsage.types b/tests/baselines/reference/noCrashOnThisTypeUsage.types index 1e46680a80fab..e2bdbb950d256 100644 --- a/tests/baselines/reference/noCrashOnThisTypeUsage.types +++ b/tests/baselines/reference/noCrashOnThisTypeUsage.types @@ -19,7 +19,7 @@ interface IListenable { function notifyListeners(listenable: IListenable, change: T) { >notifyListeners : (listenable: IListenable, change: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >listenable : IListenable > : ^^^^^^^^^^^ >change : T @@ -49,7 +49,7 @@ export class ObservableValue { >notifyListeners(this, { type: "update", object: this, newValue, oldValue }) : void > : ^^^^ >notifyListeners : (listenable: IListenable, change: T_1) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >this : this > : ^^^^ >{ type: "update", object: this, newValue, oldValue } : { type: string; object: this; newValue: T; oldValue: any; } diff --git a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types index 8a51c56c23c97..beaf64a7619a2 100644 --- a/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types +++ b/tests/baselines/reference/noImplicitAnyFunctionExpressionAssignment.types @@ -6,7 +6,7 @@ var x: (a: any) => void = function (x: T) { > : ^ ^^ ^^^^^ >a : any >function (x: T) { return null;} : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -18,9 +18,9 @@ var x2: (a: any) => void = function f(x: T) { > : ^ ^^ ^^^^^ >a : any >function f(x: T) { return null;} : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >f : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/noImplicitReturnsExclusions.types b/tests/baselines/reference/noImplicitReturnsExclusions.types index f9e9441f59fed..01fa59d84ef00 100644 --- a/tests/baselines/reference/noImplicitReturnsExclusions.types +++ b/tests/baselines/reference/noImplicitReturnsExclusions.types @@ -208,7 +208,7 @@ declare class HistoryItem { interface Thenable { then( >then : { (onfulfilled?: (value: T) => TResult | Thenable, onrejected?: (reason: any) => TResult | Thenable): Thenable; (onfulfilled?: (value: T) => TResult_1 | Thenable, onrejected?: (reason: any) => void): Thenable; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ onfulfilled?: (value: T) => TResult | Thenable, >onfulfilled : ((value: T) => TResult | Thenable) | undefined @@ -225,7 +225,7 @@ interface Thenable { ): Thenable; then( >then : { (onfulfilled?: (value: T) => TResult_1 | Thenable, onrejected?: (reason: any) => TResult_1 | Thenable): Thenable; (onfulfilled?: (value: T) => TResult | Thenable, onrejected?: (reason: any) => void): Thenable; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ onfulfilled?: (value: T) => TResult | Thenable, >onfulfilled : ((value: T) => TResult | Thenable) | undefined @@ -244,7 +244,7 @@ interface Thenable { export declare function executeCommand( >executeCommand : (command: string, ...rest: any[]) => Thenable -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ command: string, >command : string @@ -300,7 +300,7 @@ registerCommand("_references-view.showHistoryItem", async (item) => { // Error, >executeCommand("vscode.open", item.input.location.uri) : Thenable > : ^^^^^^^^^^^^^^^^^ >executeCommand : (command: string, ...rest: any[]) => Thenable -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ >"vscode.open" : "vscode.open" > : ^^^^^^^^^^^^^ >item.input.location.uri : string diff --git a/tests/baselines/reference/noImplicitReturnsInAsync1.types b/tests/baselines/reference/noImplicitReturnsInAsync1.types index 82d7c343860ce..f46ef01085f7a 100644 --- a/tests/baselines/reference/noImplicitReturnsInAsync1.types +++ b/tests/baselines/reference/noImplicitReturnsInAsync1.types @@ -27,11 +27,11 @@ async function test(isError: boolean = false) { >Promise.resolve("The test is passed without an error.") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"The test is passed without an error." : "The test is passed without an error." > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/noImplicitSymbolToString.types b/tests/baselines/reference/noImplicitSymbolToString.types index 38ff31a4858b1..607bd5836a093 100644 --- a/tests/baselines/reference/noImplicitSymbolToString.types +++ b/tests/baselines/reference/noImplicitSymbolToString.types @@ -66,7 +66,7 @@ type StringOrSymbol = string | symbol; function getKey(key: S) { >getKey : (key: S) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >key : S > : ^ @@ -79,7 +79,7 @@ function getKey(key: S) { function getKey1(key: S) { >getKey1 : (key: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : S > : ^ @@ -134,7 +134,7 @@ function getKey1(key: S) { function getKey2(key: S) { >getKey2 : (key: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : S > : ^ diff --git a/tests/baselines/reference/noInfer.types b/tests/baselines/reference/noInfer.types index 65c9a5d6d9432..510b3b870dada 100644 --- a/tests/baselines/reference/noInfer.types +++ b/tests/baselines/reference/noInfer.types @@ -81,7 +81,7 @@ type T32 = { [K in keyof NoInfer<{ a: string, b: string }>]: K }; declare function foo1(a: T, b: NoInfer): void >foo1 : (a: T, b: NoInfer) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : NoInfer @@ -89,7 +89,7 @@ declare function foo1(a: T, b: NoInfer): void declare function foo2(a: T, b: NoInfer[]): void >foo2 : (a: T, b: NoInfer[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : NoInfer[] @@ -97,7 +97,7 @@ declare function foo2(a: T, b: NoInfer[]): void declare function foo3(a: T, b: NoInfer): void >foo3 : (a: T, b: NoInfer) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : NoInfer @@ -105,7 +105,7 @@ declare function foo3(a: T, b: NoInfer): void declare function foo4(a: T, b: { x: NoInfer }): void >foo4 : (a: T, b: { x: NoInfer; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : { x: NoInfer; } @@ -115,7 +115,7 @@ declare function foo4(a: T, b: { x: NoInfer }): void declare function foo5(a: T, b: NoInfer<{ x: T }>): void >foo5 : (a: T, b: NoInfer<{ x: T; }>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : NoInfer<{ x: T; }> @@ -127,7 +127,7 @@ foo1('foo', 'foo') // ok >foo1('foo', 'foo') : void > : ^^^^ >foo1 : (a: T, b: NoInfer) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ >'foo' : "foo" @@ -137,7 +137,7 @@ foo1('foo', 'bar') // error >foo1('foo', 'bar') : void > : ^^^^ >foo1 : (a: T, b: NoInfer) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ >'bar' : "bar" @@ -147,7 +147,7 @@ foo2('foo', ['bar']) // error >foo2('foo', ['bar']) : void > : ^^^^ >foo2 : (a: T, b: NoInfer[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ >['bar'] : "bar"[] @@ -159,7 +159,7 @@ foo3('foo', ['bar']) // error >foo3('foo', ['bar']) : void > : ^^^^ >foo3 : (a: T, b: NoInfer) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ >['bar'] : "bar"[] @@ -171,7 +171,7 @@ foo4('foo', { x: 'bar' }) // error >foo4('foo', { x: 'bar' }) : void > : ^^^^ >foo4 : (a: T, b: { x: NoInfer; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ >{ x: 'bar' } : { x: "bar"; } @@ -185,7 +185,7 @@ foo5('foo', { x: 'bar' }) // error >foo5('foo', { x: 'bar' }) : void > : ^^^^ >foo5 : (a: T, b: NoInfer<{ x: T; }>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >'foo' : "foo" > : ^^^^^ >{ x: 'bar' } : { x: "bar"; } @@ -211,7 +211,7 @@ declare class Dog extends Animal { woof(): void } declare function doSomething(value: T, getDefault: () => NoInfer): void; >doSomething : (value: T, getDefault: () => NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >value : T > : ^ >getDefault : () => NoInfer @@ -221,7 +221,7 @@ doSomething(new Animal(), () => new Animal()); // ok >doSomething(new Animal(), () => new Animal()) : void > : ^^^^ >doSomething : (value: T, getDefault: () => NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >new Animal() : Animal > : ^^^^^^ >Animal : typeof Animal @@ -237,7 +237,7 @@ doSomething(new Animal(), () => new Dog()); // ok >doSomething(new Animal(), () => new Dog()) : void > : ^^^^ >doSomething : (value: T, getDefault: () => NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >new Animal() : Animal > : ^^^^^^ >Animal : typeof Animal @@ -253,7 +253,7 @@ doSomething(new Dog(), () => new Animal()); // error >doSomething(new Dog(), () => new Animal()) : void > : ^^^^ >doSomething : (value: T, getDefault: () => NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >new Dog() : Dog > : ^^^ >Dog : typeof Dog @@ -267,7 +267,7 @@ doSomething(new Dog(), () => new Animal()); // error declare function assertEqual(actual: T, expected: NoInfer): boolean; >assertEqual : (actual: T, expected: NoInfer) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >actual : T > : ^ >expected : NoInfer @@ -277,7 +277,7 @@ assertEqual({ x: 1 }, { x: 3 }); // ok >assertEqual({ x: 1 }, { x: 3 }) : boolean > : ^^^^^^^ >assertEqual : (actual: T, expected: NoInfer) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 1 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -309,7 +309,7 @@ assertEqual(g, { x: 3 }); // error >assertEqual(g, { x: 3 }) : boolean > : ^^^^^^^ >assertEqual : (actual: T, expected: NoInfer) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >g : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: 3 } : { x: number; } @@ -321,7 +321,7 @@ assertEqual(g, { x: 3 }); // error declare function invoke(func: (value: T) => R, value: NoInfer): R; >invoke : (func: (value: T) => R, value: NoInfer) => R -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >func : (value: T) => R > : ^ ^^ ^^^^^ >value : T @@ -341,7 +341,7 @@ invoke(test, { x: 1, y: 2 }); // error >invoke(test, { x: 1, y: 2 }) : number > : ^^^^^^ >invoke : (func: (value: T) => R, value: NoInfer) => R -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >test : (value: { x: number; }) => number > : ^ ^^ ^^^^^ >{ x: 1, y: 2 } : { x: number; y: number; } @@ -379,7 +379,7 @@ type Component = { props: Props; }; declare function doWork(Component: Component, props: NoInfer): void; >doWork : (Component: Component, props: NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >Component : Component > : ^^^^^^^^^^^^^^^^ >props : NoInfer @@ -395,7 +395,7 @@ doWork(comp, { foo: 42 }); // ok >doWork(comp, { foo: 42 }) : void > : ^^^^ >doWork : (Component: Component, props: NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >comp : Component<{ foo: number; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ >{ foo: 42 } : { foo: number; } @@ -409,7 +409,7 @@ doWork(comp, {}); // error >doWork(comp, {}) : void > : ^^^^ >doWork : (Component: Component, props: NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >comp : Component<{ foo: number; }> > : ^^^^^^^^^^^^^^^^^ ^^^^ >{} : {} @@ -417,7 +417,7 @@ doWork(comp, {}); // error declare function mutate(callback: (a: NoInfer, b: number) => T): T; >mutate : (callback: (a: NoInfer, b: number) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (a: NoInfer, b: number) => T > : ^ ^^ ^^ ^^ ^^^^^ >a : NoInfer @@ -431,7 +431,7 @@ const mutate1 = mutate((a, b) => b); >mutate((a, b) => b) : unknown > : ^^^^^^^ >mutate : (callback: (a: NoInfer, b: number) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(a, b) => b : (a: unknown, b: number) => number > : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >a : unknown diff --git a/tests/baselines/reference/noInferCommonPropertyCheck1.types b/tests/baselines/reference/noInferCommonPropertyCheck1.types index af16a58da11d4..6de3c9a8ce31b 100644 --- a/tests/baselines/reference/noInferCommonPropertyCheck1.types +++ b/tests/baselines/reference/noInferCommonPropertyCheck1.types @@ -25,7 +25,7 @@ declare const someObj1: { x: string }; declare function test1(a: T, b: NoInfer & { prop?: unknown }): void; >test1 : (a: T, b: NoInfer & { prop?: unknown; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : NoInfer & { prop?: unknown; } @@ -37,7 +37,7 @@ test1(partialObj1, someObj1); >test1(partialObj1, someObj1) : void > : ^^^^ >test1 : (a: T, b: NoInfer & { prop?: unknown; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >partialObj1 : Partial<{ a: unknown; b: unknown; }> > : ^^^^^^^^^^^^^ ^^^^^ ^^^^ >someObj1 : { x: string; } @@ -45,7 +45,7 @@ test1(partialObj1, someObj1); declare function test2( >test2 : (a: T1, b: T2, c: NoInfer & NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ a: T1, >a : T1 @@ -65,7 +65,7 @@ test2(partialObj1, partialObj2, someObj1); >test2(partialObj1, partialObj2, someObj1) : void > : ^^^^ >test2 : (a: T1, b: T2, c: NoInfer & NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >partialObj1 : Partial<{ a: unknown; b: unknown; }> > : ^^^^^^^^^^^^^ ^^^^^ ^^^^ >partialObj2 : Partial<{ c: unknown; d: unknown; }> @@ -75,7 +75,7 @@ test2(partialObj1, partialObj2, someObj1); declare function test3( >test3 : (a: T1, b: T2, c: NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ a: T1, >a : T1 @@ -95,7 +95,7 @@ test3(partialObj1, partialObj2, someObj1); >test3(partialObj1, partialObj2, someObj1) : void > : ^^^^ >test3 : (a: T1, b: T2, c: NoInfer) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >partialObj1 : Partial<{ a: unknown; b: unknown; }> > : ^^^^^^^^^^^^^ ^^^^^ ^^^^ >partialObj2 : Partial<{ c: unknown; d: unknown; }> diff --git a/tests/baselines/reference/noInferRedeclaration.types b/tests/baselines/reference/noInferRedeclaration.types index 7dd28f82de0b1..dfcbd2ae55e03 100644 --- a/tests/baselines/reference/noInferRedeclaration.types +++ b/tests/baselines/reference/noInferRedeclaration.types @@ -3,9 +3,9 @@ === a.ts === export const f = (x: T, y: NoInfer) => x; >f : (x: T, y: NoInfer) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >(x: T, y: NoInfer) => x : (x: T, y: NoInfer) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : NoInfer @@ -16,7 +16,7 @@ export const f = (x: T, y: NoInfer) => x; === b.ts === import { f } from "./a"; >f : (x: T, y: globalThis.NoInfer) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ type NoInfer = T & number; >NoInfer : NoInfer @@ -24,7 +24,7 @@ type NoInfer = T & number; export const g = f; >g : (x: T, y: globalThis.NoInfer) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ >f : (x: T, y: globalThis.NoInfer) => T -> : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ diff --git a/tests/baselines/reference/noInferUnionExcessPropertyCheck1.types b/tests/baselines/reference/noInferUnionExcessPropertyCheck1.types index b1394d0e58c61..5692913d38ee2 100644 --- a/tests/baselines/reference/noInferUnionExcessPropertyCheck1.types +++ b/tests/baselines/reference/noInferUnionExcessPropertyCheck1.types @@ -3,7 +3,7 @@ === noInferUnionExcessPropertyCheck1.ts === declare function test1( >test1 : (a: T, b: NoInfer | (() => NoInfer)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ @@ -21,7 +21,7 @@ test1({ x: "foo" }, { x: "bar" }); // no error >test1({ x: "foo" }, { x: "bar" }) : void > : ^^^^ >test1 : (a: T, b: NoInfer | (() => NoInfer)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: "foo" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -39,7 +39,7 @@ test1({ x: "foo" }, { x: "bar", y: 42 }); // epc error >test1({ x: "foo" }, { x: "bar", y: 42 }) : void > : ^^^^ >test1 : (a: T, b: NoInfer | (() => NoInfer)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: "foo" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -59,7 +59,7 @@ test1({ x: "foo" }, { x: "bar", y: 42 }); // epc error declare function test2( >test2 : (a: T, b: NoInfer | NoInfer<() => T>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ @@ -77,7 +77,7 @@ test2({ x: "foo" }, { x: "bar" }); // no error >test2({ x: "foo" }, { x: "bar" }) : void > : ^^^^ >test2 : (a: T, b: NoInfer | NoInfer<() => T>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: "foo" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -95,7 +95,7 @@ test2({ x: "foo" }, { x: "bar", y: 42 }); // epc error >test2({ x: "foo" }, { x: "bar", y: 42 }) : void > : ^^^^ >test2 : (a: T, b: NoInfer | NoInfer<() => T>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: "foo" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -115,7 +115,7 @@ test2({ x: "foo" }, { x: "bar", y: 42 }); // epc error declare function test3( >test3 : (a: T, b: NoInfer T)>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : string > : ^^^^^^ @@ -133,7 +133,7 @@ test3({ x: "foo" }, { x: "bar" }); // no error >test3({ x: "foo" }, { x: "bar" }) : void > : ^^^^ >test3 : (a: T, b: NoInfer T)>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: "foo" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -151,7 +151,7 @@ test3({ x: "foo" }, { x: "bar", y: 42 }); // epc error >test3({ x: "foo" }, { x: "bar", y: 42 }) : void > : ^^^^ >test3 : (a: T, b: NoInfer T)>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: "foo" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string diff --git a/tests/baselines/reference/noUncheckedIndexedAccess.types b/tests/baselines/reference/noUncheckedIndexedAccess.types index 35a00a1931b1f..19b3d11871422 100644 --- a/tests/baselines/reference/noUncheckedIndexedAccess.types +++ b/tests/baselines/reference/noUncheckedIndexedAccess.types @@ -406,7 +406,7 @@ const num_ok5: boolean = numMap[NumericEnum2.A]; // Generics function generic1(arg: T): boolean { >generic1 : (arg: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >arg : T @@ -423,7 +423,7 @@ function generic1(arg: T): boolean { } function generic2(arg: T): boolean { >generic2 : (arg: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >arg : T @@ -442,7 +442,7 @@ function generic2(arg: T): boolean { } function generic3(arg: T): boolean { >generic3 : (arg: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : T > : ^ @@ -618,9 +618,9 @@ declare const myRecord2: { a: string; b: string, [key: string]: string }; const fn1 = (key: Key): string => myRecord1[key]; // Should OK >fn1 : (key: Key) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(key: Key): string => myRecord1[key] : (key: Key) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >myRecord1 : { a: string; b: string; } > : ^^^^^ ^^^^^ ^^^ >key : Key @@ -634,9 +634,9 @@ const fn1 = (key: Key): string => myRecord1[ const fn2 = (key: Key): string => myRecord2[key]; // Should OK >fn2 : (key: Key) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(key: Key): string => myRecord2[key] : (key: Key) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >myRecord1 : { a: string; b: string; } > : ^^^^^ ^^^^^ ^^^ >key : Key @@ -650,9 +650,9 @@ const fn2 = (key: Key): string => myRecord2[ const fn3 = (key: Key) => { >fn3 : (key: Key) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(key: Key) => { myRecord2[key] = undefined; // Should error const v: string = myRecord2[key]; // Should error} : (key: Key) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >myRecord2 : { [key: string]: string; a: string; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ >key : Key diff --git a/tests/baselines/reference/noUnusedLocals_typeParameterMergedWithParameter.types b/tests/baselines/reference/noUnusedLocals_typeParameterMergedWithParameter.types index 894b5a923f9bc..52a0aa19484a7 100644 --- a/tests/baselines/reference/noUnusedLocals_typeParameterMergedWithParameter.types +++ b/tests/baselines/reference/noUnusedLocals_typeParameterMergedWithParameter.types @@ -20,13 +20,13 @@ function useParam(T: number) { function useTypeParam(T: T) {} >useTypeParam : (T: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >T : T > : ^ function useBoth(T: T) { >useBoth : (T: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >T : T > : ^ diff --git a/tests/baselines/reference/nodeModuleReexportFromDottedPath.types b/tests/baselines/reference/nodeModuleReexportFromDottedPath.types index c1b6670538ec8..23d65ff5abe87 100644 --- a/tests/baselines/reference/nodeModuleReexportFromDottedPath.types +++ b/tests/baselines/reference/nodeModuleReexportFromDottedPath.types @@ -25,7 +25,7 @@ import { PrismaClient } from "@prisma/client"; declare const enhancePrisma: (client: TPrismaClientCtor) => TPrismaClientCtor & { enhanced: unknown }; >enhancePrisma : (client: TPrismaClientCtor) => TPrismaClientCtor & { enhanced: unknown; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >client : TPrismaClientCtor > : ^^^^^^^^^^^^^^^^^ >enhanced : unknown @@ -37,7 +37,7 @@ const EnhancedPrisma = enhancePrisma(PrismaClient); >enhancePrisma(PrismaClient) : typeof PrismaClient & { enhanced: unknown; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >enhancePrisma : (client: TPrismaClientCtor) => TPrismaClientCtor & { enhanced: unknown; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >PrismaClient : typeof PrismaClient > : ^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/nodeModulesForbidenSyntax(module=node16).types b/tests/baselines/reference/nodeModulesForbidenSyntax(module=node16).types index ff52c1dedd1b3..5647b812f190b 100644 --- a/tests/baselines/reference/nodeModulesForbidenSyntax(module=node16).types +++ b/tests/baselines/reference/nodeModulesForbidenSyntax(module=node16).types @@ -4,9 +4,9 @@ // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -20,15 +20,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder/index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -42,15 +42,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder/index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -64,15 +64,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/index.ts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -86,15 +86,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -108,15 +108,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -130,15 +130,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/another/index.ts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -152,15 +152,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/another/index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -174,15 +174,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/another/index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -196,15 +196,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -218,15 +218,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -240,15 +240,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === index.ts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -262,5 +262,5 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/nodeModulesForbidenSyntax(module=nodenext).types b/tests/baselines/reference/nodeModulesForbidenSyntax(module=nodenext).types index ff52c1dedd1b3..5647b812f190b 100644 --- a/tests/baselines/reference/nodeModulesForbidenSyntax(module=nodenext).types +++ b/tests/baselines/reference/nodeModulesForbidenSyntax(module=nodenext).types @@ -4,9 +4,9 @@ // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -20,15 +20,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder/index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -42,15 +42,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder/index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -64,15 +64,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/index.ts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -86,15 +86,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -108,15 +108,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -130,15 +130,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/another/index.ts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -152,15 +152,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/another/index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -174,15 +174,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === subfolder2/another/index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -196,15 +196,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === index.mts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -218,15 +218,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === index.cts === // cjs format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -240,15 +240,15 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ === index.ts === // esm format file const x = () => (void 0); >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >() => (void 0) : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(void 0) : T > : ^ >(void 0) : any @@ -262,5 +262,5 @@ const x = () => (void 0); export {x}; >x : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types index be2a32088e39e..4445da743e402 100644 --- a/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types +++ b/tests/baselines/reference/nominalSubtypeCheckOfTypeParameter.types @@ -22,7 +22,7 @@ interface Sequence { zip(seq: Sequence): Sequence> >zip : (seq: Sequence) => Sequence> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >seq : Sequence > : ^^^^^^^^^^^ } @@ -36,7 +36,7 @@ interface List extends Sequence { zip(seq: Sequence): List> >zip : (seq: Sequence) => List> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >seq : Sequence > : ^^^^^^^^^^^ } diff --git a/tests/baselines/reference/nonInferrableTypePropagation1.types b/tests/baselines/reference/nonInferrableTypePropagation1.types index cd315d1c62c79..8009119b3a26f 100644 --- a/tests/baselines/reference/nonInferrableTypePropagation1.types +++ b/tests/baselines/reference/nonInferrableTypePropagation1.types @@ -17,7 +17,7 @@ type Thing = { pipe( >pipe : (opA: Op, opB: Op) => Thing -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ opA: Op, >opA : Op @@ -41,7 +41,7 @@ declare const thing: Thing; declare function map(project: (value: T) => R): Op; >map : (project: (value: T) => R) => Op -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >project : (value: T) => R > : ^ ^^ ^^^^^ >value : T @@ -49,7 +49,7 @@ declare function map(project: (value: T) => R): Op; declare function tap(next: (value: T) => void): Op; >tap : (next: (value: T) => void) => Op -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >next : (value: T) => void > : ^ ^^ ^^^^^ >value : T @@ -57,13 +57,13 @@ declare function tap(next: (value: T) => void): Op; declare function box(data: V): Box; >box : (data: V) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : V > : ^ declare function createAndUnbox(factory: () => Thing>): Thing; >createAndUnbox : (factory: () => Thing>) => Thing -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >factory : () => Thing> > : ^^^^^^ @@ -78,7 +78,7 @@ const result1 = createAndUnbox(() => thing.pipe( >createAndUnbox(() => thing.pipe( map((data) => box(data)), tap((v) => log(v)),)) : Thing > : ^^^^^^^^^^^^^ >createAndUnbox : (factory: () => Thing>) => Thing -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => thing.pipe( map((data) => box(data)), tap((v) => log(v)),) : () => Thing> > : ^^^^^^^^^^^^^^^^^^^^^^^^ >thing.pipe( map((data) => box(data)), tap((v) => log(v)),) : Thing> @@ -94,7 +94,7 @@ const result1 = createAndUnbox(() => thing.pipe( >map((data) => box(data)) : Op> > : ^^^^^^^^^^^^^^^^^^^^^^^ >map : (project: (value: T) => R) => Op -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(data) => box(data) : (data: number) => Box > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ >data : number @@ -102,7 +102,7 @@ const result1 = createAndUnbox(() => thing.pipe( >box(data) : Box > : ^^^^^^^^^^^ >box : (data: V) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : number > : ^^^^^^ @@ -110,7 +110,7 @@ const result1 = createAndUnbox(() => thing.pipe( >tap((v) => log(v)) : Op, Box> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >tap : (next: (value: T) => void) => Op -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(v) => log(v) : (v: Box) => void > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >v : Box @@ -130,7 +130,7 @@ const result2 = createAndUnbox(() => thing.pipe( >createAndUnbox(() => thing.pipe( tap((v) => log(v)), map((data) => box(data)),)) : Thing > : ^^^^^^^^^^^^^ >createAndUnbox : (factory: () => Thing>) => Thing -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => thing.pipe( tap((v) => log(v)), map((data) => box(data)),) : () => Thing> > : ^^^^^^^^^^^^^^^^^^^^^^^^ >thing.pipe( tap((v) => log(v)), map((data) => box(data)),) : Thing> @@ -146,7 +146,7 @@ const result2 = createAndUnbox(() => thing.pipe( >tap((v) => log(v)) : Op > : ^^^^^^^^^^^^^^^^^^ >tap : (next: (value: T) => void) => Op -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(v) => log(v) : (v: number) => void > : ^ ^^^^^^^^^^^^^^^^^ >v : number @@ -162,7 +162,7 @@ const result2 = createAndUnbox(() => thing.pipe( >map((data) => box(data)) : Op> > : ^^^^^^^^^^^^^^^^^^^^^^^ >map : (project: (value: T) => R) => Op -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(data) => box(data) : (data: number) => Box > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ >data : number @@ -170,7 +170,7 @@ const result2 = createAndUnbox(() => thing.pipe( >box(data) : Box > : ^^^^^^^^^^^ >box : (data: V) => Box -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : number > : ^^^^^^ diff --git a/tests/baselines/reference/nonInferrableTypePropagation2.types b/tests/baselines/reference/nonInferrableTypePropagation2.types index 20b3225fcedc0..85dd7eb7e32b3 100644 --- a/tests/baselines/reference/nonInferrableTypePropagation2.types +++ b/tests/baselines/reference/nonInferrableTypePropagation2.types @@ -39,7 +39,7 @@ interface Refinement { declare const filter: { >filter : { (refinement: Refinement): (as: ReadonlyArray) => ReadonlyArray; (predicate: Predicate): (bs: ReadonlyArray) => ReadonlyArray; (predicate: Predicate): (as: ReadonlyArray) => ReadonlyArray; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ (refinement: Refinement): (as: ReadonlyArray) => ReadonlyArray >refinement : Refinement @@ -63,7 +63,7 @@ declare const filter: { declare function pipe(a: A, ab: (a: A) => B): B; >pipe : (a: A, ab: (a: A) => B) => B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >ab : (a: A) => B @@ -73,7 +73,7 @@ declare function pipe(a: A, ab: (a: A) => B): B; declare function exists(predicate: Predicate): (ma: Either) => boolean; >exists : (predicate: Predicate) => (ma: Either) => boolean -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >predicate : Predicate > : ^^^^^^^^^^^^ >ma : Either @@ -89,17 +89,17 @@ const x = pipe(es, filter(exists((n) => n > 0))) >pipe(es, filter(exists((n) => n > 0))) : readonly Either[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >pipe : (a: A, ab: (a: A) => B) => B -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >es : Either[] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >filter(exists((n) => n > 0)) : (as: readonly Either[]) => ReadonlyArray> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ >filter : { (refinement: Refinement): (as: ReadonlyArray) => ReadonlyArray; (predicate: Predicate): (bs: ReadonlyArray) => ReadonlyArray; (predicate: Predicate): (as: ReadonlyArray) => ReadonlyArray; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >exists((n) => n > 0) : (ma: Either) => boolean > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >exists : (predicate: Predicate) => (ma: Either) => boolean -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(n) => n > 0 : (n: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >n : number diff --git a/tests/baselines/reference/nonInferrableTypePropagation3.types b/tests/baselines/reference/nonInferrableTypePropagation3.types index 0e7bfa98df92c..891dbc86413e7 100644 --- a/tests/baselines/reference/nonInferrableTypePropagation3.types +++ b/tests/baselines/reference/nonInferrableTypePropagation3.types @@ -13,7 +13,7 @@ declare type Callback = (...args: Args) => (data: Ou declare function factory(): (callback: Callback) => (...args: Args) => R; >factory : () => (callback: Callback) => (...args: Args) => R -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >callback : Callback > : ^^^^^^^^^^^^^^^^^^^^^^ >args : Args @@ -25,7 +25,7 @@ const make = factory<{id: string, age: number}[]>(); >factory<{id: string, age: number}[]>() : (callback: Callback) => (...args: Args) => R > : ^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^ >factory : () => (callback: Callback) => (...args: Args) => R -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ >id : string > : ^^^^^^ >age : number @@ -33,9 +33,9 @@ const make = factory<{id: string, age: number}[]>(); const usersOverAge = make((age: number) => data => { >usersOverAge : (age: number) => { id: string; age: number; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ >make((age: number) => data => { return data.filter(user => user.age >= age);}) : (age: number) => { id: string; age: number; }[] -> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ >make : (callback: Callback) => (...args: Args) => R > : ^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^ ^ >(age: number) => data => { return data.filter(user => user.age >= age);} : (age: number) => (data: { id: string; age: number; }[]) => { id: string; age: number; }[] @@ -51,11 +51,11 @@ const usersOverAge = make((age: number) => data => { >data.filter(user => user.age >= age) : { id: string; age: number; }[] > : ^^^^^^ ^^^^^^^ ^^^^^ >data.filter : { (predicate: (value: { id: string; age: number; }, index: number, array: { id: string; age: number; }[]) => value is S, thisArg?: any): S[]; (predicate: (value: { id: string; age: number; }, index: number, array: { id: string; age: number; }[]) => unknown, thisArg?: any): { id: string; age: number; }[]; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^ ^ ^^^^^ ^ ^^^ >data : { id: string; age: number; }[] > : ^^^^^^ ^^^^^^^ ^^^^^ >filter : { (predicate: (value: { id: string; age: number; }, index: number, array: { id: string; age: number; }[]) => value is S, thisArg?: any): S[]; (predicate: (value: { id: string; age: number; }, index: number, array: { id: string; age: number; }[]) => unknown, thisArg?: any): { id: string; age: number; }[]; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^ ^ ^^^^^ ^ ^^^ >user => user.age >= age : (user: { id: string; age: number; }) => boolean > : ^ ^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ >user : { id: string; age: number; } diff --git a/tests/baselines/reference/nonNullMappedType.types b/tests/baselines/reference/nonNullMappedType.types index 1006e65994952..14aa8fe4782ba 100644 --- a/tests/baselines/reference/nonNullMappedType.types +++ b/tests/baselines/reference/nonNullMappedType.types @@ -3,7 +3,7 @@ === nonNullMappedType.ts === function f(p0: { [key in A]: {} | undefined }, p1: A) { >f : (p0: { [key in A]: {} | undefined; }, p1: A) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >p0 : { [key in A]: {} | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p1 : A diff --git a/tests/baselines/reference/nonNullParameterExtendingStringAssignableToString.types b/tests/baselines/reference/nonNullParameterExtendingStringAssignableToString.types index 4e0fcb3e21511..73b887661335d 100644 --- a/tests/baselines/reference/nonNullParameterExtendingStringAssignableToString.types +++ b/tests/baselines/reference/nonNullParameterExtendingStringAssignableToString.types @@ -9,7 +9,7 @@ declare function foo(p: string): void; function fn(one: T, two: U) { >fn : (one: T, two: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >one : T > : ^ >two : U diff --git a/tests/baselines/reference/nonNullableReduction.types b/tests/baselines/reference/nonNullableReduction.types index 7828b314cdb17..b134c8ab7250b 100644 --- a/tests/baselines/reference/nonNullableReduction.types +++ b/tests/baselines/reference/nonNullableReduction.types @@ -19,7 +19,7 @@ type Transform2 = string extends T ? ((value: string) => T) | undefined : (va function test(f1: Transform1, f2: Transform2) { >test : (f1: Transform1, f2: Transform2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >f1 : Transform1 > : ^^^^^^^^^^^^^ >f2 : Transform2 @@ -44,7 +44,7 @@ function test(f1: Transform1, f2: Transform2) { function f1(x: T | (string extends T ? null | undefined : never)) { >f1 : (x: T | (string extends T ? null | undefined : never)) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T | (string extends T ? null | undefined : never) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -59,7 +59,7 @@ function f1(x: T | (string extends T ? null | undefined : never)) { function f2(x: T | U) { >f2 : (x: T | U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T | U > : ^^^^^ diff --git a/tests/baselines/reference/nonNullableReductionNonStrict.types b/tests/baselines/reference/nonNullableReductionNonStrict.types index a46bcbc3fb77f..bb1cb5f60ca26 100644 --- a/tests/baselines/reference/nonNullableReductionNonStrict.types +++ b/tests/baselines/reference/nonNullableReductionNonStrict.types @@ -19,7 +19,7 @@ type Transform2 = string extends T ? ((value: string) => T) | undefined : (va function test(f1: Transform1, f2: Transform2) { >test : (f1: Transform1, f2: Transform2) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >f1 : Transform1 > : ^^^^^^^^^^^^^ >f2 : Transform2 @@ -44,7 +44,7 @@ function test(f1: Transform1, f2: Transform2) { function f1(x: T | (string extends T ? null | undefined : never)) { >f1 : (x: T | (string extends T ? null | undefined : never)) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T | (string extends T ? null : never) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -59,7 +59,7 @@ function f1(x: T | (string extends T ? null | undefined : never)) { function f2(x: T | U) { >f2 : (x: T | U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T | U > : ^^^^^ diff --git a/tests/baselines/reference/nonNullableTypes1.types b/tests/baselines/reference/nonNullableTypes1.types index c52464c3014f8..36b5d6540e072 100644 --- a/tests/baselines/reference/nonNullableTypes1.types +++ b/tests/baselines/reference/nonNullableTypes1.types @@ -3,7 +3,7 @@ === nonNullableTypes1.ts === function f1(x: T) { >f1 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -31,7 +31,7 @@ function error(): never { function f2(x: T) { // NonNullable >f2 : (x: T) => NonNullable -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -63,7 +63,7 @@ function f3(x: unknown) { function f4(obj: T) { >f4 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : string > : ^^^^^^ >obj : T diff --git a/tests/baselines/reference/nonPrimitiveAndTypeVariables.types b/tests/baselines/reference/nonPrimitiveAndTypeVariables.types index 37c2230ca591d..4e79b7ae330dd 100644 --- a/tests/baselines/reference/nonPrimitiveAndTypeVariables.types +++ b/tests/baselines/reference/nonPrimitiveAndTypeVariables.types @@ -37,7 +37,7 @@ let b: B<{ a: 0 | 1 }, 0> = { a: 0 }; function foo(x: T) { >foo : (x: T) => void -> : ^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/nonPrimitiveConstraintOfIndexAccessType.types b/tests/baselines/reference/nonPrimitiveConstraintOfIndexAccessType.types index 66989bb5b1871..84508d86b1364 100644 --- a/tests/baselines/reference/nonPrimitiveConstraintOfIndexAccessType.types +++ b/tests/baselines/reference/nonPrimitiveConstraintOfIndexAccessType.types @@ -4,7 +4,7 @@ // test for #15371 function f(s: string, tp: T[P]): void { >f : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -20,7 +20,7 @@ function f(s: string, tp: T[P]): void { } function g(s: string, tp: T[P]): void { >g : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -36,7 +36,7 @@ function g(s: string, tp: T[P]): void { } function h(s: string, tp: T[P]): void { >h : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -52,7 +52,7 @@ function h(s: string, tp: T[P]): void { } function i(s: string, tp: T[P]): void { >i : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -68,7 +68,7 @@ function i(s: string, tp: T[P]): void { } function j(s: string, tp: T[P]): void { >j : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -84,7 +84,7 @@ function j(s: string, tp: T[P]): void { } function k(s: string, tp: T[P]): void { >k : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -100,7 +100,7 @@ function k(s: string, tp: T[P]): void { } function o(s: string, tp: T[P]): void { >o : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -116,7 +116,7 @@ function o(s: string, tp: T[P]): void { } function l(s: string, tp: T[P]): void { >l : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >tp : T[P] @@ -132,7 +132,7 @@ function l(s: string, tp: T[P]): void { } function m(s: string, tp: T[P]): void { >m : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : number > : ^^^^^^ >s : string @@ -150,7 +150,7 @@ function m(s: string, tp: T[P]): voi } function n(s: string, tp: T[P]): void { >n : (s: string, tp: T[P]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >s : string > : ^^^^^^ >s : string diff --git a/tests/baselines/reference/nonPrimitiveInGeneric.types b/tests/baselines/reference/nonPrimitiveInGeneric.types index b35a8d52d1802..2579bcac49e0d 100644 --- a/tests/baselines/reference/nonPrimitiveInGeneric.types +++ b/tests/baselines/reference/nonPrimitiveInGeneric.types @@ -3,7 +3,7 @@ === nonPrimitiveInGeneric.ts === function generic(t: T) { >generic : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -29,7 +29,7 @@ generic({}); >generic({}) : void > : ^^^^ >generic : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ @@ -37,7 +37,7 @@ generic(a); >generic(a) : void > : ^^^^ >generic : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : {} > : ^^ @@ -45,7 +45,7 @@ generic(123); // expect error >generic(123) : void > : ^^^^ >generic : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >123 : 123 > : ^^^ @@ -53,13 +53,13 @@ generic(b); // expect error >generic(b) : void > : ^^^^ >generic : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >b : string > : ^^^^^^ function bound(t: T) { >bound : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -74,7 +74,7 @@ bound({}); >bound({}) : void > : ^^^^ >bound : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ @@ -82,7 +82,7 @@ bound(a); >bound(a) : void > : ^^^^ >bound : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : {} > : ^^ @@ -90,7 +90,7 @@ bound(123); // expect error >bound(123) : void > : ^^^^ >bound : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >123 : 123 > : ^^^ @@ -98,7 +98,7 @@ bound(b); // expect error >bound(b) : void > : ^^^^ >bound : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : string > : ^^^^^^ @@ -132,7 +132,7 @@ bound2(); // expect error function bound3(t: T) { >bound3 : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ diff --git a/tests/baselines/reference/nonnullAssertionPropegatesContextualType.types b/tests/baselines/reference/nonnullAssertionPropegatesContextualType.types index 8424e057fb0ad..2b0100d6ef87d 100644 --- a/tests/baselines/reference/nonnullAssertionPropegatesContextualType.types +++ b/tests/baselines/reference/nonnullAssertionPropegatesContextualType.types @@ -12,11 +12,11 @@ let rect2: SVGRectElement = document.querySelector('.svg-rectangle')!; // Error: >document.querySelector('.svg-rectangle') : SVGRectElement | null > : ^^^^^^^^^^^^^^^^^^^^^ >document.querySelector : { (selectors: K): HTMLElementTagNameMap[K] | null; (selectors: K): SVGElementTagNameMap[K] | null; (selectors: K): MathMLElementTagNameMap[K] | null; (selectors: K): HTMLElementDeprecatedTagNameMap[K] | null; (selectors: string): E | null; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^ >document : Document > : ^^^^^^^^ >querySelector : { (selectors: K): HTMLElementTagNameMap[K] | null; (selectors: K): SVGElementTagNameMap[K] | null; (selectors: K): MathMLElementTagNameMap[K] | null; (selectors: K): HTMLElementDeprecatedTagNameMap[K] | null; (selectors: string): E | null; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^ ^^^ >'.svg-rectangle' : ".svg-rectangle" > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/normalizedIntersectionTooComplex.types b/tests/baselines/reference/normalizedIntersectionTooComplex.types index 75f6433313e60..2e1ac4d0f8e8b 100644 --- a/tests/baselines/reference/normalizedIntersectionTooComplex.types +++ b/tests/baselines/reference/normalizedIntersectionTooComplex.types @@ -213,7 +213,7 @@ interface Big { } declare function getCtor(comp: T): CtorOf >getCtor : (comp: T) => CtorOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >comp : T > : ^ @@ -227,7 +227,7 @@ const ctor = getCtor(all); >getCtor(all) : CtorOf<{ common?: string; "0"?: number; ref?: Obj | Func; } | { common?: string; "1"?: number; ref?: Obj | Func; } | { common?: string; "2"?: number; ref?: Obj | Func; } | { common?: string; "3"?: number; ref?: Obj | Func; } | { common?: string; "4"?: number; ref?: Obj | Func; } | { common?: string; "5"?: number; ref?: Obj | Func; } | { common?: string; "6"?: number; ref?: Obj | Func; } | { common?: string; "7"?: number; ref?: Obj | Func; } | { common?: string; "8"?: number; ref?: Obj | Func; } | { common?: string; "9"?: number; ref?: Obj | Func; } | { common?: string; "10"?: number; ref?: Obj | Func; } | { common?: string; "11"?: number; ref?: Obj | Func; } | { common?: string; "12"?: number; ref?: Obj | Func; } | { common?: string; "13"?: number; ref?: Obj | Func; } | { common?: string; "14"?: number; ref?: Obj | Func; } | { common?: string; "15"?: number; ref?: Obj | Func; } | { common?: string; "16"?: number; ref?: Obj | Func; } | { common?: string; "17"?: number; ref?: Obj | Func; }> > : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^ >getCtor : (comp: T) => CtorOf -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >all : keyof Big > : ^^^^^^^^^ diff --git a/tests/baselines/reference/nullAssignableToEveryType.types b/tests/baselines/reference/nullAssignableToEveryType.types index 432b1e9790ab8..e62f203eb9ea0 100644 --- a/tests/baselines/reference/nullAssignableToEveryType.types +++ b/tests/baselines/reference/nullAssignableToEveryType.types @@ -107,7 +107,7 @@ var n: { foo: string } = null; var o: (x: T) => T = null; >o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -121,7 +121,7 @@ var q: String = null; function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types index c345292856651..7abec8d7289f8 100644 --- a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types +++ b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.types @@ -190,13 +190,13 @@ var r7 = true ? null : () => { }; var r8 = true ? (x: T) => { return x } : null; >r8 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >true ? (x: T) => { return x } : null : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >true : true > : ^^^^ >(x: T) => { return x } : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -204,13 +204,13 @@ var r8 = true ? (x: T) => { return x } : null; var r8b = true ? null : (x: T) => { return x }; // type parameters not identical across declarations >r8b : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >true ? null : (x: T) => { return x } : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >true : true > : ^^^^ >(x: T) => { return x } : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -442,7 +442,7 @@ var r16 = true ? null : ac; function f17(x: T) { >f17 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -469,7 +469,7 @@ function f17(x: T) { function f18(x: U) { >f18 : (x: U) => void -> : ^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >x : U > : ^ diff --git a/tests/baselines/reference/numberVsBigIntOperations.types b/tests/baselines/reference/numberVsBigIntOperations.types index 1d54ea840370a..3fdf1581863f7 100644 --- a/tests/baselines/reference/numberVsBigIntOperations.types +++ b/tests/baselines/reference/numberVsBigIntOperations.types @@ -1306,7 +1306,7 @@ type NumberOrBigint = number | bigint; function getKey(key: S) { >getKey : (key: S) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : S > : ^ diff --git a/tests/baselines/reference/numericStringLiteralTypes.types b/tests/baselines/reference/numericStringLiteralTypes.types index 02a2368a47802..320ef35d4a043 100644 --- a/tests/baselines/reference/numericStringLiteralTypes.types +++ b/tests/baselines/reference/numericStringLiteralTypes.types @@ -90,13 +90,13 @@ type UnwrapContainers[]> = { [K in keyof T]: T[K][' declare function createContainer(value: T): Container; >createContainer : (value: T) => Container -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ declare function f[]>(containers: [...T], callback: (...values: UnwrapContainers) => void): void; >f : []>(containers: [...T], callback: (...values: UnwrapContainers) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >containers : [...T] > : ^^^^^^ >callback : (...values: UnwrapContainers) => void @@ -110,7 +110,7 @@ const container1 = createContainer('hi') >createContainer('hi') : Container > : ^^^^^^^^^^^^^^^^^ >createContainer : (value: T) => Container -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'hi' : "hi" > : ^^^^ @@ -120,7 +120,7 @@ const container2 = createContainer(2) >createContainer(2) : Container > : ^^^^^^^^^^^^^^^^^ >createContainer : (value: T) => Container -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >2 : 2 > : ^ @@ -128,7 +128,7 @@ f([container1, container2], (value1, value2) => { >f([container1, container2], (value1, value2) => { value1; // string value2; // number}) : void > : ^^^^ >f : []>(containers: [...T], callback: (...values: UnwrapContainers) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >[container1, container2] : [Container, Container] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >container1 : Container diff --git a/tests/baselines/reference/objectAssignLikeNonUnionResult.types b/tests/baselines/reference/objectAssignLikeNonUnionResult.types index 5ff307a4874fd..13fbdada55153 100644 --- a/tests/baselines/reference/objectAssignLikeNonUnionResult.types +++ b/tests/baselines/reference/objectAssignLikeNonUnionResult.types @@ -18,7 +18,7 @@ const defaultValue: Interface = { field: 1 }; declare function assign(target: T, source: U): T & U; >assign : (target: T, source: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >target : T > : ^ >source : U @@ -32,7 +32,7 @@ const data1 = assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}); >assign(defaultValue, Date.now() > 3 ? { field: 2 } : {}) : Interface & { field: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >assign : (target: T, source: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >defaultValue : Interface > : ^^^^^^^^^ >Date.now() > 3 ? { field: 2 } : {} : { field: number; } | {} diff --git a/tests/baselines/reference/objectBindingPatternContextuallyTypesArgument.types b/tests/baselines/reference/objectBindingPatternContextuallyTypesArgument.types index 53e20d999cb4c..a10a3bfc718aa 100644 --- a/tests/baselines/reference/objectBindingPatternContextuallyTypesArgument.types +++ b/tests/baselines/reference/objectBindingPatternContextuallyTypesArgument.types @@ -3,7 +3,7 @@ === objectBindingPatternContextuallyTypesArgument.ts === declare function id(x: T): T; >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -23,7 +23,7 @@ const { f = (x: string) => x.length } = id({ f: x => x.charAt }); >id({ f: x => x.charAt }) : { f: (x: string) => (pos: number) => string; } > : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ f: x => x.charAt } : { f: (x: string) => (pos: number) => string; } > : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >f : (x: string) => (pos: number) => string diff --git a/tests/baselines/reference/objectFreeze.types b/tests/baselines/reference/objectFreeze.types index 1f9e672b86769..9fac3ea27920a 100644 --- a/tests/baselines/reference/objectFreeze.types +++ b/tests/baselines/reference/objectFreeze.types @@ -7,11 +7,11 @@ const f = Object.freeze(function foo(a: number, b: string) { return false; }); >Object.freeze(function foo(a: number, b: string) { return false; }) : (a: number, b: string) => false > : ^ ^^ ^^ ^^ ^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >function foo(a: number, b: string) { return false; } : (a: number, b: string) => false > : ^ ^^ ^^ ^^ ^^^^^^^^^^ >foo : (a: number, b: string) => false @@ -49,11 +49,11 @@ const c = Object.freeze(C); >Object.freeze(C) : typeof C > : ^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ @@ -71,11 +71,11 @@ const a = Object.freeze([1, 2, 3]); >Object.freeze([1, 2, 3]) : readonly number[] > : ^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -113,11 +113,11 @@ const o = Object.freeze({ a: 1, b: "string", c: true }); >Object.freeze({ a: 1, b: "string", c: true }) : Readonly<{ a: 1; b: "string"; c: true; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ a: 1, b: "string", c: true } : { a: 1; b: "string"; c: true; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : 1 diff --git a/tests/baselines/reference/objectFreezeLiteralsDontWiden.types b/tests/baselines/reference/objectFreezeLiteralsDontWiden.types index 389588efaad97..88f0209413766 100644 --- a/tests/baselines/reference/objectFreezeLiteralsDontWiden.types +++ b/tests/baselines/reference/objectFreezeLiteralsDontWiden.types @@ -7,11 +7,11 @@ const PUPPETEER_REVISIONS = Object.freeze({ >Object.freeze({ chromium: '1011831', firefox: 'latest',}) : Readonly<{ chromium: "1011831"; firefox: "latest"; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ chromium: '1011831', firefox: 'latest',} : { chromium: "1011831"; firefox: "latest"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/objectFromEntries.types b/tests/baselines/reference/objectFromEntries.types index 8baa6681b60f1..4f2b17f8099e8 100644 --- a/tests/baselines/reference/objectFromEntries.types +++ b/tests/baselines/reference/objectFromEntries.types @@ -7,11 +7,11 @@ const o = Object.fromEntries([['a', 1], ['b', 2], ['c', 3]]); >Object.fromEntries([['a', 1], ['b', 2], ['c', 3]]) : { [k: string]: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Object.fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >[['a', 1], ['b', 2], ['c', 3]] : [string, number][] > : ^^^^^^^^^^^^^^^^^^ >['a', 1] : [string, number] @@ -39,11 +39,11 @@ const o2 = Object.fromEntries(new URLSearchParams()); >Object.fromEntries(new URLSearchParams()) : { [k: string]: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Object.fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >new URLSearchParams() : URLSearchParams > : ^^^^^^^^^^^^^^^ >URLSearchParams : { new (init?: string[][] | Record | string | URLSearchParams): URLSearchParams; prototype: URLSearchParams; } @@ -55,11 +55,11 @@ const o3 = Object.fromEntries(new Map([[Symbol("key"), "value"]])); >Object.fromEntries(new Map([[Symbol("key"), "value"]])) : { [k: string]: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Object.fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >new Map([[Symbol("key"), "value"]]) : Map > : ^^^^^^^^^^^^^^^^^^^ >Map : MapConstructor @@ -83,11 +83,11 @@ const frozenArray = Object.freeze([['a', 1], ['b', 2], ['c', 3]]); >Object.freeze([['a', 1], ['b', 2], ['c', 3]]) : readonly (string | number)[][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >[['a', 1], ['b', 2], ['c', 3]] : (string | number)[][] > : ^^^^^^^^^^^^^^^^^^^^^ >['a', 1] : (string | number)[] @@ -113,11 +113,11 @@ const o4 = Object.fromEntries(frozenArray); >o4 : any >Object.fromEntries(frozenArray) : any >Object.fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >frozenArray : readonly (string | number)[][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -127,11 +127,11 @@ const frozenArray2: readonly [string, number][] = Object.freeze([['a', 1], ['b', >Object.freeze([['a', 1], ['b', 2], ['c', 3]]) : readonly [string, number][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >[['a', 1], ['b', 2], ['c', 3]] : [string, number][] > : ^^^^^^^^^^^^^^^^^^ >['a', 1] : [string, number] @@ -159,11 +159,11 @@ const o5 = Object.fromEntries(frozenArray2); >Object.fromEntries(frozenArray2) : { [k: string]: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Object.fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >fromEntries : { (entries: Iterable): { [k: string]: T; }; (entries: Iterable): any; } -> : ^^^ ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >frozenArray2 : readonly [string, number][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/objectGroupBy.types b/tests/baselines/reference/objectGroupBy.types index ec9a37f131b20..2e304961a08f2 100644 --- a/tests/baselines/reference/objectGroupBy.types +++ b/tests/baselines/reference/objectGroupBy.types @@ -7,11 +7,11 @@ const basic = Object.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large'); >Object.groupBy([0, 2, 8], x => x < 5 ? 'small' : 'large') : Partial> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >[0, 2, 8] : number[] > : ^^^^^^^^ >0 : 0 @@ -43,11 +43,11 @@ const chars = Object.groupBy('a string', c => c); >Object.groupBy('a string', c => c) : Partial> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >'a string' : "a string" > : ^^^^^^^^^^ >c => c : (c: string) => string @@ -79,11 +79,11 @@ const byRole = Object.groupBy(employees, x => x.role); >Object.groupBy(employees, x => x.role) : Partial> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >employees : Set > : ^^^^^^^^^^^^^ >x => x.role : (x: Employee) => "ic" | "manager" @@ -103,11 +103,11 @@ const byNonKey = Object.groupBy(employees, x => x); >Object.groupBy(employees, x => x) : Partial> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >groupBy : (items: Iterable, keySelector: (item: T, index: number) => K) => Partial> -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >employees : Set > : ^^^^^^^^^^^^^ >x => x : (x: Employee) => Employee diff --git a/tests/baselines/reference/objectInstantiationFromUnionSpread.types b/tests/baselines/reference/objectInstantiationFromUnionSpread.types index 6afcfcf098d3b..27057e8890190 100644 --- a/tests/baselines/reference/objectInstantiationFromUnionSpread.types +++ b/tests/baselines/reference/objectInstantiationFromUnionSpread.types @@ -33,7 +33,7 @@ function f1(a: Item[]) { >a.map(item => ({ ...item })).filter(value => {}) : ({ isSuccess: true; } | { isSuccess: false; })[] > : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ >a.map(item => ({ ...item })).filter : { (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => value is S, thisArg?: any): S[]; (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => unknown, thisArg?: any): ({ isSuccess: true; } | { isSuccess: false; })[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^^ ^^^ >a.map(item => ({ ...item })) : ({ isSuccess: true; } | { isSuccess: false; })[] > : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ >a.map : (callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any) => U[] @@ -53,7 +53,7 @@ function f1(a: Item[]) { >item : Item > : ^^^^ >filter : { (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => value is S, thisArg?: any): S[]; (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => unknown, thisArg?: any): ({ isSuccess: true; } | { isSuccess: false; })[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^^ ^^^ >value => {} : (value: { isSuccess: true; } | { isSuccess: false; }) => void > : ^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >value : { isSuccess: true; } | { isSuccess: false; } @@ -70,7 +70,7 @@ function f2(a: Item[]) { >a.map(item => ({ ...item })).filter(value => {}) : ({ isSuccess: true; } | { isSuccess: false; })[] > : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ >a.map(item => ({ ...item })).filter : { (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => value is S, thisArg?: any): S[]; (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => unknown, thisArg?: any): ({ isSuccess: true; } | { isSuccess: false; })[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^^ ^^^ >a.map(item => ({ ...item })) : ({ isSuccess: true; } | { isSuccess: false; })[] > : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ >a.map : (callbackfn: (value: Item, index: number, array: Item[]) => U, thisArg?: any) => U[] @@ -90,7 +90,7 @@ function f2(a: Item[]) { >item : Item > : ^^^^ >filter : { (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => value is S, thisArg?: any): S[]; (predicate: (value: { isSuccess: true; } | { isSuccess: false; }, index: number, array: ({ isSuccess: true; } | { isSuccess: false; })[]) => unknown, thisArg?: any): ({ isSuccess: true; } | { isSuccess: false; })[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^^ ^^^ >value => {} : (value: { isSuccess: true; } | { isSuccess: false; }) => void > : ^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >value : { isSuccess: true; } | { isSuccess: false; } diff --git a/tests/baselines/reference/objectLitGetterSetter.types b/tests/baselines/reference/objectLitGetterSetter.types index 180cef7e06e9b..e12316ea31fef 100644 --- a/tests/baselines/reference/objectLitGetterSetter.types +++ b/tests/baselines/reference/objectLitGetterSetter.types @@ -11,11 +11,11 @@ >Object.defineProperty(obj, "accProperty", ({ get: function () { eval("public = 1;"); return 11; }, set: function (v) { } })) : {} > : ^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : {} > : ^^ >"accProperty" : "accProperty" diff --git a/tests/baselines/reference/objectLiteralArraySpecialization.types b/tests/baselines/reference/objectLiteralArraySpecialization.types index f9d6305eaa756..4a97411c88652 100644 --- a/tests/baselines/reference/objectLiteralArraySpecialization.types +++ b/tests/baselines/reference/objectLiteralArraySpecialization.types @@ -3,7 +3,7 @@ === objectLiteralArraySpecialization.ts === declare function create(initialValues?: T[]): MyArrayWrapper; >create : (initialValues?: T[]) => MyArrayWrapper -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >initialValues : T[] > : ^^^ @@ -30,7 +30,7 @@ var thing = create([ { name: "bob", id: 24 }, { name: "doug", id: 32 } ]); // sh >create([ { name: "bob", id: 24 }, { name: "doug", id: 32 } ]) : MyArrayWrapper<{ name: string; id: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >create : (initialValues?: T[]) => MyArrayWrapper -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >[ { name: "bob", id: 24 }, { name: "doug", id: 32 } ] : { name: string; id: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ name: "bob", id: 24 } : { name: string; id: number; } diff --git a/tests/baselines/reference/objectLiteralContextualTyping.types b/tests/baselines/reference/objectLiteralContextualTyping.types index 510d639e4013e..53a3221afcc23 100644 --- a/tests/baselines/reference/objectLiteralContextualTyping.types +++ b/tests/baselines/reference/objectLiteralContextualTyping.types @@ -110,7 +110,7 @@ var w: number; declare function bar(param: { x?: T }): T; >bar : (param: { x?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >param : { x?: T; } > : ^^^^^^ ^^^ >x : T @@ -122,7 +122,7 @@ var b = bar({}); >bar({}) : unknown > : ^^^^^^^ >bar : (param: { x?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{} : {} > : ^^ diff --git a/tests/baselines/reference/objectLiteralNormalization.types b/tests/baselines/reference/objectLiteralNormalization.types index 5905535a8a209..a0faf5b741daa 100644 --- a/tests/baselines/reference/objectLiteralNormalization.types +++ b/tests/baselines/reference/objectLiteralNormalization.types @@ -464,7 +464,7 @@ d1.pos.b; declare function f(...items: T[]): T; >f : (...items: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >items : T[] > : ^^^ @@ -487,7 +487,7 @@ let e1 = f({ a: 1, b: 2 }, { a: "abc" }, {}); >f({ a: 1, b: 2 }, { a: "abc" }, {}) : { a: number; b: number; } | { a: string; b?: undefined; } | { a?: undefined; b?: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (...items: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ a: 1, b: 2 } : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -513,7 +513,7 @@ let e2 = f({}, { a: "abc" }, { a: 1, b: 2 }); >f({}, { a: "abc" }, { a: 1, b: 2 }) : { a?: undefined; b?: undefined; } | { a: string; b?: undefined; } | { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (...items: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{} : {} > : ^^ >{ a: "abc" } : { a: string; } @@ -539,7 +539,7 @@ let e3 = f(data, { a: 2 }); >f(data, { a: 2 }) : { a: 1; b: "abc"; c: true; } > : ^^^^^ ^^^^^ ^^^^^ ^^^ >f : (...items: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >data : { a: 1; b: "abc"; c: true; } > : ^^^^^ ^^^^^ ^^^^^ ^^^ >{ a: 2 } : { a: 2; } @@ -555,7 +555,7 @@ let e4 = f({ a: 2 }, data); >f({ a: 2 }, data) : { a: 1; b: "abc"; c: true; } > : ^^^^^ ^^^^^ ^^^^^ ^^^ >f : (...items: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ a: 2 } : { a: 2; } > : ^^^^^^^^^ >a : 2 diff --git a/tests/baselines/reference/objectLiteralParameterResolution.types b/tests/baselines/reference/objectLiteralParameterResolution.types index 1c4d9a4ed4333..866bd815d8445 100644 --- a/tests/baselines/reference/objectLiteralParameterResolution.types +++ b/tests/baselines/reference/objectLiteralParameterResolution.types @@ -4,7 +4,7 @@ interface Foo{ extend(target: T, ...objs: any[]): T; >extend : { (target: T, ...objs: any[]): T; (deep: boolean, target: T_1, ...objs: any[]): T_1; } -> : ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >target : T > : ^ >objs : any[] @@ -12,7 +12,7 @@ interface Foo{ extend(deep: boolean, target: T, ...objs: any[]): T; >extend : { (target: T_1, ...objs: any[]): T_1; (deep: boolean, target: T, ...objs: any[]): T; } -> : ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >deep : boolean > : ^^^^^^^ >target : T @@ -30,11 +30,11 @@ var s = $.extend({ >$.extend({ type: "GET" , data: "data" , success: wrapSuccessCallback(requestContext, callback) , error: wrapErrorCallback(requestContext, errorCallback) , dataType: "json" , converters: { "text json": "" }, traditional: true , timeout: 12, }, "") : { type: string; data: string; success: any; error: any; dataType: string; converters: { "text json": string; }; traditional: boolean; timeout: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >$.extend : { (target: T, ...objs: any[]): T; (deep: boolean, target: T, ...objs: any[]): T; } -> : ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >$ : Foo > : ^^^ >extend : { (target: T, ...objs: any[]): T; (deep: boolean, target: T, ...objs: any[]): T; } -> : ^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{ type: "GET" , data: "data" , success: wrapSuccessCallback(requestContext, callback) , error: wrapErrorCallback(requestContext, errorCallback) , dataType: "json" , converters: { "text json": "" }, traditional: true , timeout: 12, } : { type: string; data: string; success: any; error: any; dataType: string; converters: { "text json": string; }; traditional: true; timeout: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/objectRestBindingContextualInference.types b/tests/baselines/reference/objectRestBindingContextualInference.types index f6fced90ceeed..ed4657b7f6a2d 100644 --- a/tests/baselines/reference/objectRestBindingContextualInference.types +++ b/tests/baselines/reference/objectRestBindingContextualInference.types @@ -41,7 +41,7 @@ interface TestInterface { declare function setupImages, K extends string>( >setupImages : , K extends string>(item: R, keys: K[]) => SetupImages -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ item: R, >item : R @@ -65,7 +65,7 @@ const { prepare, ...rest } = setupImages(test, ["image"]); >setupImages(test, ["image"]) : SetupImages<"image"> > : ^^^^^^^^^^^^^^^^^^^^ >setupImages : , K extends string>(item: R, keys: K[]) => SetupImages -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >test : TestInterface > : ^^^^^^^^^^^^^ >["image"] : "image"[] diff --git a/tests/baselines/reference/objectRestNegative.types b/tests/baselines/reference/objectRestNegative.types index b57c5777e38a7..ed45ed102b8ea 100644 --- a/tests/baselines/reference/objectRestNegative.types +++ b/tests/baselines/reference/objectRestNegative.types @@ -62,7 +62,7 @@ function stillMustBeLast({ ...mustBeLast, a }: { a: number, b: string }): void { } function generic(t: T) { >generic : (t: T) => Omit -> : ^ ^^^^^^^^^ ^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >x : any > : ^^^ >y : any diff --git a/tests/baselines/reference/objectSpread.types b/tests/baselines/reference/objectSpread.types index 92ca81fce93ad..7b6449806693e 100644 --- a/tests/baselines/reference/objectSpread.types +++ b/tests/baselines/reference/objectSpread.types @@ -807,7 +807,7 @@ let spreadNonPrimitive = { ...{}}; function f(t: T, u: U) { >f : (t: T, u: U) => T & U & { id: string; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >t : T > : ^ >u : U @@ -844,7 +844,7 @@ let exclusive: { id: string, a: number, b: string, c: string, d: boolean } = >f({ a: 1, b: 'yes' }, { c: 'no', d: false }) : { a: number; b: string; } & { c: string; d: boolean; } & { id: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (t: T, u: U) => T & U & { id: string; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1, b: 'yes' } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -880,7 +880,7 @@ let overlap: { id: string, a: number, b: string } = >f({ a: 1 }, { a: 2, b: 'extra' }) : { a: number; } & { a: number; b: string; } & { id: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (t: T, u: U) => T & U & { id: string; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1 } : { a: number; } > : ^^^^^^^^^^^^^^ >a : number @@ -910,7 +910,7 @@ let overlapConflict: { id:string, a: string } = >f({ a: 1 }, { a: 'mismatch' }) : { a: number; } & { a: string; } & { id: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f : (t: T, u: U) => T & U & { id: string; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1 } : { a: number; } > : ^^^^^^^^^^^^^^ >a : number @@ -940,7 +940,7 @@ let overwriteId: { id: string, a: number, c: number, d: string } = >f({ a: 1, id: true }, { c: 1, d: 'no' }) : never > : ^^^^^ >f : (t: T, u: U) => T & U & { id: string; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1, id: true } : { a: number; id: true; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -964,7 +964,7 @@ let overwriteId: { id: string, a: number, c: number, d: string } = function genericSpread(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) { >genericSpread : (t: T, u: U, v: T | U, w: T | { s: string; }, obj: { x: number; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.types b/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.types index 5406aaf52e443..6647134760c7a 100644 --- a/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.types +++ b/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.types @@ -119,7 +119,7 @@ rList1 = rMyList1; // error, not nominally equal function foo, U extends MyList>(t: T, u: U) { >foo : , U extends MyList>(t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -184,7 +184,7 @@ function foo, U extends MyList>(t: T, u: U) { function foo2>(t: T, u: U) { >foo2 : >(t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types index 9f43223125e0b..d529cb677364f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.types @@ -9,7 +9,7 @@ class A { foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -47,26 +47,26 @@ interface I { interface I2 { foo(x: T): T; >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } var a: { foo(x: T): T } >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var b = { foo(x: T) { return x; } }; >b : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >{ foo(x: T) { return x; } } : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -144,17 +144,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -165,17 +165,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -243,9 +243,9 @@ function foo7(x: typeof a); // error >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -296,9 +296,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -315,9 +315,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -368,9 +368,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -387,9 +387,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types index d84b7b6bb6f41..d16fc9ea585e5 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.types @@ -9,7 +9,7 @@ class A { foo(x: T, y: U): T { return null; } >foo : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -55,7 +55,7 @@ interface I { interface I2 { foo(x: T, y: U): T; >foo : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -64,9 +64,9 @@ interface I2 { var a: { foo(x: T, y: U): T } >a : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -74,11 +74,11 @@ var a: { foo(x: T, y: U): T } var b = { foo(x: T, y: U) { return x; } }; >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >{ foo(x: T, y: U) { return x; } } : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >foo : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : U @@ -158,17 +158,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -179,17 +179,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -257,9 +257,9 @@ function foo7(x: typeof a); // no error, bug? >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -310,9 +310,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -329,9 +329,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -382,9 +382,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -401,9 +401,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types index 489f22cbb212f..4cc69b931fc97 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types @@ -11,7 +11,7 @@ class A { foo(x: T): string { return null; } >foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ } @@ -49,26 +49,26 @@ interface I { interface I2 { foo(x: T): string; >foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ } var a: { foo>(x: T): string } >a : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo : >(x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var b = { foo(x: T) { return ''; } }; >b : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >{ foo(x: T) { return ''; } } : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -146,17 +146,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -167,17 +167,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -245,9 +245,9 @@ function foo7(x: typeof a); // ok >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -298,9 +298,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B>): any; (x: typeof a): any; } @@ -317,9 +317,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B>): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B>): any; (x: typeof b): any; } @@ -370,9 +370,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -389,9 +389,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types index 0ea25a22ec46c..32cde794b6a45 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.types @@ -11,7 +11,7 @@ class A { foo(x: T, y: U): string { return null; } >foo : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -70,7 +70,7 @@ interface I { interface I2 { foo(x: T, y: U): string; >foo : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -79,9 +79,9 @@ interface I2 { var a: { foo>(x: T, y: U): string } >a : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : >(x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -89,11 +89,11 @@ var a: { foo>(x: T, y: U): string } var b = { foo(x: T, y: U) { return ''; } }; >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >{ foo(x: T, y: U) { return ''; } } : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >foo : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : U @@ -173,17 +173,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -194,17 +194,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -306,9 +306,9 @@ function foo7(x: typeof a); // ok >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -359,9 +359,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B, Array>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B, Array>): any; (x: typeof a): any; } @@ -378,9 +378,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B, Array>): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B, Array>): any; (x: typeof b): any; } @@ -431,9 +431,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo>(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -450,9 +450,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types index 65dfe33f02c85..1916b66272d98 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.types @@ -38,7 +38,7 @@ class A { foo(x: T, y: U): string { return null; } >foo : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -97,7 +97,7 @@ interface I> { interface I2 { foo>(x: T, y: U): string; >foo : >(x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -106,9 +106,9 @@ interface I2 { var a: { foo(x: T, y: U): string } >a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -116,11 +116,11 @@ var a: { foo(x: T, y: U): string } var b = { foo(x: T, y: U) { return ''; } }; >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >{ foo(x: T, y: U) { return ''; } } : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >foo : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : U @@ -200,17 +200,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -221,17 +221,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -333,9 +333,9 @@ function foo7(x: typeof a); // error >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -386,9 +386,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -405,9 +405,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -458,9 +458,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I, Five>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I, Five>): any; (x: typeof a): any; } @@ -477,9 +477,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I, Five>): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I, Five>): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types index 1e8801a8736e9..2b9f1fcc770ed 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.types @@ -11,7 +11,7 @@ class A { foo(x: T): string { return null; } >foo : (x: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -49,26 +49,26 @@ interface I { interface I2 { foo(x: T): RegExp; >foo : (x: T) => RegExp -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } var a: { foo(x: T): T } >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var b = { foo(x: T) { return null; } }; >b : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >{ foo(x: T) { return null; } } : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >foo : (x: T) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -144,17 +144,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -165,17 +165,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -243,9 +243,9 @@ function foo7(x: typeof a); // ok >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -296,9 +296,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -315,9 +315,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -368,9 +368,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -387,9 +387,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types index 50060d43f8764..bda724c885542 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types @@ -11,7 +11,7 @@ class A { foo(x: T): string { return null; } >foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ } @@ -49,26 +49,26 @@ interface I { interface I2 { foo(x: T): RegExp; >foo : (x: T) => RegExp -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ } var a: { foo(x: T): T } >a : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var b = { foo(x: T) { return null; } }; >b : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ foo(x: T) { return null; } } : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >foo : (x: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -144,17 +144,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -165,17 +165,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -243,9 +243,9 @@ function foo7(x: typeof a); // ok >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -296,9 +296,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -315,9 +315,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -368,9 +368,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >a : { foo(x: T): T; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -387,9 +387,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { foo(x: T): any; } -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types index 91dc91f65f955..5143103a9de62 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.types @@ -9,7 +9,7 @@ class A { foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -47,26 +47,26 @@ interface I { interface I2 { foo(x: Y): Y; >foo : (x: Y) => Y -> : ^ ^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >x : Y > : ^ } var a: { foo(x: Z): Z } >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >foo : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >x : Z > : ^ var b = { foo(x: A) { return x; } }; >b : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >{ foo(x: A) { return x; } } : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >foo : (x: A) => A -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ >x : A > : ^ >x : A @@ -144,17 +144,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -165,17 +165,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -243,9 +243,9 @@ function foo7(x: typeof a); // no error, bug? >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -296,9 +296,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -315,9 +315,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -368,9 +368,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -387,9 +387,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types index 79435f5bab00d..15d6ef74b8eb8 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.types @@ -18,7 +18,7 @@ interface I2 { var a: { (x: Z): Z } >a : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >x : Z > : ^ @@ -60,17 +60,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -87,9 +87,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -117,9 +117,9 @@ function foo14b(x: typeof a); >foo14b : { (x: typeof a): any; (x: I2): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : (x: Z) => Z -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo14b(x: I2); // ok >foo14b : { (x: typeof a): any; (x: I2): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types index 76953ef17532e..08b2972e7694c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.types @@ -9,7 +9,7 @@ class A { foo(x: T): T { return null; } >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -47,26 +47,26 @@ interface I { interface I2 { foo(x: Y): Y; >foo : (x: Y) => Y -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Y > : ^ } var a: { foo(x: Z): Z } >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >foo : (x: Z) => Z -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Z > : ^ var b = { foo(x: A) { return x; } }; >b : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >{ foo(x: A) { return x; } } : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >foo : (x: A) => A -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : A > : ^ >x : A @@ -144,17 +144,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -165,17 +165,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -243,9 +243,9 @@ function foo7(x: typeof a); // error >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -296,9 +296,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -315,9 +315,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -368,9 +368,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ >a : { foo(x: Z): Z; } -> : ^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -387,9 +387,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ >b : { foo(x: A): A; } -> : ^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types index d8acad80861c5..9700e6a6f1e2a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.types @@ -11,7 +11,7 @@ class A { foo(x: T, y?: T): T { return null; } >foo : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -57,7 +57,7 @@ interface I { interface I2 { foo(x: T, y?: T): T; >foo : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -66,9 +66,9 @@ interface I2 { var a: { foo(x: T, y?: T): T } >a : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >foo : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -76,11 +76,11 @@ var a: { foo(x: T, y?: T): T } var b = { foo(x: T, y?: T) { return x; } }; >b : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >{ foo(x: T, y?: T) { return x; } } : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >foo : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^ >x : T > : ^ >y : T @@ -160,17 +160,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -181,17 +181,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -259,9 +259,9 @@ function foo7(x: typeof a); // no error, bug? >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -312,9 +312,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -331,9 +331,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -384,9 +384,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -403,9 +403,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: T): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types index ee5fb26e6fb7a..ef9146338132b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.types @@ -11,7 +11,7 @@ class A { foo(x: T, y?: U): T { return null; } >foo : (x: T, y?: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -57,7 +57,7 @@ interface I { interface I2 { foo(x: T, y?: U): T; >foo : (x: T, y?: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -66,9 +66,9 @@ interface I2 { var a: { foo(x: T, y?: U): T } >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >foo : (x: T, y?: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -76,11 +76,11 @@ var a: { foo(x: T, y?: U): T } var b = { foo(x: T, y?: U) { return x; } }; >b : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >{ foo(x: T, y?: U) { return x; } } : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >foo : (x: T, y?: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^ >x : T > : ^ >y : U @@ -160,17 +160,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -181,17 +181,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -259,9 +259,9 @@ function foo7(x: typeof a); // no error, bug? >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -312,9 +312,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -331,9 +331,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -384,9 +384,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -403,9 +403,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ >b : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types index 9cbc59835c1bf..3db398e6f1889 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.types @@ -11,7 +11,7 @@ class A { foo(x: T, y?: U): T { return null; } >foo : (x: T, y?: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -57,7 +57,7 @@ interface I { interface I2 { foo(x: T, y: U): T; >foo : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -66,9 +66,9 @@ interface I2 { var a: { foo(x: T, y?: U): T } >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >foo : (x: T, y?: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -76,11 +76,11 @@ var a: { foo(x: T, y?: U): T } var b = { foo(x: T, y: U) { return x; } }; >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >{ foo(x: T, y: U) { return x; } } : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >foo : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : U @@ -160,17 +160,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -181,17 +181,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -259,9 +259,9 @@ function foo7(x: typeof a); // no error, bug? >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -312,9 +312,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -331,9 +331,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -384,9 +384,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >a : { foo(x: T, y?: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -403,9 +403,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ >b : { foo(x: T, y: U): T; } -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types index c41b39fc503f4..fd0c7ed970034 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types @@ -37,17 +37,17 @@ interface I2 { var a: { new>(x: T): string } >a : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var b = { new(x: T) { return ''; } }; // not a construct signature, function called new >b : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >{ new(x: T) { return ''; } } : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >new : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -108,17 +108,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -129,17 +129,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -190,9 +190,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B>): any; (x: typeof a): any; } @@ -209,9 +209,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B>): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B>): any; (x: typeof b): any; } @@ -262,9 +262,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new >(x: T) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -281,9 +281,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types index 25f8c46e34ce6..304c17f49553a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types @@ -56,7 +56,7 @@ interface I2 { var a: { new>(x: T, y: U): string } >a : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -64,11 +64,11 @@ var a: { new>(x: T, y: U): string } var b = { new(x: T, y: U) { return ''; } }; // not a construct signature, function called new >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >{ new(x: T, y: U) { return ''; } } : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >new : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : U @@ -131,17 +131,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -152,17 +152,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -247,9 +247,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B, Array>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B, Array>): any; (x: typeof a): any; } @@ -266,9 +266,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B, Array>): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B, Array>): any; (x: typeof b): any; } @@ -319,9 +319,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new >(x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -338,9 +338,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types index 07fd3ba9aee1a..13ae5af551c13 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.types @@ -83,7 +83,7 @@ interface I2 { var a: { new(x: T, y: U): string } >a : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -91,11 +91,11 @@ var a: { new(x: T, y: U): string } var b = { new(x: T, y: U) { return ''; } }; // not a construct signature, function called new >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >{ new(x: T, y: U) { return ''; } } : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >new : (x: T, y: U) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : U @@ -158,17 +158,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -179,17 +179,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -274,9 +274,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -293,9 +293,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -346,9 +346,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I, Five>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : new (x: T, y: U) => string -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I, Five>): any; (x: typeof a): any; } @@ -365,9 +365,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I, Five>): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >b : { "new"(x: T, y: U): string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I, Five>): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types index aadd4f64bf845..e21b36dde5ebb 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.types @@ -37,17 +37,17 @@ interface I2 { var a: { new(x: T): T } >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var b = { new(x: T): T { return null; } }; // not a construct signature, function called new >b : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >{ new(x: T): T { return null; } } : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >new : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -106,17 +106,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -127,17 +127,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -148,17 +148,17 @@ function foo5(x: typeof a): number; >foo5 : { (x: typeof a): number; (x: typeof b): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo5(x: typeof b): string; // ok >foo5 : { (x: typeof a): number; (x: typeof b): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >x : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ function foo5(x: any): any { } >foo5 : { (x: typeof a): number; (x: typeof b): string; } @@ -209,9 +209,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -228,9 +228,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -281,9 +281,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -300,9 +300,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ >b : { "new"(x: T): T; } -> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types index dc49f95cc0366..c7fe5e5429b8c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types @@ -37,17 +37,17 @@ interface I2 { var a: { new(x: T): T } >a : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var b = { new(x: T) { return null; } }; // not a construct signature, function called new >b : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ new(x: T) { return null; } } : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >new : (x: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ @@ -106,17 +106,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -127,17 +127,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -188,9 +188,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -207,9 +207,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -260,9 +260,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -279,9 +279,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : { "new"(x: T): any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types index f77d9219b6576..8519742a3d7b9 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.types @@ -35,17 +35,17 @@ interface I2 { var a: { new (x: Z): C; } >a : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >x : Z > : ^ var b = { new(x: A) { return x; } }; >b : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >{ new(x: A) { return x; } } : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >new : (x: A) => A -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ >x : A > : ^ >x : A @@ -106,17 +106,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -127,17 +127,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -188,9 +188,9 @@ function foo10(x: typeof a); // ok >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -207,9 +207,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -260,9 +260,9 @@ function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => C -> : ^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -279,9 +279,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ >b : { "new"(x: A): A; } -> : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types index 8ba9abd909cb1..a313d61664d8c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.types @@ -35,17 +35,17 @@ interface I2 { var a: { new(x: Z): B } >a : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : Z > : ^ var b = { new(x: A) { return new C(x); } }; >b : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ >{ new(x: A) { return new C(x); } } : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ >new : (x: A) => C -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : A > : ^ >new C(x) : C @@ -110,17 +110,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -131,17 +131,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ >b : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ >b : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -192,9 +192,9 @@ function foo10(x: typeof a); // BUG 832086 >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -211,9 +211,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ >b : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -264,9 +264,9 @@ function foo13(x: typeof a); // BUG 832086 >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : new (x: Z) => B -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -283,9 +283,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ >b : { "new"(x: A): C; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types index 464f0e5e0ab21..967d4f8563088 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.types @@ -45,7 +45,7 @@ interface I2 { var a: { new(x: T, y?: T): B } >a : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -53,11 +53,11 @@ var a: { new(x: T, y?: T): B } var b = { new(x: T, y?: T) { return new C(x, y); } }; // not a construct signature, function called new >b : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ >{ new(x: T, y?: T) { return new C(x, y); } } : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ >new : (x: T, y?: T) => C -> : ^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^^^^^ >x : T > : ^ >y : T @@ -126,17 +126,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -147,17 +147,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ >b : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ >b : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -208,9 +208,9 @@ function foo10(x: typeof a); // BUG 832086 >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -227,9 +227,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ >b : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -280,9 +280,9 @@ function foo13(x: typeof a); // BUG 832086 >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: T) => B -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -299,9 +299,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ >b : { "new"(x: T, y?: T): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types index 8caccc6bcb748..0a746c0266550 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.types @@ -45,7 +45,7 @@ interface I2 { var a: { new(x: T, y?: U): B } >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -53,11 +53,11 @@ var a: { new(x: T, y?: U): B } var b = { new(x: T, y?: U) { return new C(x, y); } }; // not a construct signature, function called new >b : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ >{ new(x: T, y?: U) { return new C(x, y); } } : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ >new : (x: T, y?: U) => C -> : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ >x : T > : ^ >y : U @@ -126,17 +126,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -147,17 +147,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -208,9 +208,9 @@ function foo10(x: typeof a); // BUG 832086 >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -227,9 +227,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -280,9 +280,9 @@ function foo13(x: typeof a); // BUG 832086 >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -299,9 +299,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y?: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types index 422ea196d3f9e..6d05b33cffbd8 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.types @@ -45,7 +45,7 @@ interface I2 { var a: { new (x: T, y?: U): B }; >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : U @@ -53,11 +53,11 @@ var a: { new (x: T, y?: U): B }; var b = { new(x: T, y: U) { return new C(x, y); } }; // not a construct signature, function called new >b : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >{ new(x: T, y: U) { return new C(x, y); } } : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >new : (x: T, y: U) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >x : T > : ^ >y : U @@ -126,17 +126,17 @@ function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo3(x: typeof a); // error >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo3(x: any) { } >foo3 : { (x: typeof a): any; (x: typeof a): any; } @@ -147,17 +147,17 @@ function foo4(x: typeof b); >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ function foo4(x: typeof b); // error >foo4 : { (x: typeof b): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ function foo4(x: any) { } >foo4 : { (x: typeof b): any; (x: typeof b): any; } @@ -208,9 +208,9 @@ function foo10(x: typeof a); // BUG 832086 >foo10 : { (x: B): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo10(x: any) { } >foo10 : { (x: B): any; (x: typeof a): any; } @@ -227,9 +227,9 @@ function foo11(x: typeof b); // ok >foo11 : { (x: B): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ function foo11(x: any) { } >foo11 : { (x: B): any; (x: typeof b): any; } @@ -280,9 +280,9 @@ function foo13(x: typeof a); // BUG 832086 >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >a : new (x: T, y?: U) => B -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ function foo13(x: any) { } >foo13 : { (x: I): any; (x: typeof a): any; } @@ -299,9 +299,9 @@ function foo14(x: typeof b); // ok >foo14 : { (x: I): any; (x: typeof b): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >x : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >b : { "new"(x: T, y: U): C; } -> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ function foo14(x: any) { } >foo14 : { (x: I): any; (x: typeof b): any; } diff --git a/tests/baselines/reference/observableInferenceCanBeMade.types b/tests/baselines/reference/observableInferenceCanBeMade.types index 55cb97f5290fd..0675d5286f331 100644 --- a/tests/baselines/reference/observableInferenceCanBeMade.types +++ b/tests/baselines/reference/observableInferenceCanBeMade.types @@ -5,13 +5,13 @@ declare function of(a: T): Observable; >of : (a: T) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ declare function from>(input: O): Observable>; >from : >(input: O) => Observable> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >input : O > : ^ @@ -76,13 +76,13 @@ function asObservable(input: string | ObservableInput): Observableof(input) : Observable > : ^^^^^^^^^^^^^^^^^^ >of : (a: T) => Observable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >input : string > : ^^^^^^ >from(input) : Observable > : ^^^^^^^^^^^^^^^^^^ >from : >(input: O) => Observable> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >input : ObservableInput > : ^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/optionalChainingInference.types b/tests/baselines/reference/optionalChainingInference.types index ad8f1ca5f155b..94ee7ba1eef98 100644 --- a/tests/baselines/reference/optionalChainingInference.types +++ b/tests/baselines/reference/optionalChainingInference.types @@ -4,7 +4,7 @@ // https://github.com/microsoft/TypeScript/issues/34579 declare function unbox(box: { value: T | undefined }): T; >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : { value: T | undefined; } > : ^^^^^^^^^ ^^^ >value : T @@ -50,7 +50,7 @@ const v1: number = unbox(b1); >unbox(b1) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b1 : { value: number; } > : ^^^^^^^^^^^^^^^^^^ @@ -76,7 +76,7 @@ const v2: number = unbox(b2); >unbox(b2) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { value: number | undefined; } > : ^^^^^^^^^ ^^^ @@ -102,7 +102,7 @@ const v3: number = unbox(b3); >unbox(b3) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : { value: number | undefined; } > : ^^^^^^^^^ ^^^ @@ -124,7 +124,7 @@ const v4: number = unbox(b4); >unbox(b4) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b4 : { value: number; } > : ^^^^^^^^^^^^^^^^^^ @@ -148,7 +148,7 @@ const v5: number = unbox(b5); >unbox(b5) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b5 : { value: number; } > : ^^^^^^^^^^^^^^^^^^ @@ -176,7 +176,7 @@ const v6: number = unbox(b6); >unbox(b6) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b6 : { value: number; } > : ^^^^^^^^^^^^^^^^^^ @@ -204,7 +204,7 @@ const v7: number = unbox(b7); >unbox(b7) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b7 : { value: number; } > : ^^^^^^^^^^^^^^^^^^ @@ -230,7 +230,7 @@ const v8: number = unbox(b8); >unbox(b8) : number > : ^^^^^^ >unbox : (box: { value: T | undefined; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b8 : { value: number; } > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/optionalFunctionArgAssignability.types b/tests/baselines/reference/optionalFunctionArgAssignability.types index c7190317bdae9..66e3b021d8647 100644 --- a/tests/baselines/reference/optionalFunctionArgAssignability.types +++ b/tests/baselines/reference/optionalFunctionArgAssignability.types @@ -4,7 +4,7 @@ interface Promise { then(onFulfill?: (value: T) => U, onReject?: (reason: any) => U): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (onFulfill?: (value: T) => U, onReject?: (reason: any) => U): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ >onFulfill : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -17,11 +17,11 @@ interface Promise { var a = function then(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise { return null }; >a : (onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >function then(onFulfill?: (value: string) => U, onReject?: (reason: any) => U): Promise { return null } : (onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >then : (onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >onFulfill : (value: string) => U > : ^ ^^ ^^^^^ >value : string @@ -33,11 +33,11 @@ var a = function then(onFulfill?: (value: string) => U, onReject?: (reason: a var b = function then(onFulFill?: (value: number) => U, onReject?: (reason: any) => U): Promise { return null }; >b : (onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >function then(onFulFill?: (value: number) => U, onReject?: (reason: any) => U): Promise { return null } : (onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >then : (onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >onFulFill : (value: number) => U > : ^ ^^ ^^^^^ >value : number @@ -49,9 +49,9 @@ var b = function then(onFulFill?: (value: number) => U, onReject?: (reason: a a = b; // error because number is not assignable to string >a = b : (onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >a : (onFulfill?: (value: string) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >b : (onFulFill?: (value: number) => U, onReject?: (reason: any) => U) => Promise -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/optionalParameterRetainsNull.types b/tests/baselines/reference/optionalParameterRetainsNull.types index d6ebd59e5a978..a405f41ee991c 100644 --- a/tests/baselines/reference/optionalParameterRetainsNull.types +++ b/tests/baselines/reference/optionalParameterRetainsNull.types @@ -9,13 +9,13 @@ interface Bar { bar: number; foo: object | null; } let a = { >a : { test(a: K, b?: Bar[K] | null): void; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ >{ test (a: K, b?: Bar[K] | null) { }} : { test(a: K, b?: Bar[K] | null): void; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ test (a: K, b?: Bar[K] | null) { } >test : (a: K, b?: Bar[K] | null) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >a : K > : ^ >b : Bar[K] | null | undefined @@ -26,11 +26,11 @@ a.test("bar", null); // ok, null is assignable to number | null | undefined >a.test("bar", null) : void > : ^^^^ >a.test : (a: K, b?: Bar[K] | null) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >a : { test(a: K, b?: Bar[K] | null): void; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ >test : (a: K, b?: Bar[K] | null) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >"bar" : "bar" > : ^^^^^ diff --git a/tests/baselines/reference/overEagerReturnTypeSpecialization.types b/tests/baselines/reference/overEagerReturnTypeSpecialization.types index ed68d1089007c..e64f040ccfb54 100644 --- a/tests/baselines/reference/overEagerReturnTypeSpecialization.types +++ b/tests/baselines/reference/overEagerReturnTypeSpecialization.types @@ -6,7 +6,7 @@ interface I1 { func(callback: (value: T) => U): I1; >func : (callback: (value: T) => U) => I1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (value: T) => U > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/overloadEquivalenceWithStatics.types b/tests/baselines/reference/overloadEquivalenceWithStatics.types index 35db77c545ccb..7b19687a0efe1 100644 --- a/tests/baselines/reference/overloadEquivalenceWithStatics.types +++ b/tests/baselines/reference/overloadEquivalenceWithStatics.types @@ -7,19 +7,19 @@ class A1 { static B(v: A1): A1; // 1 >B : { (v: A1): A1; (v: S_1): A1; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >v : A1 > : ^^^^^ static B(v: S): A1; // 2 : Error Duplicate signature >B : { (v: A1): A1; (v: S): A1; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >v : S > : ^ static B(v: any): A1 { >B : { (v: A1): A1; (v: S_1): A1; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >v : any return null; diff --git a/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types b/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types index 2f8b51eac2750..3d11092fa5d63 100644 --- a/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types +++ b/tests/baselines/reference/overloadGenericFunctionWithRestArgs.types @@ -19,13 +19,13 @@ class A{ } function Choice(...v_args: T[]): A; >Choice : (...v_args: T[]) => A -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >v_args : T[] > : ^^^ function Choice(...v_args: T[]): A { >Choice : (...v_args: T_1[]) => A -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >v_args : T[] > : ^^^ diff --git a/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types b/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types index de8bc662be9d8..5e1b76815007e 100644 --- a/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types +++ b/tests/baselines/reference/overloadOnGenericClassAndNonGenericClass.types @@ -36,19 +36,19 @@ class X2 { x: string; } function f(a: X1): A; >f : { (a: X1): A; (a: X): B; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : X1 > : ^^ function f(a: X): B; >f : { (a: X1): A; (a: X): B; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : X > : ^^^^ function f(a): any { >f : { (a: X1): A; (a: X): B; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : any } @@ -62,7 +62,7 @@ var t3 = f(xs); >f(xs) : A > : ^ >f : { (a: X1): A; (a: X): B; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >xs : X > : ^^^^^^^^^ diff --git a/tests/baselines/reference/overloadResolution.types b/tests/baselines/reference/overloadResolution.types index 22fd83e475b3d..663c8df8af87a 100644 --- a/tests/baselines/reference/overloadResolution.types +++ b/tests/baselines/reference/overloadResolution.types @@ -89,7 +89,7 @@ fn1({}); // Error // Generic and non - generic overload where generic overload is the only candidate when called with type arguments function fn2(s: string, n: number): number; >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >s : string > : ^^^^^^ >n : number @@ -97,7 +97,7 @@ function fn2(s: string, n: number): number; function fn2(n: number, t: T): T; >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >n : number > : ^^^^^^ >t : T @@ -105,7 +105,7 @@ function fn2(n: number, t: T): T; function fn2() { return undefined; } >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -115,7 +115,7 @@ var d = fn2(0, undefined); >fn2(0, undefined) : Date > : ^^^^ >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >0 : 0 > : ^ >undefined : undefined @@ -132,7 +132,7 @@ var s = fn2(0, ''); >fn2(0, '') : "" > : ^^ >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >0 : 0 > : ^ >'' : "" @@ -143,7 +143,7 @@ fn2('', 0); // Error >fn2('', 0) : number > : ^^^^^^ >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >'' : "" > : ^^ >0 : 0 @@ -154,7 +154,7 @@ fn2('', 0); // OK >fn2('', 0) : number > : ^^^^^^ >fn2 : { (s: string, n: number): number; (n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >'' : "" > : ^^ >0 : 0 @@ -163,13 +163,13 @@ fn2('', 0); // OK // Generic overloads with differing arity called without type arguments function fn3(n: T): string; >fn3 : { (n: T): string; (s: string, t: T_1, u: U): U; (v: V, u: U, t: T_1): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >n : T > : ^ function fn3(s: string, t: T, u: U): U; >fn3 : { (n: T_1): string; (s: string, t: T, u: U): U; (v: V, u: U_1, t: T_1): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >s : string > : ^^^^^^ >t : T @@ -179,7 +179,7 @@ function fn3(s: string, t: T, u: U): U; function fn3(v: V, u: U, t: T): number; >fn3 : { (n: T_1): string; (s: string, t: T_1, u: U_1): U_1; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >v : V > : ^ >u : U @@ -189,7 +189,7 @@ function fn3(v: V, u: U, t: T): number; function fn3() { return null; } >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ var s = fn3(3); >s : string @@ -197,7 +197,7 @@ var s = fn3(3); >fn3(3) : string > : ^^^^^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >3 : 3 > : ^ @@ -207,7 +207,7 @@ var s = fn3('', 3, ''); >fn3('', 3, '') : "" > : ^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >'' : "" > : ^^ >3 : 3 @@ -221,7 +221,7 @@ var n = fn3(5, 5, 5); >fn3(5, 5, 5) : number > : ^^^^^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >5 : 5 > : ^ >5 : 5 @@ -240,7 +240,7 @@ var s = fn3(4); >fn3(4) : string > : ^^^^^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >4 : 4 > : ^ @@ -250,7 +250,7 @@ var s = fn3('', '', ''); >fn3('', '', '') : string > : ^^^^^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >'' : "" > : ^^ >'' : "" @@ -264,7 +264,7 @@ var n = fn3('', '', 3); >fn3('', '', 3) : number > : ^^^^^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >'' : "" > : ^^ >'' : "" @@ -277,12 +277,12 @@ fn3(); // Error >fn3() : string > : ^^^^^^ >fn3 : { (n: T): string; (s: string, t: T, u: U): U; (v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ // Generic overloads with constraints called with type arguments that satisfy the constraints function fn4(n: T, m: U); >fn4 : { (n: T, m: U): any; (n: T_1, m: U_1): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : U @@ -290,7 +290,7 @@ function fn4(n: T, m: U); function fn4(n: T, m: U); >fn4 : { (n: T_1, m: U_1): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : U @@ -298,13 +298,13 @@ function fn4(n: T, m: U); function fn4() { } >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ fn4('', 3); >fn4('', 3) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >3 : 3 @@ -314,7 +314,7 @@ fn4(3, ''); // Error >fn4(3, '') : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >'' : "" @@ -324,7 +324,7 @@ fn4('', 3); // Error >fn4('', 3) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >3 : 3 @@ -334,7 +334,7 @@ fn4(3, ''); >fn4(3, '') : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >'' : "" @@ -345,7 +345,7 @@ fn4('', 3); >fn4('', 3) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >3 : 3 @@ -355,7 +355,7 @@ fn4(3, ''); >fn4(3, '') : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >'' : "" @@ -365,7 +365,7 @@ fn4(3, undefined); >fn4(3, undefined) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >undefined : undefined @@ -375,7 +375,7 @@ fn4('', null); >fn4('', null) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ @@ -384,14 +384,14 @@ fn4(null, null); // Error >fn4(null, null) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ // Generic overloads with constraints called without type arguments but with types that do not satisfy the constraints fn4(true, null); // Error >fn4(true, null) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >true : true > : ^^^^ @@ -399,7 +399,7 @@ fn4(null, true); // Error >fn4(null, true) : any > : ^^^ >fn4 : { (n: T, m: U): any; (n: T, m: U): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >true : true > : ^^^^ diff --git a/tests/baselines/reference/overloadedStaticMethodSpecialization.types b/tests/baselines/reference/overloadedStaticMethodSpecialization.types index b15c918aa034a..e0a9e1315c443 100644 --- a/tests/baselines/reference/overloadedStaticMethodSpecialization.types +++ b/tests/baselines/reference/overloadedStaticMethodSpecialization.types @@ -7,19 +7,19 @@ class A { static B(v: A): A; >B : { (v: A): A; (v: S_1): A; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >v : A > : ^^^^ static B(v: S): A; >B : { (v: A): A; (v: S): A; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >v : S > : ^ static B(v: any): A { >B : { (v: A): A; (v: S_1): A; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >v : any return null; diff --git a/tests/baselines/reference/overloadsWithConstraints.types b/tests/baselines/reference/overloadsWithConstraints.types index 68d8ddf15e6e5..b6c3c517f0be0 100644 --- a/tests/baselines/reference/overloadsWithConstraints.types +++ b/tests/baselines/reference/overloadsWithConstraints.types @@ -3,13 +3,13 @@ === overloadsWithConstraints.ts === declare function f(x: T): T; >f : { (x: T): T; (x: T_1): T_1; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function f(x: T): T >f : { (x: T_1): T_1; (x: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ @@ -19,7 +19,7 @@ var v = f(""); >f("") : string > : ^^^^^^ >f : { (x: T): T; (x: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >"" : "" > : ^^ diff --git a/tests/baselines/reference/override19.types b/tests/baselines/reference/override19.types index dbbb22363b513..6426539d91074 100644 --- a/tests/baselines/reference/override19.types +++ b/tests/baselines/reference/override19.types @@ -9,7 +9,7 @@ type Foo = abstract new(...args: any) => any; declare function CreateMixin(Context: C, Base: T): T & { >CreateMixin : (Context: C, Base: T) => T & { new (...args: any[]): { context: InstanceType; }; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >Context : C > : ^ >Base : T @@ -40,7 +40,7 @@ class B extends CreateMixin(Context, A) { >CreateMixin(Context, A) : A & { context: Context; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >CreateMixin : (Context: C, Base: T) => T & { new (...args: any[]): { context: InstanceType; }; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >Context : typeof Context > : ^^^^^^^^^^^^^^ >A : typeof A @@ -57,7 +57,7 @@ class C extends CreateMixin(Context, A) { >CreateMixin(Context, A) : A & { context: Context; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >CreateMixin : (Context: C, Base: T) => T & { new (...args: any[]): { context: InstanceType; }; } -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >Context : typeof Context > : ^^^^^^^^^^^^^^ >A : typeof A diff --git a/tests/baselines/reference/overrideBaseIntersectionMethod.types b/tests/baselines/reference/overrideBaseIntersectionMethod.types index 672cc21411efb..87f247f9a2d47 100644 --- a/tests/baselines/reference/overrideBaseIntersectionMethod.types +++ b/tests/baselines/reference/overrideBaseIntersectionMethod.types @@ -11,9 +11,9 @@ type Constructor = new (...args: any[]) => T; const WithLocation = >(Base: T) => class extends Base { >WithLocation : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithLocation.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>(Base: T) => class extends Base { getLocation(): [number, number] { const [x,y] = super.getLocation(); return [this.x | x, this.y | y]; }} : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithLocation.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : T > : ^ >class extends Base { getLocation(): [number, number] { const [x,y] = super.getLocation(); return [this.x | x, this.y | y]; }} : { new (...args: any[]): (Anonymous class); prototype: WithLocation.(Anonymous class); } & T @@ -95,7 +95,7 @@ class Foo extends WithLocation(Point) { >WithLocation(Point) : WithLocation.(Anonymous class) & Point > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >WithLocation : >(Base: T) => { new (...args: any[]): (Anonymous class); prototype: WithLocation.(Anonymous class); } & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Point : typeof Point > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/paramTagBracketsAddOptionalUndefined.types b/tests/baselines/reference/paramTagBracketsAddOptionalUndefined.types index 04071986bb087..b47f13a4e48b7 100644 --- a/tests/baselines/reference/paramTagBracketsAddOptionalUndefined.types +++ b/tests/baselines/reference/paramTagBracketsAddOptionalUndefined.types @@ -8,7 +8,7 @@ */ function f(p, q, r) { >f : (p?: number | undefined, q?: number | undefined, r?: number | undefined) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p : number | undefined > : ^^^^^^^^^^^^^^^^^^ >q : number | undefined @@ -46,13 +46,13 @@ f() >f() : void > : ^^^^ >f : (p?: number | undefined, q?: number | undefined, r?: number | undefined) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ f(undefined, undefined, undefined) >f(undefined, undefined, undefined) : void > : ^^^^ >f : (p?: number | undefined, q?: number | undefined, r?: number | undefined) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ >undefined : undefined @@ -64,7 +64,7 @@ f(1, 2, 3) >f(1, 2, 3) : void > : ^^^^ >f : (p?: number | undefined, q?: number | undefined, r?: number | undefined) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 > : ^ >2 : 2 diff --git a/tests/baselines/reference/paramTagTypeResolution.types b/tests/baselines/reference/paramTagTypeResolution.types index 51591c439a707..3fbe7edbbe914 100644 --- a/tests/baselines/reference/paramTagTypeResolution.types +++ b/tests/baselines/reference/paramTagTypeResolution.types @@ -3,9 +3,9 @@ === main.js === var f = require('./first'); >f : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >require('./first') : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >require : any >'./first' : "./first" > : ^^^^^^^^^ @@ -14,7 +14,7 @@ f(1, n => { }) >f(1, n => { }) : void > : ^^^^ >f : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >n => { } : (n: number) => void @@ -29,15 +29,15 @@ f(1, n => { }) */ module.exports = function (x, k) { return k(x) } >module.exports = function (x, k) { return k(x) } : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >module.exports : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >module : { exports: (x: T, k: (t: T) => void) => void; } -> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >exports : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >function (x, k) { return k(x) } : (x: T, k: (t: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >k : (t: T) => void diff --git a/tests/baselines/reference/paramTagTypeResolution2.types b/tests/baselines/reference/paramTagTypeResolution2.types index 230fdd153eecb..47fd0cd8b02d1 100644 --- a/tests/baselines/reference/paramTagTypeResolution2.types +++ b/tests/baselines/reference/paramTagTypeResolution2.types @@ -8,18 +8,18 @@ */ function f(a, b) { >f : (a: T, b: { [K in keyof T]: (value: T[K]) => void; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : { [K in keyof T]: (value: T[K]) => void; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ } f({ x: 42 }, { x(param) { param.toFixed() } }); >f({ x: 42 }, { x(param) { param.toFixed() } }) : void > : ^^^^ >f : (a: T, b: { [K in keyof T]: (value: T[K]) => void; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >{ x: 42 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/parameterNamesInTypeParameterList.types b/tests/baselines/reference/parameterNamesInTypeParameterList.types index 5de734a7b1eac..c700e91386d2e 100644 --- a/tests/baselines/reference/parameterNamesInTypeParameterList.types +++ b/tests/baselines/reference/parameterNamesInTypeParameterList.types @@ -3,7 +3,7 @@ === parameterNamesInTypeParameterList.ts === function f0(a: T) { >f0 : (a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -20,7 +20,7 @@ function f0(a: T) { function f1({a}: {a:T}) { >f1 : ({ a }: { a: T; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -39,7 +39,7 @@ function f1({a}: {a:T}) { function f2([a]: T[]) { >f2 : ([a]: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -60,7 +60,7 @@ class A { m0(a: T) { >m0 : (a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -76,7 +76,7 @@ class A { } m1({a}: {a:T}) { >m1 : ({ a }: { a: T; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -94,7 +94,7 @@ class A { } m2([a]: T[]) { >m2 : ([a]: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T diff --git a/tests/baselines/reference/parameterReferenceInInitializer1.types b/tests/baselines/reference/parameterReferenceInInitializer1.types index 92d4b1f984e60..99c7097673de0 100644 --- a/tests/baselines/reference/parameterReferenceInInitializer1.types +++ b/tests/baselines/reference/parameterReferenceInInitializer1.types @@ -3,7 +3,7 @@ === parameterReferenceInInitializer1.ts === function fn(y: Y, set: (y: Y, x: number) => void): a { >fn : (y: Y, set: (y: Y, x: number) => void) => a -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >y : Y > : ^ >set : (y: Y, x: number) => void @@ -36,7 +36,7 @@ class C { >fn(y, (y, x) => y.x = x) : unknown > : ^^^^^^^ >fn : (y: Y, set: (y: Y, x: number) => void) => a -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >y : Y > : ^ >(y, x) => y.x = x : (y: Y, x: number) => number diff --git a/tests/baselines/reference/paramsOnlyHaveLiteralTypesWhenAppropriatelyContextualized.types b/tests/baselines/reference/paramsOnlyHaveLiteralTypesWhenAppropriatelyContextualized.types index 1014f917a993c..bf70a7384d664 100644 --- a/tests/baselines/reference/paramsOnlyHaveLiteralTypesWhenAppropriatelyContextualized.types +++ b/tests/baselines/reference/paramsOnlyHaveLiteralTypesWhenAppropriatelyContextualized.types @@ -11,7 +11,7 @@ type Lower = { [K in keyof T]: T[K] }; export function appendToOptionalArray< >appendToOptionalArray : (object: { [x in K]?: Lower[]; }, key: K, value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ K extends string | number | symbol, T @@ -87,7 +87,7 @@ appendToOptionalArray(foo, 'x', 123); // ok >appendToOptionalArray(foo, 'x', 123) : void > : ^^^^ >appendToOptionalArray : (object: { [x in K]?: Lower[]; }, key: K, value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : { x?: number[]; y?: string[]; } > : ^^^^^^ ^^^^^^ ^^^ >'x' : "x" @@ -99,7 +99,7 @@ appendToOptionalArray(foo, 'y', 'bar'); // ok >appendToOptionalArray(foo, 'y', 'bar') : void > : ^^^^ >appendToOptionalArray : (object: { [x in K]?: Lower[]; }, key: K, value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : { x?: number[]; y?: string[]; } > : ^^^^^^ ^^^^^^ ^^^ >'y' : "y" @@ -111,7 +111,7 @@ appendToOptionalArray(foo, 'y', 12); // should fail >appendToOptionalArray(foo, 'y', 12) : void > : ^^^^ >appendToOptionalArray : (object: { [x in K]?: Lower[]; }, key: K, value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : { x?: number[]; y?: string[]; } > : ^^^^^^ ^^^^^^ ^^^ >'y' : "y" @@ -123,7 +123,7 @@ appendToOptionalArray(foo, 'x', "no"); // should fail >appendToOptionalArray(foo, 'x', "no") : void > : ^^^^ >appendToOptionalArray : (object: { [x in K]?: Lower[]; }, key: K, value: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : { x?: number[]; y?: string[]; } > : ^^^^^^ ^^^^^^ ^^^ >'x' : "x" diff --git a/tests/baselines/reference/parenthesizedContexualTyping1.types b/tests/baselines/reference/parenthesizedContexualTyping1.types index fafb520700f26..bc0ea951fe83b 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping1.types +++ b/tests/baselines/reference/parenthesizedContexualTyping1.types @@ -3,7 +3,7 @@ === parenthesizedContexualTyping1.ts === function fun(g: (x: T) => T, x: T): T; >fun : { (g: (x: T) => T, x: T): T; (g: (x: T_1) => T_1, h: (y: T_1) => T_1, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >g : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -13,7 +13,7 @@ function fun(g: (x: T) => T, x: T): T; function fun(g: (x: T) => T, h: (y: T) => T, x: T): T; >fun : { (g: (x: T_1) => T_1, x: T_1): T_1; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >g : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -27,7 +27,7 @@ function fun(g: (x: T) => T, h: (y: T) => T, x: T): T; function fun(g: (x: T) => T, x: T): T { >fun : { (g: (x: T_1) => T_1, x: T_1): T_1; (g: (x: T_1) => T_1, h: (y: T_1) => T_1, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >g : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -50,7 +50,7 @@ var a = fun(x => x, 10); >fun(x => x, 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -66,7 +66,7 @@ var b = fun((x => x), 10); >fun((x => x), 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(x => x) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x => x : (x: number) => number @@ -84,7 +84,7 @@ var c = fun(((x => x)), 10); >fun(((x => x)), 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >((x => x)) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >(x => x) : (x: number) => number @@ -104,7 +104,7 @@ var d = fun((((x => x))), 10); >fun((((x => x))), 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(((x => x))) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >((x => x)) : (x: number) => number @@ -126,7 +126,7 @@ var e = fun(x => x, x => x, 10); >fun(x => x, x => x, 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x : number @@ -148,7 +148,7 @@ var f = fun((x => x), (x => x), 10); >fun((x => x), (x => x), 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(x => x) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >x => x : (x: number) => number @@ -174,7 +174,7 @@ var g = fun(((x => x)), ((x => x)), 10); >fun(((x => x)), ((x => x)), 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >((x => x)) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >(x => x) : (x: number) => number @@ -204,7 +204,7 @@ var h = fun((((x => x))), ((x => x)), 10); >fun((((x => x))), ((x => x)), 10) : number > : ^^^^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(((x => x))) : (x: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >((x => x)) : (x: number) => number @@ -237,7 +237,7 @@ var i = fun((Math.random() < 0.5 ? x => x : x => undefined), 10); >fun((Math.random() < 0.5 ? x => x : x => undefined), 10) : any > : ^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(Math.random() < 0.5 ? x => x : x => undefined) : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >Math.random() < 0.5 ? x => x : x => undefined : (x: number) => any @@ -275,7 +275,7 @@ var j = fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), 10); >fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), 10) : any > : ^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(Math.random() < 0.5 ? (x => x) : (x => undefined)) : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >Math.random() < 0.5 ? (x => x) : (x => undefined) : (x: number) => any @@ -317,7 +317,7 @@ var k = fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), x => x, 10); >fun((Math.random() < 0.5 ? (x => x) : (x => undefined)), x => x, 10) : any > : ^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(Math.random() < 0.5 ? (x => x) : (x => undefined)) : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >Math.random() < 0.5 ? (x => x) : (x => undefined) : (x: number) => any @@ -365,7 +365,7 @@ var l = fun(((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))), ((x => x) >fun(((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))), ((x => x)), 10) : any > : ^^^ >fun : { (g: (x: T) => T, x: T): T; (g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >((Math.random() < 0.5 ? ((x => x)) : ((x => undefined)))) : (x: number) => any > : ^ ^^^^^^^^^^^^^^^^ >(Math.random() < 0.5 ? ((x => x)) : ((x => undefined))) : (x: number) => any diff --git a/tests/baselines/reference/parenthesizedContexualTyping2.types b/tests/baselines/reference/parenthesizedContexualTyping2.types index 4cd8a3931ad4e..cc9d6c57545b2 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping2.types +++ b/tests/baselines/reference/parenthesizedContexualTyping2.types @@ -11,15 +11,15 @@ type FuncType = (x: (p: T) => T) => typeof x; >FuncType : FuncType > : ^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : T > : ^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ function fun(f: FuncType, x: T): T; >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >f : FuncType > : ^^^^^^^^ >x : T @@ -27,7 +27,7 @@ function fun(f: FuncType, x: T): T; function fun(f: FuncType, g: FuncType, x: T): T; >fun : { (f: FuncType, x: T_1): T_1; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >f : FuncType > : ^^^^^^^^ >g : FuncType @@ -37,7 +37,7 @@ function fun(f: FuncType, g: FuncType, x: T): T; function fun(...rest: any[]): T { >fun : { (f: FuncType, x: T_1): T_1; (f: FuncType, g: FuncType, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >rest : any[] > : ^^^^^ @@ -52,19 +52,19 @@ var a = fun(x => { x(undefined); return x; }, 10); >fun(x => { x(undefined); return x; }, 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -74,21 +74,21 @@ var b = fun((x => { x(undefined); return x; }), 10); >fun((x => { x(undefined); return x; }), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -98,23 +98,23 @@ var c = fun(((x => { x(undefined); return x; })), 10); >fun(((x => { x(undefined); return x; })), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -124,25 +124,25 @@ var d = fun((((x => { x(undefined); return x; }))), 10); >fun((((x => { x(undefined); return x; }))), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(((x => { x(undefined); return x; }))) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -152,31 +152,31 @@ var e = fun(x => { x(undefined); return x; }, x => { x(undefined >fun(x => { x(undefined); return x; }, x => { x(undefined); return x; }, 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -186,35 +186,35 @@ var f = fun((x => { x(undefined); return x; }),(x => { x(undefin >fun((x => { x(undefined); return x; }),(x => { x(undefined); return x; }), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -224,39 +224,39 @@ var g = fun(((x => { x(undefined); return x; })),((x => { x(unde >fun(((x => { x(undefined); return x; })),((x => { x(undefined); return x; })), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -266,41 +266,41 @@ var h = fun((((x => { x(undefined); return x; }))),((x => { x(un >fun((((x => { x(undefined); return x; }))),((x => { x(undefined); return x; })), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(((x => { x(undefined); return x; }))) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -311,11 +311,11 @@ var i = fun((Math.random() < 0.5 ? x => { x(undefined); return x; } : x >fun((Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 ? x => { x(undefined); return x; } : x => undefined : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 : boolean > : ^^^^^^^ >Math.random() : number @@ -329,21 +329,21 @@ var i = fun((Math.random() < 0.5 ? x => { x(undefined); return x; } : x >0.5 : 0.5 > : ^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => undefined : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -355,11 +355,11 @@ var j = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : >fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 : boolean > : ^^^^^^^ >Math.random() : number @@ -373,25 +373,25 @@ var j = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : >0.5 : 0.5 > : ^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x => undefined) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x => undefined : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -403,11 +403,11 @@ var k = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : >fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)), x => { x(undefined); return x; }, 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >(Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined)) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 ? (x => { x(undefined); return x; }) : (x => undefined) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 : boolean > : ^^^^^^^ >Math.random() : number @@ -421,39 +421,39 @@ var k = fun((Math.random() < 0.5 ? (x => { x(undefined); return x; }) : >0.5 : 0.5 > : ^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x => undefined) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x => undefined : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -463,13 +463,13 @@ var l = fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) >fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)))),((x => { x(undefined); return x; })), 10) : 10 > : ^^ >fun : { (f: FuncType, x: T): T; (f: FuncType, g: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)))) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >(Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined))) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 ? ((x => { x(undefined); return x; })) : ((x => undefined)) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >Math.random() < 0.5 : boolean > : ^^^^^^^ >Math.random() : number @@ -483,47 +483,47 @@ var l = fun(((Math.random() < 0.5 ? ((x => { x(undefined); return x; })) >0.5 : 0.5 > : ^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >((x => undefined)) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >(x => undefined) : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x => undefined : (x: (p: T) => T) => any -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >((x => { x(undefined); return x; })) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -531,35 +531,35 @@ var lambda1: FuncType = x => { x(undefined); return x; }; >lambda1 : FuncType > : ^^^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var lambda2: FuncType = (x => { x(undefined); return x; }); >lambda2 : FuncType > : ^^^^^^^^ >(x => { x(undefined); return x; }) : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type ObjType = { x: (p: number) => string; y: (p: string) => number }; >ObjType : ObjType diff --git a/tests/baselines/reference/parenthesizedContexualTyping3.types b/tests/baselines/reference/parenthesizedContexualTyping3.types index e3768cf3417ba..922a1ec7800e8 100644 --- a/tests/baselines/reference/parenthesizedContexualTyping3.types +++ b/tests/baselines/reference/parenthesizedContexualTyping3.types @@ -8,7 +8,7 @@ */ function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T_1) => T_1, h: (y: T_1) => T_1, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >tempStrs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >g : (x: T) => T @@ -20,7 +20,7 @@ function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T_1) => T_1, x: T_1): T_1; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >tempStrs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >g : (x: T) => T @@ -36,7 +36,7 @@ function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => function tempFun(tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T { >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T_1) => T_1, x: T_1): T_1; (tempStrs: TemplateStringsArray, g: (x: T_1) => T_1, h: (y: T_1) => T_1, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >tempStrs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >g : (x: T) => T @@ -61,7 +61,7 @@ var a = tempFun `${ x => x } ${ 10 }` >tempFun `${ x => x } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => x } ${ 10 }` : string > : ^^^^^^ >x => x : (x: number) => number @@ -79,7 +79,7 @@ var b = tempFun `${ (x => x) } ${ 10 }` >tempFun `${ (x => x) } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ (x => x) } ${ 10 }` : string > : ^^^^^^ >(x => x) : (x: number) => number @@ -99,7 +99,7 @@ var c = tempFun `${ ((x => x)) } ${ 10 }` >tempFun `${ ((x => x)) } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ ((x => x)) } ${ 10 }` : string > : ^^^^^^ >((x => x)) : (x: number) => number @@ -121,7 +121,7 @@ var d = tempFun `${ x => x } ${ x => x } ${ 10 }` >tempFun `${ x => x } ${ x => x } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => x } ${ x => x } ${ 10 }` : string > : ^^^^^^ >x => x : (x: number) => number @@ -145,7 +145,7 @@ var e = tempFun `${ x => x } ${ (x => x) } ${ 10 }` >tempFun `${ x => x } ${ (x => x) } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => x } ${ (x => x) } ${ 10 }` : string > : ^^^^^^ >x => x : (x: number) => number @@ -171,7 +171,7 @@ var f = tempFun `${ x => x } ${ ((x => x)) } ${ 10 }` >tempFun `${ x => x } ${ ((x => x)) } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => x } ${ ((x => x)) } ${ 10 }` : string > : ^^^^^^ >x => x : (x: number) => number @@ -199,7 +199,7 @@ var g = tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }` >tempFun `${ (x => x) } ${ (((x => x))) } ${ 10 }` : number > : ^^^^^^ >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ (x => x) } ${ (((x => x))) } ${ 10 }` : string > : ^^^^^^ >(x => x) : (x: number) => number @@ -229,7 +229,7 @@ var h = tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` >h : any >tempFun `${ (x => x) } ${ (((x => x))) } ${ undefined }` : any >tempFun : { (tempStrs: TemplateStringsArray, g: (x: T) => T, x: T): T; (tempStrs: TemplateStringsArray, g: (x: T) => T, h: (y: T) => T, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ (x => x) } ${ (((x => x))) } ${ undefined }` : string > : ^^^^^^ >(x => x) : (x: any) => any diff --git a/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types b/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types index c4836b5981740..1eabf769939bf 100644 --- a/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types +++ b/tests/baselines/reference/parenthesizedJSDocCastAtReturnStatement.types @@ -32,11 +32,11 @@ const getStringGetter = (key) => { >cache.get(key) : string | Set | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >cache.get : (key: string) => (string | Set) | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >cache : Map> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : (key: string) => (string | Set) | undefined -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >key : string > : ^^^^^^ } diff --git a/tests/baselines/reference/parseArrowFunctionWithFunctionReturnType.types b/tests/baselines/reference/parseArrowFunctionWithFunctionReturnType.types index 5a6dbb461a506..791f823b3df8a 100644 --- a/tests/baselines/reference/parseArrowFunctionWithFunctionReturnType.types +++ b/tests/baselines/reference/parseArrowFunctionWithFunctionReturnType.types @@ -3,8 +3,8 @@ === parseArrowFunctionWithFunctionReturnType.ts === const fn = (): (() => T) => null as any; >fn : () => (() => T) -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >(): (() => T) => null as any : () => (() => T) -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >null as any : any diff --git a/tests/baselines/reference/parseGenericArrowRatherThanLeftShift.types b/tests/baselines/reference/parseGenericArrowRatherThanLeftShift.types index c973125f6f00e..3e92c0c05a026 100644 --- a/tests/baselines/reference/parseGenericArrowRatherThanLeftShift.types +++ b/tests/baselines/reference/parseGenericArrowRatherThanLeftShift.types @@ -13,7 +13,7 @@ declare const a: Bar; function foo(_x: T) {} >foo : (_x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >_x : T > : ^ @@ -23,7 +23,7 @@ const b = foo<(x: T) => number>(() => 1); >foo<(x: T) => number>(() => 1) : void > : ^^^^ >foo : (_x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ >() => 1 : () => number diff --git a/tests/baselines/reference/parseInvalidNullableTypes.types b/tests/baselines/reference/parseInvalidNullableTypes.types index 0aa8603d22012..87b94a22ae184 100644 --- a/tests/baselines/reference/parseInvalidNullableTypes.types +++ b/tests/baselines/reference/parseInvalidNullableTypes.types @@ -3,7 +3,7 @@ === parseInvalidNullableTypes.ts === function f1(a: string): a is ?string { >f1 : (a: string) => a is string | null -> : ^ ^^ ^^^^^ ^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^ >a : string > : ^^^^^^ @@ -14,31 +14,31 @@ function f1(a: string): a is ?string { function f2(a: string?) {} >f2 : (a: string | null) => void -> : ^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^ >a : string | null > : ^^^^^^^^^^^^^ function f3(a: number?) {} >f3 : (a: number | null) => void -> : ^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^ >a : number | null > : ^^^^^^^^^^^^^ function f4(a: ?string) {} >f4 : (a: string | null) => void -> : ^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^ >a : string | null > : ^^^^^^^^^^^^^ function f5(a: ?number) {} >f5 : (a: number | null) => void -> : ^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^^^ >a : number | null > : ^^^^^^^^^^^^^ function f6(a: string): ?string { >f6 : (a: string) => string | null -> : ^ ^^ ^^^^^ ^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^ >a : string > : ^^^^^^ diff --git a/tests/baselines/reference/parserGenericsInInterfaceDeclaration1.types b/tests/baselines/reference/parserGenericsInInterfaceDeclaration1.types index df493c886f834..c2f5e51c43e88 100644 --- a/tests/baselines/reference/parserGenericsInInterfaceDeclaration1.types +++ b/tests/baselines/reference/parserGenericsInInterfaceDeclaration1.types @@ -8,11 +8,11 @@ interface I { f1(): T; >f1 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ f2?(): T; >f2 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ (): void; new (): void; diff --git a/tests/baselines/reference/parserOverloadOnConstants1.types b/tests/baselines/reference/parserOverloadOnConstants1.types index 72d6b1b2091bd..4d9f9549ef817 100644 --- a/tests/baselines/reference/parserOverloadOnConstants1.types +++ b/tests/baselines/reference/parserOverloadOnConstants1.types @@ -4,25 +4,25 @@ interface Document { createElement(tagName: string): HTMLElement; >createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >tagName : string > : ^^^^^^ createElement(tagName: 'canvas'): HTMLCanvasElement; >createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >tagName : "canvas" > : ^^^^^^^^ createElement(tagName: 'div'): HTMLDivElement; >createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >tagName : "div" > : ^^^^^ createElement(tagName: 'span'): HTMLSpanElement; >createElement : { (tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; (tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; (tagName: string, options?: ElementCreationOptions): HTMLElement; (tagName: string): HTMLElement; (tagName: "canvas"): HTMLCanvasElement; (tagName: "div"): HTMLDivElement; (tagName: "span"): HTMLSpanElement; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >tagName : "span" > : ^^^^^^ } diff --git a/tests/baselines/reference/parserRealSource4.types b/tests/baselines/reference/parserRealSource4.types index b17459e9e063b..c65c6fd6c41c3 100644 --- a/tests/baselines/reference/parserRealSource4.types +++ b/tests/baselines/reference/parserRealSource4.types @@ -666,7 +666,7 @@ module TypeScript { >this.primaryTable.getAllKeys().concat(this.secondaryTable.getAllKeys()) : string[] > : ^^^^^^^^ >this.primaryTable.getAllKeys().concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >this.primaryTable.getAllKeys() : string[] > : ^^^^^^^^ >this.primaryTable.getAllKeys : () => string[] @@ -680,7 +680,7 @@ module TypeScript { >getAllKeys : () => string[] > : ^^^^^^ >concat : { (...items: ConcatArray[]): string[]; (...items: (string | ConcatArray)[]): string[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >this.secondaryTable.getAllKeys() : string[] > : ^^^^^^^^ >this.secondaryTable.getAllKeys : () => string[] diff --git a/tests/baselines/reference/parserUsingConstructorAsIdentifier.types b/tests/baselines/reference/parserUsingConstructorAsIdentifier.types index 32bfd70a43e5a..c86118e43dd69 100644 --- a/tests/baselines/reference/parserUsingConstructorAsIdentifier.types +++ b/tests/baselines/reference/parserUsingConstructorAsIdentifier.types @@ -154,11 +154,11 @@ >Object.defineProperty(constructor.prototype, "constructor", { value: constructor, writable: true, configurable: true, enumerable: true }) : any > : ^^^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >constructor.prototype : any > : ^^^ >constructor : any diff --git a/tests/baselines/reference/parserharness.types b/tests/baselines/reference/parserharness.types index da5fe14851731..6e44d7db429d8 100644 --- a/tests/baselines/reference/parserharness.types +++ b/tests/baselines/reference/parserharness.types @@ -109,11 +109,11 @@ function filePath(fullPath: string) { >components.slice(0, components.length - 1) : string[] > : ^^^^^^^^ >components.slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >components : string[] > : ^^^^^^^^ >slice : (start?: number, end?: number) => string[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ >0 : 0 > : ^ >components.length - 1 : number @@ -7920,11 +7920,11 @@ module Harness { >lines.concat(v.file.lines) : any[] > : ^^^^^ >lines.concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >lines : any[] > : ^^^^^ >concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >v.file.lines : string[] > : ^^^^^^^^ >v.file : WriterAggregator @@ -10578,7 +10578,7 @@ module Harness { >this.editRanges.splice(0, this.maxScriptVersions - this.editRanges.length) : { length: number; editRange: TypeScript.ScriptEditRange; }[] > : ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^ >this.editRanges.splice : { (start: number, deleteCount?: number): { length: number; editRange: TypeScript.ScriptEditRange; }[]; (start: number, deleteCount: number, ...items: { length: number; editRange: TypeScript.ScriptEditRange; }[]): { length: number; editRange: TypeScript.ScriptEditRange; }[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^ ^^^^^^^^^^^ ^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^ ^^^^^^^^^^^ ^ ^^^ >this.editRanges : { length: number; editRange: TypeScript.ScriptEditRange; }[] > : ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^ >this : this @@ -10586,7 +10586,7 @@ module Harness { >editRanges : { length: number; editRange: TypeScript.ScriptEditRange; }[] > : ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^ >splice : { (start: number, deleteCount?: number): { length: number; editRange: TypeScript.ScriptEditRange; }[]; (start: number, deleteCount: number, ...items: { length: number; editRange: TypeScript.ScriptEditRange; }[]): { length: number; editRange: TypeScript.ScriptEditRange; }[]; } -> : ^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^ ^^^^^^^^^^^ ^ ^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^ ^^^^^^^^^^^ ^ ^^^ >0 : 0 > : ^ >this.maxScriptVersions - this.editRanges.length : number @@ -10719,7 +10719,7 @@ module Harness { >this.editRanges.slice(initialEditRangeIndex) : { length: number; editRange: TypeScript.ScriptEditRange; }[] > : ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^ >this.editRanges.slice : (start?: number, end?: number) => { length: number; editRange: TypeScript.ScriptEditRange; }[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^ ^ ^^^^^^^^^^^ ^ >this.editRanges : { length: number; editRange: TypeScript.ScriptEditRange; }[] > : ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^ >this : this @@ -10727,7 +10727,7 @@ module Harness { >editRanges : { length: number; editRange: TypeScript.ScriptEditRange; }[] > : ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^ >slice : (start?: number, end?: number) => { length: number; editRange: TypeScript.ScriptEditRange; }[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^ ^^^^^^^^ ^ ^^^^^^^^^^^ ^ >initialEditRangeIndex : number > : ^^^^^^ @@ -10737,7 +10737,7 @@ module Harness { >entries.map(x => x.editRange.minChar).reduce((prev, current) => Math.min(prev, current)) : any > : ^^^ >entries.map(x => x.editRange.minChar).reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >entries.map(x => x.editRange.minChar) : any[] > : ^^^^^ >entries.map : (callbackfn: (value: { length: number; editRange: TypeScript.ScriptEditRange; }, index: number, array: { length: number; editRange: TypeScript.ScriptEditRange; }[]) => U, thisArg?: any) => U[] @@ -10761,7 +10761,7 @@ module Harness { >minChar : any > : ^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(prev, current) => Math.min(prev, current) : (prev: any, current: any) => number > : ^ ^^^^^^^ ^^^^^^^^^^^^^^^^ >prev : any @@ -10787,7 +10787,7 @@ module Harness { >entries.map(x => x.length - x.editRange.limChar).reduce((prev, current) => Math.min(prev, current)) : number > : ^^^^^^ >entries.map(x => x.length - x.editRange.limChar).reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >entries.map(x => x.length - x.editRange.limChar) : number[] > : ^^^^^^^^ >entries.map : (callbackfn: (value: { length: number; editRange: TypeScript.ScriptEditRange; }, index: number, array: { length: number; editRange: TypeScript.ScriptEditRange; }[]) => U, thisArg?: any) => U[] @@ -10819,7 +10819,7 @@ module Harness { >limChar : any > : ^^^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(prev, current) => Math.min(prev, current) : (prev: number, current: number) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >prev : number @@ -10845,7 +10845,7 @@ module Harness { >entries.map(x => x.editRange.delta).reduce((prev, current) => prev + current) : any > : ^^^ >entries.map(x => x.editRange.delta).reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >entries.map(x => x.editRange.delta) : any[] > : ^^^^^ >entries.map : (callbackfn: (value: { length: number; editRange: TypeScript.ScriptEditRange; }, index: number, array: { length: number; editRange: TypeScript.ScriptEditRange; }[]) => U, thisArg?: any) => U[] @@ -10869,7 +10869,7 @@ module Harness { >delta : any > : ^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(prev, current) => prev + current : (prev: any, current: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >prev : any @@ -12283,7 +12283,7 @@ module Harness { >mapEdits(edits).sort(function (a, b) { var result = a.edit.minChar - b.edit.minChar; if (result == 0) result = a.index - b.index; return result; }) : { edit: Services.TextEdit; index: number; }[] > : ^^^^^^^^ ^^^^^^^^^ ^^^^^ >mapEdits(edits).sort : (compareFn?: (a: { edit: Services.TextEdit; index: number; }, b: { edit: Services.TextEdit; index: number; }) => number) => { edit: Services.TextEdit; index: number; }[] -> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ +> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ >mapEdits(edits) : { edit: Services.TextEdit; index: number; }[] > : ^^^^^^^^ ^^^^^^^^^ ^^^^^ >mapEdits : (edits: Services.TextEdit[]) => { edit: Services.TextEdit; index: number; }[] @@ -12291,7 +12291,7 @@ module Harness { >edits : Services.TextEdit[] > : ^^^^^^^^^^^^^^^^^^^ >sort : (compareFn?: (a: { edit: Services.TextEdit; index: number; }, b: { edit: Services.TextEdit; index: number; }) => number) => { edit: Services.TextEdit; index: number; }[] -> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ +> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ >function (a, b) { var result = a.edit.minChar - b.edit.minChar; if (result == 0) result = a.index - b.index; return result; } : (a: { edit: Services.TextEdit; index: number; }, b: { edit: Services.TextEdit; index: number; }) => number > : ^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^ >a : { edit: Services.TextEdit; index: number; } diff --git a/tests/baselines/reference/partiallyAnnotatedFunctionInferenceError.types b/tests/baselines/reference/partiallyAnnotatedFunctionInferenceError.types index cca446c5b1fe9..fdb9ccf6ce3e6 100644 --- a/tests/baselines/reference/partiallyAnnotatedFunctionInferenceError.types +++ b/tests/baselines/reference/partiallyAnnotatedFunctionInferenceError.types @@ -23,7 +23,7 @@ class D extends C { declare function testError(a: (t: T, t1: T) => void): T >testError : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : (t: T, t1: T) => void > : ^ ^^ ^^ ^^ ^^^^^ >t : T @@ -36,7 +36,7 @@ testError((t1: D, t2, t3) => {}) >testError((t1: D, t2, t3) => {}) : C > : ^ >testError : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1: D, t2, t3) => {} : (t1: D, t2: any, t3: any) => void > : ^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^ >t1 : D @@ -50,7 +50,7 @@ testError((t1, t2: D, t3) => {}) >testError((t1, t2: D, t3) => {}) : C > : ^ >testError : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1, t2: D, t3) => {} : (t1: any, t2: D, t3: any) => void > : ^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >t1 : any @@ -64,7 +64,7 @@ testError((t1, t2, t3: D) => {}) >testError((t1, t2, t3: D) => {}) : C > : ^ >testError : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1, t2, t3: D) => {} : (t1: any, t2: any, t3: D) => void > : ^ ^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^ >t1 : any diff --git a/tests/baselines/reference/partiallyAnnotatedFunctionInferenceWithTypeParameter.types b/tests/baselines/reference/partiallyAnnotatedFunctionInferenceWithTypeParameter.types index 080f03a265b67..0bc7809f746f5 100644 --- a/tests/baselines/reference/partiallyAnnotatedFunctionInferenceWithTypeParameter.types +++ b/tests/baselines/reference/partiallyAnnotatedFunctionInferenceWithTypeParameter.types @@ -23,7 +23,7 @@ class D extends C { declare function test(a: (t: T, t1: T) => void): T >test : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : (t: T, t1: T) => void > : ^ ^^ ^^ ^^ ^^^^^ >t : T @@ -33,7 +33,7 @@ declare function test(a: (t: T, t1: T) => void): T declare function testRest(a: (t: T, t1: T, ...ts: T[]) => void): T >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : (t: T, t1: T, ...ts: T[]) => void > : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >t : T @@ -49,7 +49,7 @@ test((t1: D, t2) => { t2.test2 }) >test((t1: D, t2) => { t2.test2 }) : D > : ^ >test : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1: D, t2) => { t2.test2 } : (t1: D, t2: D) => void > : ^ ^^ ^^ ^^^^^^^^^^^^ >t1 : D @@ -67,7 +67,7 @@ test((t1, t2: D) => { t2.test2 }) >test((t1, t2: D) => { t2.test2 }) : D > : ^ >test : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1, t2: D) => { t2.test2 } : (t1: D, t2: D) => void > : ^ ^^^^^ ^^ ^^^^^^^^^ >t1 : D @@ -86,7 +86,7 @@ test(() => {}) >test(() => {}) : C > : ^ >test : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >() => {} : () => void > : ^^^^^^^^^^ @@ -95,7 +95,7 @@ test((t1: D) => {}) >test((t1: D) => {}) : D > : ^ >test : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1: D) => {} : (t1: D) => void > : ^ ^^ ^^^^^^^^^ >t1 : D @@ -106,7 +106,7 @@ test((...ts: D[]) => {}) >test((...ts: D[]) => {}) : D > : ^ >test : (a: (t: T, t1: T) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(...ts: D[]) => {} : (...ts: D[]) => void > : ^^^^ ^^ ^^^^^^^^^ >ts : D[] @@ -117,7 +117,7 @@ testRest((t1: D) => {}) >testRest((t1: D) => {}) : D > : ^ >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1: D) => {} : (t1: D) => void > : ^ ^^ ^^^^^^^^^ >t1 : D @@ -127,7 +127,7 @@ testRest((t1, t2, t3) => {}) >testRest((t1, t2, t3) => {}) : C > : ^ >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1, t2, t3) => {} : (t1: C, t2: C, t3: C) => void > : ^ ^^^^^ ^^^^^ ^^^^^^^^^^^^ >t1 : C @@ -141,7 +141,7 @@ testRest((t1: D, t2, t3) => {}) >testRest((t1: D, t2, t3) => {}) : D > : ^ >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1: D, t2, t3) => {} : (t1: D, t2: D, t3: D) => void > : ^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ >t1 : D @@ -155,7 +155,7 @@ testRest((t1, t2: D, t3) => {}) >testRest((t1, t2: D, t3) => {}) : D > : ^ >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t1, t2: D, t3) => {} : (t1: D, t2: D, t3: D) => void > : ^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^ >t1 : D @@ -169,7 +169,7 @@ testRest((t2: D, ...t3) => {}) >testRest((t2: D, ...t3) => {}) : D > : ^ >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t2: D, ...t3) => {} : (t2: D, t1: D, ...ts: D[]) => void > : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >t2 : D @@ -181,7 +181,7 @@ testRest((t2, ...t3: D[]) => {}) >testRest((t2, ...t3: D[]) => {}) : C > : ^ >testRest : (a: (t: T, t1: T, ...ts: T[]) => void) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(t2, ...t3: D[]) => {} : (t2: C, ...t3: D[]) => void > : ^ ^^^^^^^^ ^^ ^^^^^^^^^ >t2 : C diff --git a/tests/baselines/reference/partiallyNamedTuples.types b/tests/baselines/reference/partiallyNamedTuples.types index 7ae1941bb52cf..6d25f4931cfcf 100644 --- a/tests/baselines/reference/partiallyNamedTuples.types +++ b/tests/baselines/reference/partiallyNamedTuples.types @@ -119,11 +119,11 @@ type AddMixedConditionalNumberPrimitive = AddMixedConditional; declare function test( >test : (arg: [...{ [K in keyof T]: { type: T[K]; }; }]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ arg: [ >arg : [...{ [K in keyof T]: { type: T[K]; }; }] -> : ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ...{ [K in keyof T]: { @@ -150,7 +150,7 @@ const output = test(input); >test(input) : [first: number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^ >test : (arg: [...{ [K in keyof T]: { type: T[K]; }; }]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >input : [first: { type: number; }, { type: string; }] > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^ diff --git a/tests/baselines/reference/partiallyNamedTuples2.types b/tests/baselines/reference/partiallyNamedTuples2.types index e651a06bebac4..f912b4ef3529a 100644 --- a/tests/baselines/reference/partiallyNamedTuples2.types +++ b/tests/baselines/reference/partiallyNamedTuples2.types @@ -5,7 +5,7 @@ interface MultiKeyMap { get>(...key: Key): GetResult; >get : >(...key: Key) => GetResult -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >key : Key > : ^^^ } @@ -50,11 +50,11 @@ const matches = x.get(id1); >x.get(id1) : Iterable<[id2: string, object]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x.get : (...key: Key) => GetResult<[id1: string, id2: string], Key, object> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ >x : MultiKeyMap<[id1: string, id2: string], object> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : (...key: Key) => GetResult<[id1: string, id2: string], Key, object> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ >id1 : string > : ^^^^^^ diff --git a/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types b/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types index c3cee6bbd921f..a40291e611922 100644 --- a/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types +++ b/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types @@ -22,7 +22,7 @@ export interface InterfaceA { map(callback: (value: T) => D): InterfaceA; >map : (callback: (value: T) => D) => InterfaceA -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (value: T) => D > : ^ ^^ ^^^^^ >value : T @@ -30,53 +30,53 @@ export interface InterfaceA { await>(): InterfaceA; >await : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitLatest>(): InterfaceA; >awaitLatest : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered>(): InterfaceA; >awaitOrdered : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered2>(): InterfaceA; >awaitOrdered2 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered3>(): InterfaceA; >awaitOrdered3 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered4>(): InterfaceA; >awaitOrdered4 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered5>(): InterfaceA; >awaitOrdered5 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered6>(): InterfaceA; >awaitOrdered6 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered7>(): InterfaceA; >awaitOrdered7 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered8>(): InterfaceA; >awaitOrdered8 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered9>(): InterfaceA; >awaitOrdered9 : >() => InterfaceA -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export interface InterfaceB extends InterfaceA { map(callback: (value: T) => D): InterfaceB; >map : (callback: (value: T) => D) => InterfaceB -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (value: T) => D > : ^ ^^ ^^^^^ >value : T @@ -84,47 +84,47 @@ export interface InterfaceB extends InterfaceA { await>(): InterfaceB; >await : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitLatest>(): InterfaceB; >awaitLatest : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered>(): InterfaceB; >awaitOrdered : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered2>(): InterfaceB; >awaitOrdered2 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered3>(): InterfaceB; >awaitOrdered3 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered4>(): InterfaceB; >awaitOrdered4 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered5>(): InterfaceB; >awaitOrdered5 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered6>(): InterfaceB; >awaitOrdered6 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered7>(): InterfaceB; >awaitOrdered7 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered8>(): InterfaceB; >awaitOrdered8 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ awaitOrdered9>(): InterfaceB; >awaitOrdered9 : >() => InterfaceB -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export class A implements InterfaceB { @@ -149,7 +149,7 @@ export class A implements InterfaceB { public map(callback: (value: T) => D): B { >map : (callback: (value: T) => D) => B -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (value: T) => D > : ^ ^^ ^^^^^ >value : T @@ -163,7 +163,7 @@ export class A implements InterfaceB { public await>(): B { >await : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -173,7 +173,7 @@ export class A implements InterfaceB { public awaitOrdered>(): B { >awaitOrdered : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -183,7 +183,7 @@ export class A implements InterfaceB { public awaitOrdered2>(): B { >awaitOrdered2 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -193,7 +193,7 @@ export class A implements InterfaceB { public awaitOrdered3>(): B { >awaitOrdered3 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -203,7 +203,7 @@ export class A implements InterfaceB { public awaitOrdered4>(): B { >awaitOrdered4 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -213,7 +213,7 @@ export class A implements InterfaceB { public awaitOrdered5>(): B { >awaitOrdered5 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -223,7 +223,7 @@ export class A implements InterfaceB { public awaitOrdered6>(): B { >awaitOrdered6 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -233,7 +233,7 @@ export class A implements InterfaceB { public awaitOrdered7>(): B { >awaitOrdered7 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -243,7 +243,7 @@ export class A implements InterfaceB { public awaitOrdered8>(): B { >awaitOrdered8 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -253,7 +253,7 @@ export class A implements InterfaceB { public awaitOrdered9>(): B { >awaitOrdered9 : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any @@ -263,7 +263,7 @@ export class A implements InterfaceB { public awaitLatest>(): B { >awaitLatest : >() => B -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ return undefined as any; >undefined as any : any diff --git a/tests/baselines/reference/primitiveConstraints1.types b/tests/baselines/reference/primitiveConstraints1.types index 2759a2ea0e4c7..3d48cd8d054e6 100644 --- a/tests/baselines/reference/primitiveConstraints1.types +++ b/tests/baselines/reference/primitiveConstraints1.types @@ -3,7 +3,7 @@ === primitiveConstraints1.ts === function foo1(t: T, u: U) { } >foo1 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -13,7 +13,7 @@ foo1('hm', 1); // no error >foo1('hm', 1) : void > : ^^^^ >foo1 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'hm' : "hm" > : ^^^^ >1 : 1 @@ -21,7 +21,7 @@ foo1('hm', 1); // no error function foo2(t: T, u: U) { } >foo2 : (t: T, u: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -31,7 +31,7 @@ foo2(1, 'hm'); // error >foo2(1, 'hm') : void > : ^^^^ >foo2 : (t: T, u: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >'hm' : "hm" diff --git a/tests/baselines/reference/primitiveConstraints2.types b/tests/baselines/reference/primitiveConstraints2.types index a07c4848c5301..5bad47a68eb1b 100644 --- a/tests/baselines/reference/primitiveConstraints2.types +++ b/tests/baselines/reference/primitiveConstraints2.types @@ -7,7 +7,7 @@ class C { public bar2(x: T, y: U): T { >bar2 : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -29,11 +29,11 @@ x.bar2(2, ""); // should error >x.bar2(2, "") : number > : ^^^^^^ >x.bar2 : (x: number, y: U) => number -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ >x : C > : ^^^^^^^^^ >bar2 : (x: number, y: U) => number -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ >2 : 2 > : ^ >"" : "" @@ -43,11 +43,11 @@ x.bar2(2, ""); // should error >x.bar2(2, "") : number > : ^^^^^^ >x.bar2 : (x: number, y: U) => number -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ >x : C > : ^^^^^^^^^ >bar2 : (x: number, y: U) => number -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ >2 : 2 > : ^ >"" : "" diff --git a/tests/baselines/reference/primitiveUnionDetection.types b/tests/baselines/reference/primitiveUnionDetection.types index 7619f8e94f5ce..e4ab78981a026 100644 --- a/tests/baselines/reference/primitiveUnionDetection.types +++ b/tests/baselines/reference/primitiveUnionDetection.types @@ -9,7 +9,7 @@ type Kind = "one" | "two" | "three"; declare function getInterfaceFromString(options?: { type?: T } & { type?: Kind }): T; >getInterfaceFromString : (options?: { type?: T; } & { type?: Kind; }) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >options : ({ type?: T; } & { type?: Kind; }) | undefined > : ^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ >type : T | undefined @@ -23,7 +23,7 @@ const result = getInterfaceFromString({ type: 'two' }); >getInterfaceFromString({ type: 'two' }) : "two" > : ^^^^^ >getInterfaceFromString : (options?: { type?: T; } & { type?: Kind; }) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >{ type: 'two' } : { type: "two"; } > : ^^^^^^^^^^^^^^^^ >type : "two" diff --git a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.types b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.types index 121e9703964c8..53fb38a3ae1ef 100644 --- a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.types +++ b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter.types @@ -16,7 +16,7 @@ module Query { export function fromDoWhile(doWhile: (test: Iterator) => boolean): Iterator { >fromDoWhile : (doWhile: (test: Iterator) => boolean) => Iterator -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >doWhile : (test: Iterator) => boolean > : ^ ^^ ^^^^^ >test : Iterator @@ -33,7 +33,7 @@ module Query { >fromDoWhile(test => { return true; }) : Iterator > : ^^^^^^^^^^^^^^^^^ >fromDoWhile : (doWhile: (test: Iterator) => boolean) => Iterator -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >test => { return true; } : (test: Iterator) => true > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : Iterator diff --git a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.types b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.types index 015287208343b..31aaac7d175be 100644 --- a/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.types +++ b/tests/baselines/reference/privacyCheckAnonymousFunctionParameter2.types @@ -17,7 +17,7 @@ module Q { export function foo(x: (a: Iterator) => number) { >foo : (x: (a: Iterator) => number) => (a: Iterator) => number -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (a: Iterator) => number > : ^ ^^ ^^^^^ >a : Iterator @@ -41,6 +41,6 @@ module Q { >foo(null) : (a: Iterator) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: (a: Iterator) => number) => (a: Iterator) => number -> : ^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^^ ^^ ^^^^^ } } diff --git a/tests/baselines/reference/privateNameEmitHelpers.types b/tests/baselines/reference/privateNameEmitHelpers.types index 69f0d4f6a284d..3d55f10651e9b 100644 --- a/tests/baselines/reference/privateNameEmitHelpers.types +++ b/tests/baselines/reference/privateNameEmitHelpers.types @@ -42,7 +42,7 @@ export class C { // these are pre-TS4.3 versions of emit helpers, which only supported private instance fields export declare function __classPrivateFieldGet(receiver: T, state: any): V; >__classPrivateFieldGet : (receiver: T, state: any) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >receiver : T > : ^ >state : any @@ -50,7 +50,7 @@ export declare function __classPrivateFieldGet(receiver: T, export declare function __classPrivateFieldSet(receiver: T, state: any, value: V): V; >__classPrivateFieldSet : (receiver: T, state: any, value: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >receiver : T > : ^ >state : any diff --git a/tests/baselines/reference/privateNameMethodAsync.types b/tests/baselines/reference/privateNameMethodAsync.types index f5a0abeb3a06e..9ffb15225167c 100644 --- a/tests/baselines/reference/privateNameMethodAsync.types +++ b/tests/baselines/reference/privateNameMethodAsync.types @@ -15,11 +15,11 @@ const C = class { >Promise.resolve(42) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >42 : 42 > : ^^ @@ -55,7 +55,7 @@ const C = class { >this.#baz().next() : IteratorResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#baz().next : (...args: [] | [unknown]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >this.#baz() : Generator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#baz : () => Generator @@ -63,7 +63,7 @@ const C = class { >this : this > : ^^^^ >next : (...args: [] | [unknown]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >value : number | void > : ^^^^^^^^^^^^^ >0 : 0 @@ -81,7 +81,7 @@ const C = class { >this.#qux().next() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#qux().next : (...args: [] | [unknown]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >this.#qux() : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#qux : () => AsyncGenerator @@ -89,7 +89,7 @@ const C = class { >this : this > : ^^^^ >next : (...args: [] | [unknown]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >value : number | void > : ^^^^^^^^^^^^^ >0 : 0 @@ -115,11 +115,11 @@ const C = class { >Promise.resolve(42) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >42 : 42 > : ^^ } diff --git a/tests/baselines/reference/privateNameStaticEmitHelpers.types b/tests/baselines/reference/privateNameStaticEmitHelpers.types index 2cf321bb0a728..5081dfa5a577e 100644 --- a/tests/baselines/reference/privateNameStaticEmitHelpers.types +++ b/tests/baselines/reference/privateNameStaticEmitHelpers.types @@ -38,7 +38,7 @@ export class S { // these are pre-TS4.3 versions of emit helpers, which only supported private instance fields export declare function __classPrivateFieldGet(receiver: T, state: any): V; >__classPrivateFieldGet : (receiver: T, state: any) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >receiver : T > : ^ >state : any @@ -46,7 +46,7 @@ export declare function __classPrivateFieldGet(receiver: T, export declare function __classPrivateFieldSet(receiver: T, state: any, value: V): V; >__classPrivateFieldSet : (receiver: T, state: any, value: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >receiver : T > : ^ >state : any diff --git a/tests/baselines/reference/privateNameStaticMethodAsync.types b/tests/baselines/reference/privateNameStaticMethodAsync.types index 1a1205a51ddd7..b48b77545dd88 100644 --- a/tests/baselines/reference/privateNameStaticMethodAsync.types +++ b/tests/baselines/reference/privateNameStaticMethodAsync.types @@ -15,11 +15,11 @@ const C = class { >Promise.resolve(42) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >42 : 42 > : ^^ @@ -55,7 +55,7 @@ const C = class { >this.#baz().next() : IteratorResult > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#baz().next : (...args: [] | [unknown]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >this.#baz() : Generator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#baz : () => Generator @@ -63,7 +63,7 @@ const C = class { >this : typeof C > : ^^^^^^^^ >next : (...args: [] | [unknown]) => IteratorResult -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >value : number | void > : ^^^^^^^^^^^^^ >0 : 0 @@ -81,7 +81,7 @@ const C = class { >this.#qux().next() : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#qux().next : (...args: [] | [unknown]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >this.#qux() : AsyncGenerator > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.#qux : () => AsyncGenerator @@ -89,7 +89,7 @@ const C = class { >this : typeof C > : ^^^^^^^^ >next : (...args: [] | [unknown]) => Promise> -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >value : number | void > : ^^^^^^^^^^^^^ >0 : 0 @@ -117,11 +117,11 @@ const C = class { >Promise.resolve(42) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >42 : 42 > : ^^ } diff --git a/tests/baselines/reference/privateNamesAndDecorators.types b/tests/baselines/reference/privateNamesAndDecorators.types index 426d2f0a53863..177ed2bb39590 100644 --- a/tests/baselines/reference/privateNamesAndDecorators.types +++ b/tests/baselines/reference/privateNamesAndDecorators.types @@ -3,7 +3,7 @@ === privateNamesAndDecorators.ts === declare function dec(target: T): T; >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >target : T > : ^ @@ -13,7 +13,7 @@ class A { @dec // Error >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ #foo = 1; >#foo : number @@ -23,7 +23,7 @@ class A { @dec // Error >dec : (target: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ #bar(): void { } >#bar : () => void diff --git a/tests/baselines/reference/privateNamesInGenericClasses.types b/tests/baselines/reference/privateNamesInGenericClasses.types index 35101119c9ccb..b105004eaf9d5 100644 --- a/tests/baselines/reference/privateNamesInGenericClasses.types +++ b/tests/baselines/reference/privateNamesInGenericClasses.types @@ -83,11 +83,11 @@ class C { baz2(x: C) { return x.#method; } // OK >baz2 : (x: C) => () => number -> : ^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >x : C > : ^^^^^^^^^ >x.#method : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >x : C > : ^^^^^^^^^ @@ -113,11 +113,11 @@ class C { quux2(x: C) { return x.#method; }// OK >quux2 : (x: C) => () => string -> : ^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^^^ >x : C > : ^^^^^^^^^ >x.#method : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >x : C > : ^^^^^^^^^ diff --git a/tests/baselines/reference/promiseAllOnAny01.types b/tests/baselines/reference/promiseAllOnAny01.types index 7446acf02f587..14c85fb6d9755 100644 --- a/tests/baselines/reference/promiseAllOnAny01.types +++ b/tests/baselines/reference/promiseAllOnAny01.types @@ -14,11 +14,11 @@ async function foo(x: any) { >Promise.all(x) : Promise > : ^^^^^^^^^^^^^^ >Promise.all : (values: T) => Promise<{ -readonly [P in keyof T]: Awaited; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : (values: T) => Promise<{ -readonly [P in keyof T]: Awaited; }> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : any let result: any[] = abc; diff --git a/tests/baselines/reference/promiseChaining.types b/tests/baselines/reference/promiseChaining.types index 3b7647b546bdf..5f2db3a0230c8 100644 --- a/tests/baselines/reference/promiseChaining.types +++ b/tests/baselines/reference/promiseChaining.types @@ -11,7 +11,7 @@ class Chain { then(cb: (x: T) => S): Chain { >then : (cb: (x: T) => S) => Chain -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (x: T) => S > : ^ ^^ ^^^^^ >x : T @@ -46,11 +46,11 @@ class Chain { >this.then(x => result) : Chain > : ^^^^^^^^ >this.then : (cb: (x: T) => S) => Chain -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >this : this > : ^^^^ >then : (cb: (x: T) => S) => Chain -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => result : (x: T) => S > : ^ ^^^^^^^^^ >x : T diff --git a/tests/baselines/reference/promiseChaining1.types b/tests/baselines/reference/promiseChaining1.types index 4024c6e584381..3a9f32d8cb8de 100644 --- a/tests/baselines/reference/promiseChaining1.types +++ b/tests/baselines/reference/promiseChaining1.types @@ -14,7 +14,7 @@ class Chain2 { then(cb: (x: T) => S): Chain2 { >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (x: T) => S > : ^ ^^ ^^^^^ >x : T @@ -49,11 +49,11 @@ class Chain2 { >this.then(x => result) : Chain2 > : ^^^^^^^^^ >this.then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >this : this > : ^^^^ >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x => result : (x: T) => S > : ^ ^^^^^^^^^ >x : T diff --git a/tests/baselines/reference/promiseChaining2.types b/tests/baselines/reference/promiseChaining2.types index 3f70949631ad1..c9e8ef260f9b8 100644 --- a/tests/baselines/reference/promiseChaining2.types +++ b/tests/baselines/reference/promiseChaining2.types @@ -14,7 +14,7 @@ class Chain2 { then(cb: (x: T) => S): Chain2 { >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (x: T) => S > : ^ ^^ ^^^^^ >x : T @@ -49,11 +49,11 @@ class Chain2 { >this.then(x => result) : Chain2 > : ^^^^^^^^^ >this.then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >this : this > : ^^^^ >then : (cb: (x: T) => S) => Chain2 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x => result : (x: T) => S > : ^ ^^^^^^^^^ >x : T diff --git a/tests/baselines/reference/promiseIdentity.types b/tests/baselines/reference/promiseIdentity.types index 096edecbe1df0..479b1852794fa 100644 --- a/tests/baselines/reference/promiseIdentity.types +++ b/tests/baselines/reference/promiseIdentity.types @@ -4,7 +4,7 @@ export interface IPromise { then(callback: (x: T) => IPromise): IPromise; >then : (callback: (x: T) => IPromise) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (x: T) => IPromise > : ^ ^^ ^^^^^ >x : T @@ -13,7 +13,7 @@ export interface IPromise { interface Promise { then(callback: (x: T) => Promise): Promise; >then : (callback: (x: T) => Promise) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >callback : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -31,7 +31,7 @@ var x: Promise; interface IPromise2 { then(callback: (x: T) => IPromise2): IPromise2; >then : (callback: (x: T) => IPromise2) => IPromise2 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: T) => IPromise2 > : ^ ^^ ^^^^^ >x : T @@ -40,7 +40,7 @@ interface IPromise2 { interface Promise2 { then(callback: (x: V) => Promise2): Promise2; // Uses V instead of T in callback's parameter >then : (callback: (x: V) => Promise2) => Promise2 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: V) => Promise2 > : ^ ^^ ^^^^^ >x : V diff --git a/tests/baselines/reference/promiseIdentity2.types b/tests/baselines/reference/promiseIdentity2.types index 2dc26253214ac..1a2afc351ce03 100644 --- a/tests/baselines/reference/promiseIdentity2.types +++ b/tests/baselines/reference/promiseIdentity2.types @@ -4,7 +4,7 @@ export interface IPromise { then(callback: (x: T) => IPromise): IPromise; >then : (callback: (x: T) => IPromise) => IPromise -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: T) => IPromise > : ^ ^^ ^^^^^ >x : T @@ -13,7 +13,7 @@ export interface IPromise { export interface Promise { then(callback: (x: T) => Promise): Promise; >then : (callback: (x: T) => Promise) => Promise -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T diff --git a/tests/baselines/reference/promiseIdentityWithAny.types b/tests/baselines/reference/promiseIdentityWithAny.types index a51924a95d676..938bd0badf6a0 100644 --- a/tests/baselines/reference/promiseIdentityWithAny.types +++ b/tests/baselines/reference/promiseIdentityWithAny.types @@ -4,7 +4,7 @@ export interface IPromise { then(callback: (x: T) => IPromise): IPromise; >then : (callback: (x: T) => IPromise) => IPromise -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: T) => IPromise > : ^ ^^ ^^^^^ >x : T diff --git a/tests/baselines/reference/promiseIdentityWithAny2.types b/tests/baselines/reference/promiseIdentityWithAny2.types index e947472600949..c388b47cfd443 100644 --- a/tests/baselines/reference/promiseIdentityWithAny2.types +++ b/tests/baselines/reference/promiseIdentityWithAny2.types @@ -4,7 +4,7 @@ export interface IPromise { then(callback: (x: T) => IPromise): IPromise; >then : (callback: (x: T) => IPromise) => IPromise -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: T) => IPromise > : ^ ^^ ^^^^^ >x : T @@ -33,7 +33,7 @@ var x: Promise; interface IPromise2 { then(callback: (x: T) => IPromise2): IPromise2; >then : (callback: (x: T) => IPromise2) => IPromise2 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >callback : (x: T) => IPromise2 > : ^ ^^ ^^^^^ >x : T diff --git a/tests/baselines/reference/promiseIdentityWithConstraints.types b/tests/baselines/reference/promiseIdentityWithConstraints.types index fd19a1f929a21..ab4831aff3d14 100644 --- a/tests/baselines/reference/promiseIdentityWithConstraints.types +++ b/tests/baselines/reference/promiseIdentityWithConstraints.types @@ -4,7 +4,7 @@ export interface IPromise { then(callback: (x: T) => IPromise): IPromise; >then : (callback: (x: T) => IPromise) => IPromise -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >callback : (x: T) => IPromise > : ^ ^^ ^^^^^ >x : T @@ -13,7 +13,7 @@ export interface IPromise { export interface Promise { then(callback: (x: T) => Promise): Promise; >then : (callback: (x: T) => Promise) => Promise -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >callback : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T diff --git a/tests/baselines/reference/promisePermutations.types b/tests/baselines/reference/promisePermutations.types index 37e91522dd94e..5c48fa92c8d33 100644 --- a/tests/baselines/reference/promisePermutations.types +++ b/tests/baselines/reference/promisePermutations.types @@ -8,7 +8,7 @@ Instantiation count: 5,000 -> 25,000 interface Promise { then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T @@ -24,7 +24,7 @@ interface Promise { then(success?: (value: T) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T @@ -40,7 +40,7 @@ interface Promise { then(success?: (value: T) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; (success?: (value: T) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -56,7 +56,7 @@ interface Promise { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -90,7 +90,7 @@ interface Promise { interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -106,7 +106,7 @@ interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -122,7 +122,7 @@ interface IPromise { then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -138,7 +138,7 @@ interface IPromise { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -243,7 +243,7 @@ declare function testFunction6(x: number, cb: (a: T) => T): IPromise; >x : number > : ^^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -253,7 +253,7 @@ declare function testFunction6P(x: number, cb: (a: T) => T): Promise; >x : number > : ^^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -261,7 +261,7 @@ declare function testFunction7(cb: (a: T) => T): IPromise; >testFunction7 : (cb: (a: T) => T) => IPromise > : ^ ^^ ^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -269,13 +269,13 @@ declare function testFunction7P(cb: (a: T) => T): Promise; >testFunction7P : (cb: (a: T) => T) => Promise > : ^ ^^ ^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ declare function testFunction8(x: T, cb: (a: T) => T): IPromise; >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: T) => T @@ -285,7 +285,7 @@ declare function testFunction8(x: T, cb: (a: T) => T): IPromise; declare function testFunction8P(x: T, cb: (a: T) => T): Promise; >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: T) => T @@ -295,37 +295,37 @@ declare function testFunction8P(x: T, cb: (a: T) => T): Promise; declare function testFunction9(x: T, cb: (a: U) => U): IPromise; >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction9P(x: T, cb: (a: U) => U): Promise; >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction10(cb: (a: U) => U): IPromise; >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction10P(cb: (a: U) => U): Promise; >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ @@ -355,13 +355,13 @@ declare function testFunction11P(x: string): Promise; declare function testFunction12(x: T): IPromise; >testFunction12 : { (x: T): IPromise; (x: T_1, y: T_1): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function testFunction12(x: T, y: T): IPromise; >testFunction12 : { (x: T_1): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : T @@ -369,13 +369,13 @@ declare function testFunction12(x: T, y: T): IPromise; declare function testFunction12P(x: T): IPromise; >testFunction12P : { (x: T): IPromise; (x: T_1, y: T_1): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function testFunction12P(x: T, y: T): Promise; >testFunction12P : { (x: T_1): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : T @@ -1423,11 +1423,11 @@ var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error >then : { (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; } > : ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok >r8b : IPromise @@ -1475,11 +1475,11 @@ var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error >s8b : Promise @@ -1493,11 +1493,11 @@ var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error >s8c : Promise @@ -1511,11 +1511,11 @@ var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok >s8d : Promise> @@ -1563,11 +1563,11 @@ var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error >then : { (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; } > : ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok >r9b : IPromise @@ -1669,11 +1669,11 @@ var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error >s9b : Promise @@ -1687,11 +1687,11 @@ var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error >s9c : Promise @@ -1705,11 +1705,11 @@ var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9d = s9.then(sPromise, sPromise, sPromise); // ok >s9d : Promise @@ -1801,7 +1801,7 @@ var r10 = testFunction10(x => x); >testFunction10(x => x) : IPromise > : ^^^^^^^^^^^^^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: U) => U > : ^^^^ ^^^^^^^^^ >x : U @@ -1821,11 +1821,11 @@ var r10a = r10.then(testFunction10, testFunction10, testFunction10); // ok >then : { (success?: (value: unknown) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: unknown) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: unknown) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r10b = r10.then(sIPromise, sIPromise, sIPromise); // ok >r10b : IPromise @@ -1917,7 +1917,7 @@ var s10 = testFunction10P(x => x); >testFunction10P(x => x) : Promise > : ^^^^^^^^^^^^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: U) => U > : ^^^^ ^^^^^^^^^ >x : U @@ -1937,11 +1937,11 @@ var s10a = s10.then(testFunction10, testFunction10, testFunction10); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok >s10b : Promise @@ -1955,11 +1955,11 @@ var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok >s10c : Promise @@ -1973,11 +1973,11 @@ var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10d = s10.then(sPromise, sPromise, sPromise); // ok >s10d : Promise @@ -2149,7 +2149,7 @@ var r12 = testFunction12(x => x); >testFunction12(x => x) : IPromise<(x: any) => any> > : ^^^^^^^^^^ ^^^^^^^^^^^^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -2169,11 +2169,11 @@ var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12 = testFunction12(x => x); >s12 : IPromise<(x: any) => any> @@ -2181,7 +2181,7 @@ var s12 = testFunction12(x => x); >testFunction12(x => x) : IPromise<(x: any) => any> > : ^^^^^^^^^^ ^^^^^^^^^^^^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -2201,11 +2201,11 @@ var s12a = s12.then(testFunction12, testFunction12, testFunction12); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok >s12b : IPromise @@ -2219,11 +2219,11 @@ var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok >s12c : IPromise @@ -2237,9 +2237,9 @@ var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/promisePermutations2.types b/tests/baselines/reference/promisePermutations2.types index d7781b8a9ac15..7d458d3386216 100644 --- a/tests/baselines/reference/promisePermutations2.types +++ b/tests/baselines/reference/promisePermutations2.types @@ -9,7 +9,7 @@ Instantiation count: 2,500 -> 10,000 interface Promise { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -43,7 +43,7 @@ interface Promise { interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -59,7 +59,7 @@ interface IPromise { then(success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T @@ -75,7 +75,7 @@ interface IPromise { then(success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -91,7 +91,7 @@ interface IPromise { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : { (success?: (value: T) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => IPromise, error?: (error: any) => U_1, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U_1, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -196,7 +196,7 @@ declare function testFunction6(x: number, cb: (a: T) => T): IPromise; >x : number > : ^^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -206,7 +206,7 @@ declare function testFunction6P(x: number, cb: (a: T) => T): Promise; >x : number > : ^^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -214,7 +214,7 @@ declare function testFunction7(cb: (a: T) => T): IPromise; >testFunction7 : (cb: (a: T) => T) => IPromise > : ^ ^^ ^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -222,13 +222,13 @@ declare function testFunction7P(cb: (a: T) => T): Promise; >testFunction7P : (cb: (a: T) => T) => Promise > : ^ ^^ ^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ declare function testFunction8(x: T, cb: (a: T) => T): IPromise; >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: T) => T @@ -238,7 +238,7 @@ declare function testFunction8(x: T, cb: (a: T) => T): IPromise; declare function testFunction8P(x: T, cb: (a: T) => T): Promise; >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: T) => T @@ -248,37 +248,37 @@ declare function testFunction8P(x: T, cb: (a: T) => T): Promise; declare function testFunction9(x: T, cb: (a: U) => U): IPromise; >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction9P(x: T, cb: (a: U) => U): Promise; >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction10(cb: (a: U) => U): IPromise; >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction10P(cb: (a: U) => U): Promise; >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ @@ -308,13 +308,13 @@ declare function testFunction11P(x: string): Promise; declare function testFunction12(x: T): IPromise; >testFunction12 : { (x: T): IPromise; (x: T_1, y: T_1): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function testFunction12(x: T, y: T): IPromise; >testFunction12 : { (x: T_1): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : T @@ -322,13 +322,13 @@ declare function testFunction12(x: T, y: T): IPromise; declare function testFunction12P(x: T): IPromise; >testFunction12P : { (x: T): IPromise; (x: T_1, y: T_1): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function testFunction12P(x: T, y: T): Promise; >testFunction12P : { (x: T_1): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : T @@ -1376,11 +1376,11 @@ var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error >then : { (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; } > : ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok >r8b : IPromise @@ -1428,11 +1428,11 @@ var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error >s8b : Promise @@ -1446,11 +1446,11 @@ var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error >s8c : Promise @@ -1464,11 +1464,11 @@ var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok >s8d : Promise> @@ -1516,11 +1516,11 @@ var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error >then : { (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; } > : ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok >r9b : IPromise @@ -1622,11 +1622,11 @@ var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error >s9b : Promise @@ -1640,11 +1640,11 @@ var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error >s9c : Promise @@ -1658,11 +1658,11 @@ var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9d = s9.then(sPromise, sPromise, sPromise); // ok >s9d : Promise> @@ -1754,7 +1754,7 @@ var r10 = testFunction10(x => x); >testFunction10(x => x) : IPromise > : ^^^^^^^^^^^^^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: U) => U > : ^^^^ ^^^^^^^^^ >x : U @@ -1774,11 +1774,11 @@ var r10a = r10.then(testFunction10, testFunction10, testFunction10); // ok >then : { (success?: (value: unknown) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: unknown) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: unknown) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r10b = r10.then(sIPromise, sIPromise, sIPromise); // ok >r10b : IPromise @@ -1870,7 +1870,7 @@ var s10 = testFunction10P(x => x); >testFunction10P(x => x) : Promise > : ^^^^^^^^^^^^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: U) => U > : ^^^^ ^^^^^^^^^ >x : U @@ -1890,11 +1890,11 @@ var s10a = s10.then(testFunction10, testFunction10, testFunction10); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok >s10b : Promise> @@ -1908,11 +1908,11 @@ var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok >s10c : Promise> @@ -1926,11 +1926,11 @@ var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10d = s10.then(sPromise, sPromise, sPromise); // ok >s10d : Promise> @@ -2102,7 +2102,7 @@ var r12 = testFunction12(x => x); >testFunction12(x => x) : IPromise<(x: any) => any> > : ^^^^^^^^^^ ^^^^^^^^^^^^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -2122,11 +2122,11 @@ var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12 = testFunction12(x => x); >s12 : IPromise<(x: any) => any> @@ -2134,7 +2134,7 @@ var s12 = testFunction12(x => x); >testFunction12(x => x) : IPromise<(x: any) => any> > : ^^^^^^^^^^ ^^^^^^^^^^^^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -2154,11 +2154,11 @@ var s12a = s12.then(testFunction12, testFunction12, testFunction12); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok >s12b : IPromise @@ -2172,11 +2172,11 @@ var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok >s12c : IPromise @@ -2190,9 +2190,9 @@ var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok >then : { (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; } > : ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^ ^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/promisePermutations3.types b/tests/baselines/reference/promisePermutations3.types index e59283afc6d1e..dc223be6d9352 100644 --- a/tests/baselines/reference/promisePermutations3.types +++ b/tests/baselines/reference/promisePermutations3.types @@ -10,7 +10,7 @@ Instantiation count: 5,000 -> 25,000 interface Promise { then(success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T @@ -26,7 +26,7 @@ interface Promise { then(success?: (value: T) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T @@ -42,7 +42,7 @@ interface Promise { then(success?: (value: T) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; (success?: (value: T) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -58,7 +58,7 @@ interface Promise { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => Promise, error?: (error: any) => U_1, progress?: (progress: any) => void): Promise; (success?: (value: T) => U_1, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -92,7 +92,7 @@ interface Promise { interface IPromise { then(success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; >then : (success?: (value: T) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise -> : ^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -197,7 +197,7 @@ declare function testFunction6(x: number, cb: (a: T) => T): IPromise; >x : number > : ^^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -207,7 +207,7 @@ declare function testFunction6P(x: number, cb: (a: T) => T): Promise; >x : number > : ^^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -215,7 +215,7 @@ declare function testFunction7(cb: (a: T) => T): IPromise; >testFunction7 : (cb: (a: T) => T) => IPromise > : ^ ^^ ^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -223,13 +223,13 @@ declare function testFunction7P(cb: (a: T) => T): Promise; >testFunction7P : (cb: (a: T) => T) => Promise > : ^ ^^ ^^^^^ >cb : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ declare function testFunction8(x: T, cb: (a: T) => T): IPromise; >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: T) => T @@ -239,7 +239,7 @@ declare function testFunction8(x: T, cb: (a: T) => T): IPromise; declare function testFunction8P(x: T, cb: (a: T) => T): Promise; >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: T) => T @@ -249,37 +249,37 @@ declare function testFunction8P(x: T, cb: (a: T) => T): Promise; declare function testFunction9(x: T, cb: (a: U) => U): IPromise; >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction9P(x: T, cb: (a: U) => U): Promise; >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction10(cb: (a: U) => U): IPromise; >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ declare function testFunction10P(cb: (a: U) => U): Promise; >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cb : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ @@ -309,13 +309,13 @@ declare function testFunction11P(x: string): Promise; declare function testFunction12(x: T): IPromise; >testFunction12 : { (x: T): IPromise; (x: T_1, y: T_1): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function testFunction12(x: T, y: T): IPromise; >testFunction12 : { (x: T_1): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : T @@ -323,13 +323,13 @@ declare function testFunction12(x: T, y: T): IPromise; declare function testFunction12P(x: T): IPromise; >testFunction12P : { (x: T): IPromise; (x: T_1, y: T_1): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ declare function testFunction12P(x: T, y: T): Promise; >testFunction12P : { (x: T_1): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : T @@ -1377,11 +1377,11 @@ var r8a = r8.then(testFunction8, testFunction8, testFunction8); // error >then : (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r8b = r8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok >r8b : IPromise> @@ -1429,11 +1429,11 @@ var s8a = s8.then(testFunction8, testFunction8, testFunction8); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error >s8b : Promise @@ -1447,11 +1447,11 @@ var s8b = s8.then(testFunction8P, testFunction8P, testFunction8P); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error >s8c : Promise @@ -1465,11 +1465,11 @@ var s8c = s8.then(testFunction8P, testFunction8, testFunction8); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction8P : (x: T, cb: (a: T) => T) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction8 : (x: T, cb: (a: T) => T) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s8d = s8.then(nIPromise, nIPromise, nIPromise).then(nIPromise, nIPromise, nIPromise); // ok >s8d : Promise> @@ -1517,11 +1517,11 @@ var r9a = r9.then(testFunction9, testFunction9, testFunction9); // error >then : (success?: (value: number) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r9b = r9.then(sIPromise, sIPromise, sIPromise); // ok >r9b : IPromise> @@ -1623,11 +1623,11 @@ var s9a = s9.then(testFunction9, testFunction9, testFunction9); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error >s9b : Promise @@ -1641,11 +1641,11 @@ var s9b = s9.then(testFunction9P, testFunction9P, testFunction9P); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error >s9c : Promise @@ -1659,11 +1659,11 @@ var s9c = s9.then(testFunction9P, testFunction9, testFunction9); // error >then : { (onfulfilled?: (value: number) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction9P : (x: T, cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >testFunction9 : (x: T, cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var s9d = s9.then(sPromise, sPromise, sPromise); // ok >s9d : Promise @@ -1755,7 +1755,7 @@ var r10 = testFunction10(x => x); >testFunction10(x => x) : IPromise > : ^^^^^^^^^^^^^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: U) => U > : ^^^^ ^^^^^^^^^ >x : U @@ -1775,11 +1775,11 @@ var r10a = r10.then(testFunction10, testFunction10, testFunction10); // ok >then : (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r10b = r10.then(sIPromise, sIPromise, sIPromise); // ok >r10b : IPromise> @@ -1871,7 +1871,7 @@ var s10 = testFunction10P(x => x); >testFunction10P(x => x) : Promise > : ^^^^^^^^^^^^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x => x : (x: U) => U > : ^^^^ ^^^^^^^^^ >x : U @@ -1891,11 +1891,11 @@ var s10a = s10.then(testFunction10, testFunction10, testFunction10); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok >s10b : Promise @@ -1909,11 +1909,11 @@ var s10b = s10.then(testFunction10P, testFunction10P, testFunction10P); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok >s10c : Promise @@ -1927,11 +1927,11 @@ var s10c = s10.then(testFunction10P, testFunction10, testFunction10); // ok >then : { (onfulfilled?: (value: unknown) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => Promise, error?: (error: any) => U, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => Promise, progress?: (progress: any) => void): Promise; (success?: (value: unknown) => U, error?: (error: any) => U, progress?: (progress: any) => void): Promise; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^ ^ ^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^ ^ ^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^^ ^^ ^^^^^ ^^^ ^ ^^^ >testFunction10P : (cb: (a: U) => U) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >testFunction10 : (cb: (a: U) => U) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var s10d = s10.then(sPromise, sPromise, sPromise); // ok >s10d : Promise @@ -2103,7 +2103,7 @@ var r12 = testFunction12(x => x); >testFunction12(x => x) : IPromise<(x: any) => any> > : ^^^^^^^^^^ ^^^^^^^^^^^^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -2123,11 +2123,11 @@ var r12a = r12.then(testFunction12, testFunction12, testFunction12); // ok >then : (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12 = testFunction12(x => x); >s12 : IPromise<(x: any) => any> @@ -2135,7 +2135,7 @@ var s12 = testFunction12(x => x); >testFunction12(x => x) : IPromise<(x: any) => any> > : ^^^^^^^^^^ ^^^^^^^^^^^^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x => x : (x: any) => any > : ^ ^^^^^^^^^^^^^ >x : any @@ -2155,11 +2155,11 @@ var s12a = s12.then(testFunction12, testFunction12, testFunction12); // ok >then : (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok >s12b : IPromise> @@ -2173,11 +2173,11 @@ var s12b = s12.then(testFunction12P, testFunction12P, testFunction12P); // ok >then : (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok >s12c : IPromise> @@ -2191,9 +2191,9 @@ var s12c = s12.then(testFunction12P, testFunction12, testFunction12); // ok >then : (success?: (value: (x: any) => any) => U, error?: (error: any) => U, progress?: (progress: any) => void) => IPromise > : ^^^^ ^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^ ^^^ ^^^^^ ^ >testFunction12P : { (x: T): IPromise; (x: T, y: T): Promise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >testFunction12 : { (x: T): IPromise; (x: T, y: T): IPromise; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/promiseTest.types b/tests/baselines/reference/promiseTest.types index f97721783ae83..16f8980b98ce8 100644 --- a/tests/baselines/reference/promiseTest.types +++ b/tests/baselines/reference/promiseTest.types @@ -4,7 +4,7 @@ interface Promise { then(success?: (value: T) => Promise): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise): Promise; (success?: (value: T) => B): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^^ ^^^^^^ ^^^ ^^^ ^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T @@ -12,7 +12,7 @@ interface Promise { then(success?: (value: T) => B): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => Promise): Promise; (success?: (value: T) => B): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^^ ^^^^^^ ^^^ ^^^ ^^^ >success : (value: T) => B > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/promiseType.types b/tests/baselines/reference/promiseType.types index 570177cdd0a33..041fb5c95e6cd 100644 --- a/tests/baselines/reference/promiseType.types +++ b/tests/baselines/reference/promiseType.types @@ -145,11 +145,11 @@ async function F() { >Promise.reject(Error()) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Error() : Error > : ^^^^^ >Error : ErrorConstructor @@ -233,11 +233,11 @@ async function I() { >Promise.reject(Error()) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Error() : Error > : ^^^^^ >Error : ErrorConstructor @@ -253,11 +253,11 @@ const p00 = p.catch(); >p.catch() : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ const p01 = p.then(); >p01 : Promise @@ -277,11 +277,11 @@ const p10 = p.catch(undefined); >p.catch(undefined) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -291,11 +291,11 @@ const p11 = p.catch(null); >p.catch(null) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ const p12 = p.catch(() => 1); >p12 : Promise @@ -303,11 +303,11 @@ const p12 = p.catch(() => 1); >p.catch(() => 1) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => 1 : () => number > : ^^^^^^^^^^^^ >1 : 1 @@ -319,11 +319,11 @@ const p13 = p.catch(() => x); >p.catch(() => x) : Promise > : ^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => x : () => any > : ^^^^^^^^^ >x : any @@ -334,11 +334,11 @@ const p14 = p.catch(() => undefined); >p.catch(() => undefined) : Promise > : ^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => undefined : () => any > : ^^^^^^^^^ >undefined : undefined @@ -350,11 +350,11 @@ const p15 = p.catch(() => null); >p.catch(() => null) : Promise > : ^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => null : () => any > : ^^^^^^^^^ @@ -364,11 +364,11 @@ const p16 = p.catch(() => {}); >p.catch(() => {}) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => {} : () => void > : ^^^^^^^^^^ @@ -378,11 +378,11 @@ const p17 = p.catch(() => {throw 1}); >p.catch(() => {throw 1}) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => {throw 1} : () => never > : ^^^^^^^^^^^ >1 : 1 @@ -394,21 +394,21 @@ const p18 = p.catch(() => Promise.reject(1)); >p.catch(() => Promise.reject(1)) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => Promise.reject(1) : () => Promise > : ^^^^^^^^^^^^^^^^^^^^ >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -418,21 +418,21 @@ const p19 = p.catch(() => Promise.resolve(1)); >p.catch(() => Promise.resolve(1)) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: (reason: any) => TResult | PromiseLike) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^ ^^^^^^^ >() => Promise.resolve(1) : () => Promise > : ^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -569,11 +569,11 @@ const p28 = p.then(() => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -593,11 +593,11 @@ const p29 = p.then(() => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -752,11 +752,11 @@ const p38 = p.then(undefined, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -778,11 +778,11 @@ const p39 = p.then(undefined, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -919,11 +919,11 @@ const p48 = p.then(null, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -943,11 +943,11 @@ const p49 = p.then(null, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1120,11 +1120,11 @@ const p58 = p.then(() => "1", () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1148,11 +1148,11 @@ const p59 = p.then(() => "1", () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1316,11 +1316,11 @@ const p68 = p.then(() => x, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1343,11 +1343,11 @@ const p69 = p.then(() => x, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1520,11 +1520,11 @@ const p78 = p.then(() => undefined, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1548,11 +1548,11 @@ const p79 = p.then(() => undefined, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1707,11 +1707,11 @@ const p88 = p.then(() => null, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1733,11 +1733,11 @@ const p89 = p.then(() => null, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1892,11 +1892,11 @@ const p98 = p.then(() => {}, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1918,11 +1918,11 @@ const p99 = p.then(() => {}, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2095,11 +2095,11 @@ const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -2123,11 +2123,11 @@ const pa9 = p.then(() => {throw 1}, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2147,11 +2147,11 @@ const pb0 = p.then(() => Promise.resolve("1"), undefined); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >undefined : undefined @@ -2173,11 +2173,11 @@ const pb1 = p.then(() => Promise.resolve("1"), null); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ @@ -2197,11 +2197,11 @@ const pb2 = p.then(() => Promise.resolve("1"), () => 1); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => 1 : () => number @@ -2225,11 +2225,11 @@ const pb3 = p.then(() => Promise.resolve("1"), () => x); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => x : () => any @@ -2252,11 +2252,11 @@ const pb4 = p.then(() => Promise.resolve("1"), () => undefined); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => undefined : () => any @@ -2280,11 +2280,11 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => null : () => any @@ -2306,11 +2306,11 @@ const pb6 = p.then(() => Promise.resolve("1"), () => {}); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => {} : () => void @@ -2332,11 +2332,11 @@ const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1}); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => {throw 1} : () => never @@ -2360,11 +2360,11 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1)); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => Promise.resolve(1) : () => Promise @@ -2372,11 +2372,11 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -2396,11 +2396,11 @@ const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => Promise.reject(1) : () => Promise @@ -2408,11 +2408,11 @@ const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2432,11 +2432,11 @@ const pc0 = p.then(() => Promise.reject("1"), undefined); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >undefined : undefined @@ -2458,11 +2458,11 @@ const pc1 = p.then(() => Promise.reject("1"), null); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ @@ -2482,11 +2482,11 @@ const pc2 = p.then(() => Promise.reject("1"), () => 1); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => 1 : () => number @@ -2510,11 +2510,11 @@ const pc3 = p.then(() => Promise.reject("1"), () => x); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => x : () => any @@ -2537,11 +2537,11 @@ const pc4 = p.then(() => Promise.reject("1"), () => undefined); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => undefined : () => any @@ -2565,11 +2565,11 @@ const pc5 = p.then(() => Promise.reject("1"), () => null); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => null : () => any @@ -2591,11 +2591,11 @@ const pc6 = p.then(() => Promise.reject("1"), () => {}); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => {} : () => void @@ -2617,11 +2617,11 @@ const pc7 = p.then(() => Promise.reject("1"), () => {throw 1}); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => {throw 1} : () => never @@ -2645,11 +2645,11 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => Promise.resolve(1) : () => Promise @@ -2657,11 +2657,11 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -2681,11 +2681,11 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => Promise.reject(1) : () => Promise @@ -2693,11 +2693,11 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2705,11 +2705,11 @@ Promise.resolve(undefined as Promise | number); >Promise.resolve(undefined as Promise | number) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >undefined as Promise | number : number | Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined @@ -2719,11 +2719,11 @@ Promise.resolve(undefined as Promise>); >Promise.resolve(undefined as Promise>) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >undefined as Promise> : Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined @@ -2733,11 +2733,11 @@ Promise.resolve(undefined as string | Promise>); >Promise.resolve(undefined as string | Promise>) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >undefined as string | Promise> : string | Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined @@ -2747,11 +2747,11 @@ Promise.resolve(undefined as Promise | Promise>); >Promise.resolve(undefined as Promise | Promise>) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >undefined as Promise | Promise> : Promise | Promise> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined @@ -2761,11 +2761,11 @@ Promise.resolve(undefined as Promise>>); >Promise.resolve(undefined as Promise>>) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >undefined as Promise>> : Promise>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/promiseTypeInference.types b/tests/baselines/reference/promiseTypeInference.types index a08547bc2765e..645dba8761b8f 100644 --- a/tests/baselines/reference/promiseTypeInference.types +++ b/tests/baselines/reference/promiseTypeInference.types @@ -7,7 +7,7 @@ declare class CPromise { then(success?: (value: T) => CPromise): CPromise; >then : (success?: (value: T) => CPromise) => CPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >success : (value: T) => CPromise > : ^ ^^ ^^^^^ >value : T @@ -16,7 +16,7 @@ declare class CPromise { interface IPromise { then(success?: (value: T) => IPromise): IPromise; >then : (success?: (value: T) => IPromise) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >success : (value: T) => IPromise > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/promiseTypeInferenceUnion.types b/tests/baselines/reference/promiseTypeInferenceUnion.types index e5277861461dd..4e9211788808c 100644 --- a/tests/baselines/reference/promiseTypeInferenceUnion.types +++ b/tests/baselines/reference/promiseTypeInferenceUnion.types @@ -11,11 +11,11 @@ function f1(x: number): number | Promise { >Promise.resolve(x) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : number > : ^^^^^^ } @@ -30,11 +30,11 @@ function f2(x: number): number | PromiseLike { >Promise.resolve(x) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : number > : ^^^^^^ } @@ -49,11 +49,11 @@ function f3(x: number): number | Promise | PromiseLike { >Promise.resolve(x) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : number > : ^^^^^^ } @@ -64,11 +64,11 @@ const g1: Promise = Promise.resolve(f1(42)); >Promise.resolve(f1(42)) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >f1(42) : number | Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^ >f1 : (x: number) => number | Promise @@ -82,11 +82,11 @@ const g2: Promise = Promise.resolve(f2(42)); >Promise.resolve(f2(42)) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >f2(42) : number | PromiseLike > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (x: number) => number | PromiseLike @@ -100,11 +100,11 @@ const g3: Promise = Promise.resolve(f3(42)); >Promise.resolve(f3(42)) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >f3(42) : number | Promise | PromiseLike > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f3 : (x: number) => number | Promise | PromiseLike diff --git a/tests/baselines/reference/promiseTypeStrictNull.types b/tests/baselines/reference/promiseTypeStrictNull.types index c7d7aa3a3b6f7..de7649ac94c27 100644 --- a/tests/baselines/reference/promiseTypeStrictNull.types +++ b/tests/baselines/reference/promiseTypeStrictNull.types @@ -145,11 +145,11 @@ async function F() { >Promise.reject(Error()) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Error() : Error > : ^^^^^ >Error : ErrorConstructor @@ -233,11 +233,11 @@ async function I() { >Promise.reject(Error()) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Error() : Error > : ^^^^^ >Error : ErrorConstructor @@ -253,11 +253,11 @@ const p00 = p.catch(); >p.catch() : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ const p01 = p.then(); >p01 : Promise @@ -277,11 +277,11 @@ const p10 = p.catch(undefined); >p.catch(undefined) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -291,11 +291,11 @@ const p11 = p.catch(null); >p.catch(null) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ const p12 = p.catch(() => 1); >p12 : Promise @@ -303,11 +303,11 @@ const p12 = p.catch(() => 1); >p.catch(() => 1) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => 1 : () => number > : ^^^^^^^^^^^^ >1 : 1 @@ -319,11 +319,11 @@ const p13 = p.catch(() => x); >p.catch(() => x) : Promise > : ^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => x : () => any > : ^^^^^^^^^ >x : any @@ -334,11 +334,11 @@ const p14 = p.catch(() => undefined); >p.catch(() => undefined) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => undefined : () => undefined > : ^^^^^^^^^^^^^^^ >undefined : undefined @@ -350,11 +350,11 @@ const p15 = p.catch(() => null); >p.catch(() => null) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => null : () => null > : ^^^^^^^^^^ @@ -364,11 +364,11 @@ const p16 = p.catch(() => {}); >p.catch(() => {}) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => {} : () => void > : ^^^^^^^^^^ @@ -378,11 +378,11 @@ const p17 = p.catch(() => {throw 1}); >p.catch(() => {throw 1}) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => {throw 1} : () => never > : ^^^^^^^^^^^ >1 : 1 @@ -394,21 +394,21 @@ const p18 = p.catch(() => Promise.reject(1)); >p.catch(() => Promise.reject(1)) : Promise > : ^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => Promise.reject(1) : () => Promise > : ^^^^^^^^^^^^^^^^^^^^ >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -418,21 +418,21 @@ const p19 = p.catch(() => Promise.resolve(1)); >p.catch(() => Promise.resolve(1)) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >p.catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >p : Promise > : ^^^^^^^^^^^^^^^^ >catch : (onrejected?: ((reason: any) => TResult | PromiseLike) | null | undefined) => Promise -> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ >() => Promise.resolve(1) : () => Promise > : ^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -569,11 +569,11 @@ const p28 = p.then(() => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -593,11 +593,11 @@ const p29 = p.then(() => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -752,11 +752,11 @@ const p38 = p.then(undefined, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -778,11 +778,11 @@ const p39 = p.then(undefined, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -919,11 +919,11 @@ const p48 = p.then(null, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -943,11 +943,11 @@ const p49 = p.then(null, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1120,11 +1120,11 @@ const p58 = p.then(() => "1", () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1148,11 +1148,11 @@ const p59 = p.then(() => "1", () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1316,11 +1316,11 @@ const p68 = p.then(() => x, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1343,11 +1343,11 @@ const p69 = p.then(() => x, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1520,11 +1520,11 @@ const p78 = p.then(() => undefined, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1548,11 +1548,11 @@ const p79 = p.then(() => undefined, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1707,11 +1707,11 @@ const p88 = p.then(() => null, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1733,11 +1733,11 @@ const p89 = p.then(() => null, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -1892,11 +1892,11 @@ const p98 = p.then(() => {}, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -1918,11 +1918,11 @@ const p99 = p.then(() => {}, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2095,11 +2095,11 @@ const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -2123,11 +2123,11 @@ const pa9 = p.then(() => {throw 1}, () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2147,11 +2147,11 @@ const pb0 = p.then(() => Promise.resolve("1"), undefined); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >undefined : undefined @@ -2173,11 +2173,11 @@ const pb1 = p.then(() => Promise.resolve("1"), null); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ @@ -2197,11 +2197,11 @@ const pb2 = p.then(() => Promise.resolve("1"), () => 1); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => 1 : () => number @@ -2225,11 +2225,11 @@ const pb3 = p.then(() => Promise.resolve("1"), () => x); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => x : () => any @@ -2252,11 +2252,11 @@ const pb4 = p.then(() => Promise.resolve("1"), () => undefined); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => undefined : () => undefined @@ -2280,11 +2280,11 @@ const pb5 = p.then(() => Promise.resolve("1"), () => null); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => null : () => null @@ -2306,11 +2306,11 @@ const pb6 = p.then(() => Promise.resolve("1"), () => {}); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => {} : () => void @@ -2332,11 +2332,11 @@ const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1}); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => {throw 1} : () => never @@ -2360,11 +2360,11 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1)); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => Promise.resolve(1) : () => Promise @@ -2372,11 +2372,11 @@ const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -2396,11 +2396,11 @@ const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); >Promise.resolve("1") : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"1" : "1" > : ^^^ >() => Promise.reject(1) : () => Promise @@ -2408,11 +2408,11 @@ const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ @@ -2432,11 +2432,11 @@ const pc0 = p.then(() => Promise.reject("1"), undefined); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >undefined : undefined @@ -2458,11 +2458,11 @@ const pc1 = p.then(() => Promise.reject("1"), null); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ @@ -2482,11 +2482,11 @@ const pc2 = p.then(() => Promise.reject("1"), () => 1); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => 1 : () => number @@ -2510,11 +2510,11 @@ const pc3 = p.then(() => Promise.reject("1"), () => x); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => x : () => any @@ -2537,11 +2537,11 @@ const pc4 = p.then(() => Promise.reject("1"), () => undefined); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => undefined : () => undefined @@ -2565,11 +2565,11 @@ const pc5 = p.then(() => Promise.reject("1"), () => null); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => null : () => null @@ -2591,11 +2591,11 @@ const pc6 = p.then(() => Promise.reject("1"), () => {}); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => {} : () => void @@ -2617,11 +2617,11 @@ const pc7 = p.then(() => Promise.reject("1"), () => {throw 1}); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => {throw 1} : () => never @@ -2645,11 +2645,11 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => Promise.resolve(1) : () => Promise @@ -2657,11 +2657,11 @@ const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1)); >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -2681,11 +2681,11 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); >Promise.reject("1") : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >"1" : "1" > : ^^^ >() => Promise.reject(1) : () => Promise @@ -2693,11 +2693,11 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1)); >Promise.reject(1) : Promise > : ^^^^^^^^^^^^^^ >Promise.reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >reject : (reason?: any) => Promise -> : ^ ^^^^^^^^^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^ ^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/promiseVoidErrorCallback.types b/tests/baselines/reference/promiseVoidErrorCallback.types index 8e7b4e4b28fb3..b64636dbb482d 100644 --- a/tests/baselines/reference/promiseVoidErrorCallback.types +++ b/tests/baselines/reference/promiseVoidErrorCallback.types @@ -27,11 +27,11 @@ function f1(): Promise { >Promise.resolve({ __t1: "foo_t1" }) : Promise<{ __t1: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ __t1: "foo_t1" } : { __t1: string; } > : ^^^^^^^^^^^^^^^^^ >__t1 : string diff --git a/tests/baselines/reference/promiseWithResolvers.types b/tests/baselines/reference/promiseWithResolvers.types index 6ccb2b9736c2f..f3ac6d8b79e2a 100644 --- a/tests/baselines/reference/promiseWithResolvers.types +++ b/tests/baselines/reference/promiseWithResolvers.types @@ -15,9 +15,9 @@ const { promise, resolve, reject } = Promise.withResolvers(); >Promise.withResolvers() : PromiseWithResolvers > : ^^^^^^^^^^^^^^^^^^^^^^^ >Promise.withResolvers : () => PromiseWithResolvers -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >withResolvers : () => PromiseWithResolvers -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/promises.types b/tests/baselines/reference/promises.types index a6dc5831f889f..07223df069cb9 100644 --- a/tests/baselines/reference/promises.types +++ b/tests/baselines/reference/promises.types @@ -4,7 +4,7 @@ interface Promise { then(success?: (value: T) => U): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => U): Promise; (success?: (value: T) => Promise): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^^ ^^^ >success : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -12,7 +12,7 @@ interface Promise { then(success?: (value: T) => Promise): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (success?: (value: T) => U_1): Promise; (success?: (value: T) => Promise): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^^ ^^^^^^ ^^^ ^^^ ^^^ >success : (value: T) => Promise > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/promisesWithConstraints.types b/tests/baselines/reference/promisesWithConstraints.types index 2ea111f3c24e2..f88f00d5e5631 100644 --- a/tests/baselines/reference/promisesWithConstraints.types +++ b/tests/baselines/reference/promisesWithConstraints.types @@ -4,7 +4,7 @@ interface Promise { then(cb: (x: T) => Promise): Promise; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (cb: (x: T) => Promise): Promise; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >cb : (x: T) => Promise > : ^ ^^ ^^^^^ >x : T @@ -17,7 +17,7 @@ interface CPromise { then(cb: (x: T) => Promise): Promise; >then : (cb: (x: T) => Promise) => Promise -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >cb : (x: T) => Promise diff --git a/tests/baselines/reference/propTypeValidatorInference.types b/tests/baselines/reference/propTypeValidatorInference.types index 16d1e994330d4..9ba4574c5ba10 100644 --- a/tests/baselines/reference/propTypeValidatorInference.types +++ b/tests/baselines/reference/propTypeValidatorInference.types @@ -97,13 +97,13 @@ export const number: Requireable; export function shape

>(type: P): Requireable>; >shape :

>(type: P) => Requireable> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >type : P > : ^ export function oneOfType>(types: T[]): Requireable>>; >oneOfType : >(types: T[]) => Requireable>> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >types : T[] > : ^^^ @@ -224,11 +224,11 @@ const arrayOfTypes = [PropTypes.string, PropTypes.bool, PropTypes.shape({ >PropTypes.shape({ foo: PropTypes.string, bar: PropTypes.number.isRequired}) : PropTypes.Requireable; bar: PropTypes.Validator; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >PropTypes.shape :

>(type: P) => PropTypes.Requireable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >PropTypes : typeof PropTypes > : ^^^^^^^^^^^^^^^^ >shape :

>(type: P) => PropTypes.Requireable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >{ foo: PropTypes.string, bar: PropTypes.number.isRequired} : { foo: PropTypes.Requireable; bar: PropTypes.Validator; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -311,11 +311,11 @@ const propTypes: PropTypesMap = { >PropTypes.shape(innerProps) : PropTypes.Requireable; bar: PropTypes.Requireable; baz: PropTypes.Requireable; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >PropTypes.shape :

>(type: P) => PropTypes.Requireable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >PropTypes : typeof PropTypes > : ^^^^^^^^^^^^^^^^ >shape :

>(type: P) => PropTypes.Requireable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >innerProps : { foo: PropTypes.Validator; bar: PropTypes.Requireable; baz: PropTypes.Requireable; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isRequired : PropTypes.Validator; bar: PropTypes.Requireable; baz: PropTypes.Requireable; }>>> @@ -329,11 +329,11 @@ const propTypes: PropTypesMap = { >PropTypes.oneOfType(arrayOfTypes) : PropTypes.Requireable; bar: PropTypes.Validator; }>>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >PropTypes.oneOfType : >(types: T[]) => PropTypes.Requireable>> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >PropTypes : typeof PropTypes > : ^^^^^^^^^^^^^^^^ >oneOfType : >(types: T[]) => PropTypes.Requireable>> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >arrayOfTypes : (PropTypes.Requireable | PropTypes.Requireable | PropTypes.Requireable; bar: PropTypes.Validator; }>>)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isRequired : PropTypes.Validator; bar: PropTypes.Validator; }>>>> @@ -394,11 +394,11 @@ const propTypesWithoutAnnotation = { >PropTypes.shape(innerProps) : PropTypes.Requireable; bar: PropTypes.Requireable; baz: PropTypes.Requireable; }>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >PropTypes.shape :

>(type: P) => PropTypes.Requireable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >PropTypes : typeof PropTypes > : ^^^^^^^^^^^^^^^^ >shape :

>(type: P) => PropTypes.Requireable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ >innerProps : { foo: PropTypes.Validator; bar: PropTypes.Requireable; baz: PropTypes.Requireable; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isRequired : PropTypes.Validator; bar: PropTypes.Requireable; baz: PropTypes.Requireable; }>>> @@ -412,11 +412,11 @@ const propTypesWithoutAnnotation = { >PropTypes.oneOfType(arrayOfTypes) : PropTypes.Requireable; bar: PropTypes.Validator; }>>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >PropTypes.oneOfType : >(types: T[]) => PropTypes.Requireable>> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >PropTypes : typeof PropTypes > : ^^^^^^^^^^^^^^^^ >oneOfType : >(types: T[]) => PropTypes.Requireable>> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >arrayOfTypes : (PropTypes.Requireable | PropTypes.Requireable | PropTypes.Requireable; bar: PropTypes.Validator; }>>)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >isRequired : PropTypes.Validator; bar: PropTypes.Validator; }>>>> diff --git a/tests/baselines/reference/propagationOfPromiseInitialization.types b/tests/baselines/reference/propagationOfPromiseInitialization.types index f5c3708dc8d9c..3278a353539f5 100644 --- a/tests/baselines/reference/propagationOfPromiseInitialization.types +++ b/tests/baselines/reference/propagationOfPromiseInitialization.types @@ -4,7 +4,7 @@ interface IPromise { then(successCallback: (promiseValue: T) => TResult, errorCallback?: (reason: any) => TResult): IPromise; >then : (successCallback: (promiseValue: T) => TResult, errorCallback?: (reason: any) => TResult) => IPromise -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >successCallback : (promiseValue: T) => TResult > : ^ ^^ ^^^^^ >promiseValue : T diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types index abb802188b804..66e1fb9f7c936 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types @@ -103,7 +103,7 @@ var r2b = i.foo['getDate'](); var a: { >a : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ (): T; } @@ -117,7 +117,7 @@ var r3 = a().getDate(); >a() : Date > : ^^^^ >a : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >getDate : () => number > : ^^^^^^ @@ -131,21 +131,21 @@ var r3b = a()['getDate'](); >a() : Date > : ^^^^ >a : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >'getDate' : "getDate" > : ^^^^^^^^^ var b = { >b : { foo: (x: T) => number; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >{ foo: (x: T) => { var a = x['getDate'](); // number return a + x.getDate(); }} : { foo: (x: T) => number; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ foo: (x: T) => { >foo : (x: T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >(x: T) => { var a = x['getDate'](); // number return a + x.getDate(); } : (x: T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ @@ -183,11 +183,11 @@ var r4 = b.foo(new Date()); >b.foo(new Date()) : number > : ^^^^^^ >b.foo : (x: T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >b : { foo: (x: T) => number; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo : (x: T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >new Date() : Date > : ^^^^ >Date : DateConstructor diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints2.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints2.types index 4f8662f4906dd..5a574601a47d6 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints2.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints2.types @@ -197,7 +197,7 @@ var r2b = i.foo['foo'](); var a: { >a : { (): U; (x: U): U; (x: U, y: T): U; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ (): U; (x: U): U; @@ -225,7 +225,7 @@ var r3 = a().foo(); >a() : A > : ^ >a : { (): U; (x: U): U; (x: U, y: T): U; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : () => string > : ^^^^^^ @@ -239,7 +239,7 @@ var r3b = a()['foo'](); >a() : A > : ^ >a : { (): U; (x: U): U; (x: U, y: T): U; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >'foo' : "foo" > : ^^^^^ @@ -262,7 +262,7 @@ var r3c = a(aB, aB).foo(); >a(aB, aB) : B > : ^ >a : { (): U; (x: U): U; (x: U, y: T): U; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >aB : B > : ^ >aB : B @@ -280,7 +280,7 @@ var r3d = a(aB, aB)['foo'](); >a(aB, aB) : B > : ^ >a : { (): U; (x: U): U; (x: U, y: T): U; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >aB : B > : ^ >aB : B @@ -290,15 +290,15 @@ var r3d = a(aB, aB)['foo'](); var b = { >b : { foo: (x: U, y: T) => string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >{ foo: (x: U, y: T) => { var a = x['foo'](); // should be string return a + x.foo(); }} : { foo: (x: U, y: T) => string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ foo: (x: U, y: T) => { >foo : (x: U, y: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >(x: U, y: T) => { var a = x['foo'](); // should be string return a + x.foo(); } : (x: U, y: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : U > : ^ >y : T @@ -344,11 +344,11 @@ var r4 = b.foo(aB, aB); // no inferences for T so constraint isn't satisfied, er >b.foo(aB, aB) : string > : ^^^^^^ >b.foo : (x: U, y: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >b : { foo: (x: U, y: T) => string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo : (x: U, y: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >aB : B > : ^ >aB : B diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints3.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints3.types index 13236da358048..b8013c3bf5ed4 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints3.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints3.types @@ -184,7 +184,7 @@ var r2b = i.foo['foo'](); var a: { >a : { (): T; (x: U): U; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (): T; (x: U): U; @@ -201,7 +201,7 @@ var r3 = a().foo(); // error, no inferences for U so it doesn't satisfy constrai >a() : A > : ^ >a : { (): T; (x: U): U; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo : () => string > : ^^^^^^ @@ -215,7 +215,7 @@ var r3b = a()['foo'](); >a() : A > : ^ >a : { (): T; (x: U): U; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >'foo' : "foo" > : ^^^^^ @@ -230,7 +230,7 @@ var r3c = a(new B()).foo(); // valid call to an invalid function, U is inferred >a(new B()) : B > : ^ >a : { (): T; (x: U): U; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >new B() : B > : ^ >B : typeof B @@ -248,7 +248,7 @@ var r3d = a(new B())['foo'](); // valid call to an invalid function, U is inferr >a(new B()) : B > : ^ >a : { (): T; (x: U): U; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >new B() : B > : ^ >B : typeof B @@ -258,15 +258,15 @@ var r3d = a(new B())['foo'](); // valid call to an invalid function, U is inferr var b = { >b : { foo: (x: T) => string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >{ foo: (x: T) => { // BUG 823818 var a = x['foo'](); // should be string return a + x.foo(); }} : { foo: (x: T) => string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ foo: (x: T) => { >foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >(x: T) => { // BUG 823818 var a = x['foo'](); // should be string return a + x.foo(); } : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ @@ -305,11 +305,11 @@ var r4 = b.foo(new B()); // valid call to an invalid function >b.foo(new B()) : string > : ^^^^^^ >b.foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >b : { foo: (x: T) => string; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo : (x: T) => string -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >new B() : B > : ^ >B : typeof B diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types index 001aa437a7eaf..1cac5897cce2a 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints4.types @@ -100,7 +100,7 @@ var r2b = i.foo['notHere'](); var a: { >a : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ (): T; } @@ -114,7 +114,7 @@ var r3: string = a().notHere(); >a() : Date > : ^^^^ >a : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >notHere : any > : ^^^ @@ -128,7 +128,7 @@ var r3b: string = a()['notHere'](); >a() : Date > : ^^^^ >a : () => T -> : ^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >'notHere' : "notHere" > : ^^^^^^^^^ @@ -136,13 +136,13 @@ var b = { >b : any > : ^^^ >{ foo: (x: T): T => { var a = x['notHere'](); // should be string return a + x.notHere(); }, bar: b.foo().notHere()} : { foo: (x: T) => T; bar: any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ foo: (x: T): T => { >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: T): T => { var a = x['notHere'](); // should be string return a + x.notHere(); } : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types index 57655018bed08..944f812a18d18 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints5.types @@ -137,7 +137,7 @@ var r2b = i.foo['foo'](); var a: { >a : () => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ (): U; } @@ -152,7 +152,7 @@ var r3: string = a().notHere(); >a() : A > : ^ >a : () => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ >notHere : any > : ^^^ @@ -166,7 +166,7 @@ var r3b: string = a()['foo'](); >a() : A > : ^ >a : () => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ >'foo' : "foo" > : ^^^^^ @@ -174,13 +174,13 @@ var b = { >b : any > : ^^^ >{ foo: (x: U): U => { var a = x['foo'](); // should be string return a + x.notHere(); }, // BUG 794164 bar: b.foo(1).notHere()} : { foo: (x: U) => U; bar: any; } -> : ^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ foo: (x: U): U => { >foo : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: U): U => { var a = x['foo'](); // should be string return a + x.notHere(); } : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : U > : ^ diff --git a/tests/baselines/reference/propertyAccessOnTypeParameterWithoutConstraints.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithoutConstraints.types index df7f91479eb7c..8b5c1bdd6516c 100644 --- a/tests/baselines/reference/propertyAccessOnTypeParameterWithoutConstraints.types +++ b/tests/baselines/reference/propertyAccessOnTypeParameterWithoutConstraints.types @@ -100,7 +100,7 @@ var r2b = i.foo['toString'](); var a: { >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ (): T; } @@ -114,7 +114,7 @@ var r3: string = a().toString(); >a() : unknown > : ^^^^^^^ >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >toString : () => string > : ^^^^^^ @@ -128,21 +128,21 @@ var r3b: string = a()['toString'](); >a() : unknown > : ^^^^^^^ >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >'toString' : "toString" > : ^^^^^^^^^^ var b = { >b : { foo: (x: T) => string; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >{ foo: (x: T) => { var a = x['toString'](); // should be string return a + x.toString(); }} : { foo: (x: T) => string; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ foo: (x: T) => { >foo : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >(x: T) => { var a = x['toString'](); // should be string return a + x.toString(); } : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ @@ -180,11 +180,11 @@ var r4 = b.foo(1); >b.foo(1) : string > : ^^^^^^ >b.foo : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >b : { foo: (x: T) => string; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >foo : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/propertyAccessWidening.types b/tests/baselines/reference/propertyAccessWidening.types index 710ea4bedf22a..9ace97859f708 100644 --- a/tests/baselines/reference/propertyAccessWidening.types +++ b/tests/baselines/reference/propertyAccessWidening.types @@ -31,7 +31,7 @@ function g1(headerNames: any) { >[{cells: headerNames }].concat(t) : { cells: any; }[] > : ^^^^^^^^^^^^^^^^^ >[{cells: headerNames }].concat : { (...items: ConcatArray<{ cells: any; }>[]): { cells: any; }[]; (...items: ({ cells: any; } | ConcatArray<{ cells: any; }>)[]): { cells: any; }[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ >[{cells: headerNames }] : { cells: any; }[] > : ^^^^^^^^^^^^^^^^^ >{cells: headerNames } : { cells: any; } @@ -41,7 +41,7 @@ function g1(headerNames: any) { >headerNames : any > : ^^^ >concat : { (...items: ConcatArray<{ cells: any; }>[]): { cells: any; }[]; (...items: ({ cells: any; } | ConcatArray<{ cells: any; }>)[]): { cells: any; }[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ >t : { hasLineBreak: boolean; cells: never[]; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -74,7 +74,7 @@ function g2(headerNames: any) { >[{cells: headerNames }]["concat"](t) : { cells: any; }[] > : ^^^^^^^^^^^^^^^^^ >[{cells: headerNames }]["concat"] : { (...items: ConcatArray<{ cells: any; }>[]): { cells: any; }[]; (...items: ({ cells: any; } | ConcatArray<{ cells: any; }>)[]): { cells: any; }[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ >[{cells: headerNames }] : { cells: any; }[] > : ^^^^^^^^^^^^^^^^^ >{cells: headerNames } : { cells: any; } diff --git a/tests/baselines/reference/protectedMembersThisParameter.types b/tests/baselines/reference/protectedMembersThisParameter.types index 8098545371317..533b00679e7a8 100644 --- a/tests/baselines/reference/protectedMembersThisParameter.types +++ b/tests/baselines/reference/protectedMembersThisParameter.types @@ -95,7 +95,7 @@ class Z { function bA(this: T, arg: B) { >bA : (this: T, arg: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >arg : B @@ -133,7 +133,7 @@ function bA(this: T, arg: B) { } function bB(this: T, arg: B) { >bB : (this: T, arg: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >arg : B @@ -181,7 +181,7 @@ function bB(this: T, arg: B) { } function bC(this: T, arg: B) { >bC : (this: T, arg: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >arg : B @@ -229,7 +229,7 @@ function bC(this: T, arg: B) { } function bZ(this: T, arg: B) { >bZ : (this: T, arg: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >arg : B @@ -267,7 +267,7 @@ function bZ(this: T, arg: B) { } function bString(this: T, arg: B) { >bString : (this: T, arg: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >arg : B @@ -305,7 +305,7 @@ function bString(this: T, arg: B) { } function bAny(this: T, arg: B) { >bAny : (this: T, arg: B) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >arg : B diff --git a/tests/baselines/reference/quickIntersectionCheckCorrectlyCachesErrors.types b/tests/baselines/reference/quickIntersectionCheckCorrectlyCachesErrors.types index f9d566f624ddd..4bc5d488ed566 100644 --- a/tests/baselines/reference/quickIntersectionCheckCorrectlyCachesErrors.types +++ b/tests/baselines/reference/quickIntersectionCheckCorrectlyCachesErrors.types @@ -20,7 +20,7 @@ declare function g(C: F): string; export function wu(CC: F) { >wu : (CC: F) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >o : object > : ^^^^^^ >CC : F diff --git a/tests/baselines/reference/quickinfoTypeAtReturnPositionsInaccurate.types b/tests/baselines/reference/quickinfoTypeAtReturnPositionsInaccurate.types index 0562a597d826d..ce964cbf479fa 100644 --- a/tests/baselines/reference/quickinfoTypeAtReturnPositionsInaccurate.types +++ b/tests/baselines/reference/quickinfoTypeAtReturnPositionsInaccurate.types @@ -53,9 +53,9 @@ class StrClass { const isNumClass = | StrClass> ( >isNumClass : | StrClass>(item: Item) => item is Extract> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ > | StrClass> ( item: Item ): item is Extract> => { return (item instanceof NumClass); } : | StrClass>(item: Item) => item is Extract> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ item: Item >item : Item @@ -93,7 +93,7 @@ class SimpleStore | StrClass public get(entryId: EntryId): Entries[EntryId] { >get : (entryId: EntryId) => Entries[EntryId] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >entryId : EntryId > : ^^^^^^^ @@ -125,7 +125,7 @@ class SimpleStore | StrClass >isNumClass(entry) : boolean > : ^^^^^^^ >isNumClass : | StrClass>(item: Item) => item is Extract> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >entry : Entries[EntryId] > : ^^^^^^^^^^^^^^^^ @@ -182,7 +182,7 @@ class ComplexStore { public get( >get : (sliceId: SliceId, sliceKey: SliceKey) => Slices[SliceId][SliceKey] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ sliceId: SliceId, sliceKey: SliceKey >sliceId : SliceId @@ -213,7 +213,7 @@ class ComplexStore { >isNumClass(item) : boolean > : ^^^^^^^ >isNumClass : | StrClass>(item: Item) => item is Extract> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >item : Slices[SliceId][SliceKey] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -232,11 +232,11 @@ class ComplexStore { >item.get() : string | number > : ^^^^^^^^^^^^^^^ >item.get : (() => number) | (() => string) -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^ ^ >item : NumClass | StrClass > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : (() => number) | (() => string) -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^ ^ // unfortunately, doesn't work completely. // it seems like item's predicated type leaks outside the bracket... @@ -248,7 +248,7 @@ class ComplexStore { public get2( >get2 : (sliceId: SliceId, sliceKey: SliceKey) => Slices[SliceId][SliceKey] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ sliceId: SliceId, sliceKey: SliceKey >sliceId : SliceId @@ -279,7 +279,7 @@ class ComplexStore { >isNumClass(item) : boolean > : ^^^^^^^ >isNumClass : | StrClass>(item: Item) => item is Extract> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >item : Slices[SliceId][SliceKey] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -294,11 +294,11 @@ class ComplexStore { >item.get() : string | number > : ^^^^^^^^^^^^^^^ >item.get : (() => number) | (() => string) -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^ ^ >item : NumClass | StrClass > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >get : (() => number) | (() => string) -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^ ^^^^^^^^^^^ ^ return item; // type is never >item : Slices[SliceId][SliceKey] @@ -319,13 +319,13 @@ interface Program { } declare function isBuilderProgram(program: Program | T): program is T; >isBuilderProgram : (program: Program | T) => program is T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >program : Program | T > : ^^^^^^^^^^^ export function listFiles(program: Program | T) { >listFiles : (program: Program | T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >program : Program | T > : ^^^^^^^^^^^ @@ -337,7 +337,7 @@ export function listFiles(program: Program | T) { >isBuilderProgram(program) : boolean > : ^^^^^^^ >isBuilderProgram : (program: Program | T_1) => program is T_1 -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >program : Program | T > : ^^^^^^^^^^^ >program.getProgram() : Program diff --git a/tests/baselines/reference/reactHOCSpreadprops.types b/tests/baselines/reference/reactHOCSpreadprops.types index 8a50e112749d3..903fbf596a007 100644 --- a/tests/baselines/reference/reactHOCSpreadprops.types +++ b/tests/baselines/reference/reactHOCSpreadprops.types @@ -14,7 +14,7 @@ import React = require("react"); function f

(App: React.ComponentClass

| React.StatelessComponent

): void { >f :

(App: React.ComponentClass

| React.StatelessComponent

) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >App : React.ComponentClass | React.StatelessComponent

> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >React : any diff --git a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types index 2da91a602779a..004baea2dc439 100644 --- a/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types +++ b/tests/baselines/reference/reactReadonlyHOCAssignabilityReal.types @@ -14,7 +14,7 @@ import * as React from "react"; function myHigherOrderComponent

(Inner: React.ComponentClass

): React.ComponentClass

{ >myHigherOrderComponent :

(Inner: React.ComponentClass

) => React.ComponentClass

-> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >Inner : React.ComponentClass

(args: P[]): P; >noSpread :

(args: P[]) => P -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : P[] > : ^^^ declare function spread

(...args: P[]): P; >spread :

(...args: P[]) => P -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : P[] > : ^^^ @@ -806,7 +806,7 @@ noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); >noSpread([`1.${'2'}.3`, `1.${'2'}.4`]) : "1.2.3" | "1.2.4" > : ^^^^^^^^^^^^^^^^^ >noSpread :

(args: P[]) => P -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[`1.${'2'}.3`, `1.${'2'}.4`] : ("1.2.3" | "1.2.4")[] > : ^^^^^^^^^^^^^^^^^^^^^ >`1.${'2'}.3` : "1.2.3" @@ -822,7 +822,7 @@ noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); >noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]) : `1.${string}.3` | `1.${string}.4` > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >noSpread :

(args: P[]) => P -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[`1.${'2' as string}.3`, `1.${'2' as string}.4`] : (`1.${string}.3` | `1.${string}.4`)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >`1.${'2' as string}.3` : `1.${string}.3` @@ -842,7 +842,7 @@ spread(`1.${'2'}.3`, `1.${'2'}.4`); >spread(`1.${'2'}.3`, `1.${'2'}.4`) : "1.2.3" | "1.2.4" > : ^^^^^^^^^^^^^^^^^ >spread :

(...args: P[]) => P -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >`1.${'2'}.3` : "1.2.3" > : ^^^^^^^ >'2' : "2" @@ -856,7 +856,7 @@ spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); >spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`) : `1.${string}.3` | `1.${string}.4` > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >spread :

(...args: P[]) => P -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >`1.${'2' as string}.3` : `1.${string}.3` > : ^^^^^^^^^^^^^^^ >'2' as string : string @@ -872,7 +872,7 @@ spread(`1.${'2' as string}.3`, `1.${'2' as string}.4`); function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) { >ft1 : (t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, u2: Uppercase<`1.${T}.4`>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : Uppercase @@ -886,7 +886,7 @@ function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, >spread(`1.${t}.3`, `1.${t}.4`) : `1.${T}.3` | `1.${T}.4` > : ^^^^^^^^^^^^^^^^^^^^^^^ >spread :

(...args: P[]) => P -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >`1.${t}.3` : `1.${T}.3` > : ^^^^^^^^^^ >t : T @@ -900,7 +900,7 @@ function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, >spread(`1.${u}.3`, `1.${u}.4`) : `1.${Uppercase}.3` | `1.${Uppercase}.4` > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >spread :

(...args: P[]) => P -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >`1.${u}.3` : `1.${Uppercase}.3` > : ^^^^^^^^^^^^^^^^^^^^^ >u : Uppercase @@ -914,7 +914,7 @@ function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, >spread(u1, u2) : `1.${Uppercase}.3` | `1.${Uppercase}.4` > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >spread :

(...args: P[]) => P -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >u1 : `1.${Uppercase}.3` > : ^^^^^^^^^^^^^^^^^^^^^ >u2 : `1.${Uppercase}.4` diff --git a/tests/baselines/reference/templateLiteralTypes4.types b/tests/baselines/reference/templateLiteralTypes4.types index ce1fb6e30e827..95ecb6c5d0e95 100644 --- a/tests/baselines/reference/templateLiteralTypes4.types +++ b/tests/baselines/reference/templateLiteralTypes4.types @@ -612,7 +612,7 @@ interface TypedObjectMembers { // get/set a field by name get(key: K): FieldType["type"]>; >get : (key: K) => FieldType["type"]> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ >name : K @@ -620,7 +620,7 @@ interface TypedObjectMembers { set(key: K, value: FieldType["type"]>): void; >set : (key: K, value: FieldType["type"]>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >key : K > : ^ >value : FieldType["type"]> @@ -631,13 +631,13 @@ interface TypedObjectMembers { // get/set a field by index getIndex>(index: I): FieldType["type"]>; >getIndex : >(index: I) => FieldType["type"]> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >index : I > : ^ setIndex>(index: I, value: FieldType["type"]>): void; >setIndex : >(index: I, value: FieldType["type"]>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >index : I > : ^ >value : FieldType["type"]> @@ -679,11 +679,11 @@ p.getIndex(0); // ok, 0 is a valid index >p.getIndex(0) : number > : ^^^^^^ >p.getIndex : (index: I) => FieldType["type"]> -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^ >p : Point > : ^^^^^ >getIndex : (index: I) => FieldType["type"]> -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^ >0 : 0 > : ^ @@ -691,11 +691,11 @@ p.getIndex(1); // ok, 1 is a valid index >p.getIndex(1) : number > : ^^^^^^ >p.getIndex : (index: I) => FieldType["type"]> -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^ >p : Point > : ^^^^^ >getIndex : (index: I) => FieldType["type"]> -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^ >1 : 1 > : ^ @@ -703,11 +703,11 @@ p.getIndex(2); // error, 2 is not a valid index >p.getIndex(2) : number > : ^^^^^^ >p.getIndex : (index: I) => FieldType["type"]> -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^ >p : Point > : ^^^^^ >getIndex : (index: I) => FieldType["type"]> -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^ ^ +> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^ >2 : 2 > : ^ @@ -756,7 +756,7 @@ p.setIndex(2, 3); // error, 2 is not a valid index // function inference declare function f1(s: `**${T}**`): T; >f1 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : `**${T}**` > : ^^^^^^^^^^ @@ -764,13 +764,13 @@ f1("**123**"); // "123" >f1("**123**") : "123" > : ^^^^^ >f1 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"**123**" : "**123**" > : ^^^^^^^^^ declare function f2(s: `**${T}**`): T; >f2 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : `**${T}**` > : ^^^^^^^^^^ @@ -778,13 +778,13 @@ f2("**123**"); // 123 >f2("**123**") : 123 > : ^^^ >f2 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"**123**" : "**123**" > : ^^^^^^^^^ declare function f3(s: `**${T}**`): T; >f3 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : `**${T}**` > : ^^^^^^^^^^ @@ -792,13 +792,13 @@ f3("**123**"); // 123n >f3("**123**") : 123n > : ^^^^ >f3 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"**123**" : "**123**" > : ^^^^^^^^^ declare function f4(s: `**${T}**`): T; >f4 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : `**${T}**` > : ^^^^^^^^^^ @@ -806,7 +806,7 @@ f4("**true**"); // true | "true" >f4("**true**") : true > : ^^^^ >f4 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"**true**" : "**true**" > : ^^^^^^^^^^ @@ -814,7 +814,7 @@ f4("**false**"); // false | "false" >f4("**false**") : false > : ^^^^^ >f4 : (s: `**${T}**`) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"**false**" : "**false**" > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/templateLiteralTypes5.types b/tests/baselines/reference/templateLiteralTypes5.types index 512d174462a89..1011698992efc 100644 --- a/tests/baselines/reference/templateLiteralTypes5.types +++ b/tests/baselines/reference/templateLiteralTypes5.types @@ -13,7 +13,7 @@ interface TypeMap { } declare const f: (x: `${T0}`) => TypeMap[T0]; >f : (x: `${T0}`) => TypeMap[T0] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T0 > : ^^ @@ -27,7 +27,7 @@ const f1: F1 = f; >f1 : F1 > : ^^ >f : (x: `${T0}`) => TypeMap[T0] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ type F2 = (x: `${T2}`) => TypeMap[`${T2}`] >F2 : F2 @@ -39,11 +39,11 @@ const f2: F2 = f >f2 : F2 > : ^^ >f : (x: `${T0}`) => TypeMap[T0] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ function f3(x: T3) { >f3 : (x: T3) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T3 > : ^^ diff --git a/tests/baselines/reference/templateLiteralTypes6.types b/tests/baselines/reference/templateLiteralTypes6.types index 1260fe0c6669c..dfe666efcb33d 100644 --- a/tests/baselines/reference/templateLiteralTypes6.types +++ b/tests/baselines/reference/templateLiteralTypes6.types @@ -27,7 +27,7 @@ type Keyof = keyof T & string; declare function f1< >f1 : , Event extends Keyof>(eventPath: `${Scope}:${Event}`) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ Scope extends Keyof, Event extends Keyof, @@ -37,7 +37,7 @@ declare function f1< function f2< >f2 : , Event extends Keyof>(scope: Scope, event: Event) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ Scope extends Keyof, Event extends Keyof, @@ -51,7 +51,7 @@ function f2< >f1(`${scope}:${event}`) : void > : ^^^^ >f1 : , Event_1 extends Keyof>(eventPath: `${Scope_1}:${Event_1}`) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >`${scope}:${event}` : `${Scope}:${Event}` > : ^^^^^^^^^^^^^^^^^^^ >scope : Scope diff --git a/tests/baselines/reference/templateLiteralTypes7.types b/tests/baselines/reference/templateLiteralTypes7.types index 866cc90791203..bd7cc6ef83dc8 100644 --- a/tests/baselines/reference/templateLiteralTypes7.types +++ b/tests/baselines/reference/templateLiteralTypes7.types @@ -23,7 +23,7 @@ interface NMap { declare const g: (x: `${T}`) => NMap[T] >g : (x: `${T}`) => NMap[T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : `${T}` > : ^^^^^^ @@ -37,7 +37,7 @@ const g1: G1 = g; // ok >g1 : G1 > : ^^ >g : (x: `${T}`) => NMap[T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ type G2 = (x: `${T}`) => NMap[T] >G2 : G2 @@ -49,7 +49,7 @@ const g2: G2 = g; // error >g2 : G2 > : ^^ >g : (x: `${T}`) => NMap[T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ type G3 = (x: `${T}`) => NMap[T] >G3 : G3 @@ -61,5 +61,5 @@ const g3: G3 = g; // ok >g3 : G3 > : ^^ >g : (x: `${T}`) => NMap[T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/testTypings.types b/tests/baselines/reference/testTypings.types index 259eee83adf56..147d5b28bc616 100644 --- a/tests/baselines/reference/testTypings.types +++ b/tests/baselines/reference/testTypings.types @@ -11,7 +11,7 @@ interface IComparable { declare function sort>(items: U[]): U[]; >sort : >(items: U[]) => U[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >items : U[] > : ^^^ diff --git a/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types b/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types index 0a55f817012a4..0d4d9d1b44539 100644 --- a/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types +++ b/tests/baselines/reference/thisConditionalOnMethodReturnOfGenericInstance.types @@ -51,9 +51,9 @@ const y = x.method(); // usage flags `method` in `B` as circular and marks `y` a >x.method() : string | undefined > : ^^^^^^^^^^^^^^^^^^ >x.method : () => string | (C<{}> extends C ? undefined : null) -> : ^^^^^^ ^^^^^ +> : ^^^^^^ ^ ^^ >x : C<{}> > : ^^^^^ >method : () => string | (C<{}> extends C ? undefined : null) -> : ^^^^^^ ^^^^^ +> : ^^^^^^ ^ ^^ diff --git a/tests/baselines/reference/thisInFunctionCall.types b/tests/baselines/reference/thisInFunctionCall.types index 3330d49a20bf5..e0d15defc3332 100644 --- a/tests/baselines/reference/thisInFunctionCall.types +++ b/tests/baselines/reference/thisInFunctionCall.types @@ -37,7 +37,7 @@ class Test { >this.data.find(function (d) { return d === this.data.length }) : number > : ^^^^^^ >this.data.find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >this.data : number[] > : ^^^^^^^^ >this : this @@ -45,7 +45,7 @@ class Test { >data : number[] > : ^^^^^^^^ >find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >function (d) { return d === this.data.length } : (d: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >d : number @@ -181,7 +181,7 @@ class Test { >this.data.find( /** @this {Test} */ function (d) { return d === this.data.length }, this) : number > : ^^^^^^ >this.data.find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >this.data : number[] > : ^^^^^^^^ >this : this @@ -189,7 +189,7 @@ class Test { >data : number[] > : ^^^^^^^^ >find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ /** @this {Test} */ function (d) { diff --git a/tests/baselines/reference/thisInFunctionCallJs.types b/tests/baselines/reference/thisInFunctionCallJs.types index 66f131b5e4c7e..e67a63501e23d 100644 --- a/tests/baselines/reference/thisInFunctionCallJs.types +++ b/tests/baselines/reference/thisInFunctionCallJs.types @@ -34,7 +34,7 @@ class Test { >this.data.find(function (d) { return d === this.data.length }) : number > : ^^^^^^ >this.data.find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >this.data : number[] > : ^^^^^^^^ >this : this @@ -42,7 +42,7 @@ class Test { >data : number[] > : ^^^^^^^^ >find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >function (d) { return d === this.data.length } : (d: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >d : number @@ -178,7 +178,7 @@ class Test { >this.data.find( /** @this {Test} */ function (d) { return d === this.data.length }, this) : number > : ^^^^^^ >this.data.find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >this.data : number[] > : ^^^^^^^^ >this : this @@ -186,7 +186,7 @@ class Test { >data : number[] > : ^^^^^^^^ >find : { (predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ /** @this {Test} */ function (d) { diff --git a/tests/baselines/reference/thisInGenericStaticMembers.types b/tests/baselines/reference/thisInGenericStaticMembers.types index e0e86c998b66b..2f972e519676a 100644 --- a/tests/baselines/reference/thisInGenericStaticMembers.types +++ b/tests/baselines/reference/thisInGenericStaticMembers.types @@ -9,7 +9,7 @@ class A { static one(source:T, value: number): T { >one : (source: T, value: number) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >source : T > : ^ >value : number @@ -22,7 +22,7 @@ class A { static two(source: T): T { >two : (source: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >source : T > : ^ @@ -30,11 +30,11 @@ class A { >this.one(source, 42) : T > : ^ >this.one : (source: T_1, value: number) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >this : typeof A > : ^^^^^^^^ >one : (source: T_1, value: number) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >source : T > : ^ >42 : 42 diff --git a/tests/baselines/reference/thisInInvalidContexts.types b/tests/baselines/reference/thisInInvalidContexts.types index f651e32dff49d..5a39ff51ed534 100644 --- a/tests/baselines/reference/thisInInvalidContexts.types +++ b/tests/baselines/reference/thisInInvalidContexts.types @@ -74,7 +74,7 @@ module M { //'this' as a type argument function genericFunc(x: T) { } >genericFunc : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -82,7 +82,7 @@ genericFunc(undefined); // Should be an error >genericFunc(undefined) : void > : ^^^^ >genericFunc : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ diff --git a/tests/baselines/reference/thisInInvalidContextsExternalModule.types b/tests/baselines/reference/thisInInvalidContextsExternalModule.types index ede0e7c8d30a0..f4fbdd0d75738 100644 --- a/tests/baselines/reference/thisInInvalidContextsExternalModule.types +++ b/tests/baselines/reference/thisInInvalidContextsExternalModule.types @@ -74,7 +74,7 @@ module M { //'this' as a type argument function genericFunc(x: T) { } >genericFunc : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -82,7 +82,7 @@ genericFunc(undefined); // Should be an error >genericFunc(undefined) : void > : ^^^^ >genericFunc : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >undefined : undefined > : ^^^^^^^^^ diff --git a/tests/baselines/reference/thisInTupleTypeParameterConstraints.types b/tests/baselines/reference/thisInTupleTypeParameterConstraints.types index cf366d02823a2..4f5751cdfec48 100644 --- a/tests/baselines/reference/thisInTupleTypeParameterConstraints.types +++ b/tests/baselines/reference/thisInTupleTypeParameterConstraints.types @@ -41,7 +41,7 @@ interface Array { declare function f number]>(a: T): void; >f : number]>(a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >a : T @@ -57,7 +57,7 @@ f(x); >f(x) : void > : ^^^^ >f : number]>(a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : [(x: number) => number] > : ^^ ^^ ^^^^^ ^ diff --git a/tests/baselines/reference/thisIndexOnExistingReadonlyFieldIsNotNever.types b/tests/baselines/reference/thisIndexOnExistingReadonlyFieldIsNotNever.types index 8749b6aead8df..5727bb52e83dd 100644 --- a/tests/baselines/reference/thisIndexOnExistingReadonlyFieldIsNotNever.types +++ b/tests/baselines/reference/thisIndexOnExistingReadonlyFieldIsNotNever.types @@ -32,7 +32,7 @@ class CoachMarkAnchorDecorator { decorateComponent

(anchor: P) { >decorateComponent :

(anchor: P) => typeof CoachMarkAnchor -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >anchor : P > : ^ diff --git a/tests/baselines/reference/thisPrototypeMethodCompoundAssignment.types b/tests/baselines/reference/thisPrototypeMethodCompoundAssignment.types index cf43d8d1dd22e..6d122f826fed4 100644 --- a/tests/baselines/reference/thisPrototypeMethodCompoundAssignment.types +++ b/tests/baselines/reference/thisPrototypeMethodCompoundAssignment.types @@ -21,7 +21,7 @@ Element.prototype.remove ??= function () { >this.parentNode?.removeChild(this) : Element | undefined > : ^^^^^^^^^^^^^^^^^^^ >this.parentNode?.removeChild : ((child: T) => T) | undefined -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >this.parentNode : ParentNode | null > : ^^^^^^^^^^^^^^^^^ >this : Element @@ -29,7 +29,7 @@ Element.prototype.remove ??= function () { >parentNode : ParentNode | null > : ^^^^^^^^^^^^^^^^^ >removeChild : ((child: T) => T) | undefined -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >this : Element > : ^^^^^^^ diff --git a/tests/baselines/reference/thisPrototypeMethodCompoundAssignmentJs.types b/tests/baselines/reference/thisPrototypeMethodCompoundAssignmentJs.types index bccc956b0f50f..00896f798eef2 100644 --- a/tests/baselines/reference/thisPrototypeMethodCompoundAssignmentJs.types +++ b/tests/baselines/reference/thisPrototypeMethodCompoundAssignmentJs.types @@ -21,7 +21,7 @@ Element.prototype.remove ??= function () { >this.parentNode?.removeChild(this) : Element | undefined > : ^^^^^^^^^^^^^^^^^^^ >this.parentNode?.removeChild : ((child: T) => T) | undefined -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >this.parentNode : ParentNode | null > : ^^^^^^^^^^^^^^^^^ >this : Element @@ -29,7 +29,7 @@ Element.prototype.remove ??= function () { >parentNode : ParentNode | null > : ^^^^^^^^^^^^^^^^^ >removeChild : ((child: T) => T) | undefined -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >this : Element > : ^^^^^^^ @@ -58,7 +58,7 @@ Element.prototype.remove ??= function () { >this.parentNode?.removeChild(this) : Node | undefined > : ^^^^^^^^^^^^^^^^ >this.parentNode?.removeChild : ((child: T) => T) | undefined -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >this.parentNode : ParentNode | null > : ^^^^^^^^^^^^^^^^^ >this : Node @@ -66,7 +66,7 @@ Element.prototype.remove ??= function () { >parentNode : ParentNode | null > : ^^^^^^^^^^^^^^^^^ >removeChild : ((child: T) => T) | undefined -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >this : Node > : ^^^^ diff --git a/tests/baselines/reference/thisTypeAccessibility.types b/tests/baselines/reference/thisTypeAccessibility.types index 38e1aba759e5c..f1b1937d4abe4 100644 --- a/tests/baselines/reference/thisTypeAccessibility.types +++ b/tests/baselines/reference/thisTypeAccessibility.types @@ -186,7 +186,7 @@ MyClass.prototype.extension1 = function (this: MyClass, p: number) { MyClass.prototype.extension2 = function (this: T, p: number) { >MyClass.prototype.extension2 = function (this: T, p: number) { this.p = p; this.pp = p; this.ppp = p; MyClass.sp = p; MyClass.spp = p; MyClass.sppp = p;} : (this: T, p: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >MyClass.prototype.extension2 : (p: number) => void > : ^ ^^ ^^^^^ >MyClass.prototype : MyClass @@ -198,7 +198,7 @@ MyClass.prototype.extension2 = function (this: T, p: number) >extension2 : (p: number) => void > : ^ ^^ ^^^^^ >function (this: T, p: number) { this.p = p; this.pp = p; this.ppp = p; MyClass.sp = p; MyClass.spp = p; MyClass.sppp = p;} : (this: T, p: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >p : number @@ -279,7 +279,7 @@ MyClass.prototype.extension2 = function (this: T, p: number) function extension3 (this: T, p: number) { >extension3 : (this: T, p: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : T > : ^ >p : number @@ -360,7 +360,7 @@ function extension3 (this: T, p: number) { MyClass.prototype.extension3 = extension3; >MyClass.prototype.extension3 = extension3 : (this: T, p: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >MyClass.prototype.extension3 : (p: number) => void > : ^ ^^ ^^^^^ >MyClass.prototype : MyClass @@ -372,11 +372,11 @@ MyClass.prototype.extension3 = extension3; >extension3 : (p: number) => void > : ^ ^^ ^^^^^ >extension3 : (this: T, p: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ function extension4(this: MyGenericClass, p: T) { >extension4 : (this: MyGenericClass, p: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >this : MyGenericClass > : ^^^^^^^^^^^^^^^^^ >p : T diff --git a/tests/baselines/reference/thisTypeAndConstraints.types b/tests/baselines/reference/thisTypeAndConstraints.types index 507820b75dd73..390efb9c9c5f4 100644 --- a/tests/baselines/reference/thisTypeAndConstraints.types +++ b/tests/baselines/reference/thisTypeAndConstraints.types @@ -17,13 +17,13 @@ class A { function f(x: T) { >f : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ function g(x: U) { >g : (x: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : U > : ^ @@ -82,7 +82,7 @@ class B { } bar(x: U) { >bar : (x: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : U > : ^ diff --git a/tests/baselines/reference/thisTypeInFunctions.types b/tests/baselines/reference/thisTypeInFunctions.types index 1f704de6562eb..6677e7df2e822 100644 --- a/tests/baselines/reference/thisTypeInFunctions.types +++ b/tests/baselines/reference/thisTypeInFunctions.types @@ -1540,7 +1540,7 @@ let anyThis = new AnyThis(); //// type parameter inference //// declare var f: { >f : { (this: void, x: number): number; call(this: (...argArray: any[]) => U, ...argArray: any[]): U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ (this: void, x: number): number, >this : void @@ -1550,7 +1550,7 @@ declare var f: { call(this: (...argArray: any[]) => U, ...argArray: any[]): U; >call : (this: (...argArray: any[]) => U, ...argArray: any[]) => U -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >this : (...argArray: any[]) => U > : ^^^^ ^^ ^^^^^ >argArray : any[] @@ -1565,11 +1565,11 @@ let n: number = f.call(12); >f.call(12) : number > : ^^^^^^ >f.call : (this: (...argArray: any[]) => U, ...argArray: any[]) => U -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >f : { (this: void, x: number): number; call(this: (...argArray: any[]) => U, ...argArray: any[]): U; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >call : (this: (...argArray: any[]) => U, ...argArray: any[]) => U -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >12 : 12 > : ^^ diff --git a/tests/baselines/reference/thisTypeInFunctions3.types b/tests/baselines/reference/thisTypeInFunctions3.types index a53d7fd30de05..f3b70e93830fa 100644 --- a/tests/baselines/reference/thisTypeInFunctions3.types +++ b/tests/baselines/reference/thisTypeInFunctions3.types @@ -7,7 +7,7 @@ declare class Base { check(prop: TProp): boolean; >check : (prop: TProp) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >prop : TProp > : ^^^^^ } diff --git a/tests/baselines/reference/thisTypeInObjectLiterals2.types b/tests/baselines/reference/thisTypeInObjectLiterals2.types index 05cb646d4eea8..788f9a5d1315b 100644 --- a/tests/baselines/reference/thisTypeInObjectLiterals2.types +++ b/tests/baselines/reference/thisTypeInObjectLiterals2.types @@ -640,7 +640,7 @@ type ObjectDescriptor = { declare function makeObject(desc: ObjectDescriptor): D & M; >makeObject : (desc: ObjectDescriptor) => D & M -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >desc : ObjectDescriptor > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -650,7 +650,7 @@ let x1 = makeObject({ >makeObject({ data: { x: 0, y: 0 }, methods: { moveBy(dx: number, dy: number) { this.x += dx; // Strongly typed this this.y += dy; // Strongly typed this } }}) : { x: number; y: number; } & { moveBy(dx: number, dy: number): void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >makeObject : (desc: ObjectDescriptor) => D & M -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ data: { x: 0, y: 0 }, methods: { moveBy(dx: number, dy: number) { this.x += dx; // Strongly typed this this.y += dy; // Strongly typed this } }} : { data: { x: number; y: number; }; methods: { moveBy(dx: number, dy: number): void; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ @@ -727,7 +727,7 @@ type ObjectDescriptor2 = ThisType & { declare function makeObject2(desc: ObjectDescriptor): D & M; >makeObject2 : (desc: ObjectDescriptor) => D & M -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >desc : ObjectDescriptor > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -737,7 +737,7 @@ let x2 = makeObject2({ >makeObject2({ data: { x: 0, y: 0 }, methods: { moveBy(dx: number, dy: number) { this.x += dx; // Strongly typed this this.y += dy; // Strongly typed this } }}) : { x: number; y: number; } & { moveBy(dx: number, dy: number): void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >makeObject2 : (desc: ObjectDescriptor) => D & M -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ data: { x: 0, y: 0 }, methods: { moveBy(dx: number, dy: number) { this.x += dx; // Strongly typed this this.y += dy; // Strongly typed this } }} : { data: { x: number; y: number; }; methods: { moveBy(dx: number, dy: number): void; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ @@ -826,7 +826,7 @@ type PropDescMap = { declare function defineProp(obj: T, name: K, desc: PropDesc & ThisType): T & Record; >defineProp : (obj: T, name: K, desc: PropDesc & ThisType) => T & Record -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >name : K @@ -836,7 +836,7 @@ declare function defineProp(obj: T, name: K, desc: PropD declare function defineProps(obj: T, descs: PropDescMap & ThisType): T & U; >defineProps : (obj: T, descs: PropDescMap & ThisType) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >descs : PropDescMap & ThisType @@ -848,7 +848,7 @@ let p10 = defineProp(p1, "foo", { value: 42 }); >defineProp(p1, "foo", { value: 42 }) : Point & Record<"foo", number> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >defineProp : (obj: T, name: K, desc: PropDesc & ThisType) => T & Record -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >p1 : Point > : ^^^^^ >"foo" : "foo" @@ -886,7 +886,7 @@ let p11 = defineProp(p1, "bar", { >defineProp(p1, "bar", { get() { return this.x; }, set(value: number) { this.x = value; }}) : Point & Record<"bar", number> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >defineProp : (obj: T, name: K, desc: PropDesc & ThisType) => T & Record -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >p1 : Point > : ^^^^^ >"bar" : "bar" @@ -952,7 +952,7 @@ let p12 = defineProps(p1, { >defineProps(p1, { foo: { value: 42 }, bar: { get(): number { return this.x; }, set(value: number) { this.x = value; } }}) : Point & { foo: number; bar: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >defineProps : (obj: T, descs: PropDescMap & ThisType) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >p1 : Point > : ^^^^^ >{ foo: { value: 42 }, bar: { get(): number { return this.x; }, set(value: number) { this.x = value; } }} : { foo: { value: number; }; bar: { get(): number; set(value: number): void; }; } @@ -1096,7 +1096,7 @@ type VueOptions = ThisType & { declare const Vue: new (options: VueOptions) => D & M & P; >Vue : new (options: VueOptions) => D & M & P -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ >options : VueOptions > : ^^^^^^^^^^^^^^^^^^^ @@ -1106,7 +1106,7 @@ let vue = new Vue({ >new Vue({ data: () => ({ x: 1, y: 2 }), methods: { f(x: string) { return this.x; } }, computed: { test(): number { return this.x; }, hello: { get() { return "hi"; }, set(value: string) { } } }}) : { x: number; y: number; } & { f(x: string): number; } & { test: number; hello: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Vue : new (options: VueOptions) => D & M & P -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ >{ data: () => ({ x: 1, y: 2 }), methods: { f(x: string) { return this.x; } }, computed: { test(): number { return this.x; }, hello: { get() { return "hi"; }, set(value: string) { } } }} : { data: () => { x: number; y: number; }; methods: { f(x: string): number; }; computed: { test(): number; hello: { get(): string; set(value: string): void; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/thisTypeInTaggedTemplateCall.types b/tests/baselines/reference/thisTypeInTaggedTemplateCall.types index 1cb88052001ba..53afabe6ef3a8 100644 --- a/tests/baselines/reference/thisTypeInTaggedTemplateCall.types +++ b/tests/baselines/reference/thisTypeInTaggedTemplateCall.types @@ -7,7 +7,7 @@ class Foo { static m(this: new () => T, strings: TemplateStringsArray | string) { >m : (this: new () => T, strings: TemplateStringsArray | string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >this : new () => T > : ^^^^^^^^^^ >strings : string | TemplateStringsArray @@ -25,11 +25,11 @@ Foo.m`test`; >Foo.m`test` : Foo > : ^^^ >Foo.m : (this: new () => T, strings: TemplateStringsArray | string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >Foo : typeof Foo > : ^^^^^^^^^^ >m : (this: new () => T, strings: TemplateStringsArray | string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >`test` : "test" > : ^^^^^^ @@ -37,13 +37,13 @@ Foo.m`test`; >(Foo.m)`test` : Foo > : ^^^ >(Foo.m) : (this: new () => T, strings: TemplateStringsArray | string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >Foo.m : (this: new () => T, strings: TemplateStringsArray | string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >Foo : typeof Foo > : ^^^^^^^^^^ >m : (this: new () => T, strings: TemplateStringsArray | string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >`test` : "test" > : ^^^^^^ diff --git a/tests/baselines/reference/thisTypeInTuples.types b/tests/baselines/reference/thisTypeInTuples.types index ea5de79797c63..f636930766a0d 100644 --- a/tests/baselines/reference/thisTypeInTuples.types +++ b/tests/baselines/reference/thisTypeInTuples.types @@ -23,11 +23,11 @@ let a = t.slice(); >t.slice() : [number, string] > : ^^^^^^^^^^^^^^^^ >t.slice : { (start?: number, end?: number): (string | number)[]; (): [number, string]; } -> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^ >t : [number, string] > : ^^^^^^^^^^^^^^^^ >slice : { (start?: number, end?: number): (string | number)[]; (): [number, string]; } -> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^ let b = t.slice(1); >b : (string | number)[] @@ -35,11 +35,11 @@ let b = t.slice(1); >t.slice(1) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >t.slice : { (start?: number, end?: number): (string | number)[]; (): [number, string]; } -> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^ >t : [number, string] > : ^^^^^^^^^^^^^^^^ >slice : { (start?: number, end?: number): (string | number)[]; (): [number, string]; } -> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^ >1 : 1 > : ^ @@ -49,11 +49,11 @@ let c = t.slice(0, 1); >t.slice(0, 1) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >t.slice : { (start?: number, end?: number): (string | number)[]; (): [number, string]; } -> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^ >t : [number, string] > : ^^^^^^^^^^^^^^^^ >slice : { (start?: number, end?: number): (string | number)[]; (): [number, string]; } -> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^ >0 : 0 > : ^ >1 : 1 diff --git a/tests/baselines/reference/thisTypeInTypePredicate.types b/tests/baselines/reference/thisTypeInTypePredicate.types index ebe530f9c1e7a..76a680638c060 100644 --- a/tests/baselines/reference/thisTypeInTypePredicate.types +++ b/tests/baselines/reference/thisTypeInTypePredicate.types @@ -3,7 +3,7 @@ === thisTypeInTypePredicate.ts === declare function filter(f: (this: void, x: any) => x is S): S[]; >filter : (f: (this: void, x: any) => x is S) => S[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (this: void, x: any) => x is S > : ^ ^^ ^^ ^^ ^^^^^ >this : void @@ -16,7 +16,7 @@ const numbers = filter((x): x is number => 'number' == typeof x) >filter((x): x is number => 'number' == typeof x) : number[] > : ^^^^^^^^ >filter : (f: (this: void, x: any) => x is S) => S[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x): x is number => 'number' == typeof x : (this: void, x: any) => x is number > : ^ ^^ ^^ ^^^^^^^^^^ >x : any diff --git a/tests/baselines/reference/thisTypeOfConstructorFunctions.types b/tests/baselines/reference/thisTypeOfConstructorFunctions.types index 5023191f43f08..5ba0304adc353 100644 --- a/tests/baselines/reference/thisTypeOfConstructorFunctions.types +++ b/tests/baselines/reference/thisTypeOfConstructorFunctions.types @@ -180,11 +180,11 @@ var cppn = cpp.m2() >cpp.m2() : Cpp > : ^^^^^^^^^^^ >cpp.m2 : () => Cpp -> : ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^^^^^ >cpp : Cpp > : ^^^^^^^^^^^ >m2 : () => Cpp -> : ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^ ^^^^^^ /** @type {Cp} */ var cpn = cp.m3() @@ -193,11 +193,11 @@ var cpn = cp.m3() >cp.m3() : Cp > : ^^^^^^^^^^ >cp.m3 : () => Cp -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^ >cp : Cp > : ^^^^^^^^^^ >m3 : () => Cp -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^ /** @type {Cp} */ var cpn = cp.m4() @@ -206,10 +206,10 @@ var cpn = cp.m4() >cp.m4() : Cp > : ^^^^^^^^^^ >cp.m4 : () => Cp -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^ >cp : Cp > : ^^^^^^^^^^ >m4 : () => Cp -> : ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^^^^^ diff --git a/tests/baselines/reference/thisTypeOptionalCall.types b/tests/baselines/reference/thisTypeOptionalCall.types index 3b188f12a14c2..5ec62b2d6f275 100644 --- a/tests/baselines/reference/thisTypeOptionalCall.types +++ b/tests/baselines/reference/thisTypeOptionalCall.types @@ -3,7 +3,7 @@ === thisTypeOptionalCall.ts === function maybeBind(obj: T, fn: ((this: T, ...args: A) => R) | undefined): ((...args: A) => R) | undefined { >maybeBind : (obj: T, fn: ((this: T, ...args: A) => R) | undefined) => ((...args: A) => R) | undefined -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >fn : ((this: T, ...args: A) => R) | undefined diff --git a/tests/baselines/reference/throwInEnclosingStatements.types b/tests/baselines/reference/throwInEnclosingStatements.types index dcbebdb60dd00..00c7fb6a56141 100644 --- a/tests/baselines/reference/throwInEnclosingStatements.types +++ b/tests/baselines/reference/throwInEnclosingStatements.types @@ -12,7 +12,7 @@ function fn(x) { (x: T) => { throw x; } >(x: T) => { throw x; } : (x: T) => never -> : ^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ >x : T > : ^ >x : T diff --git a/tests/baselines/reference/throwStatements.types b/tests/baselines/reference/throwStatements.types index 697b9d5d871ed..099a994bc6fe6 100644 --- a/tests/baselines/reference/throwStatements.types +++ b/tests/baselines/reference/throwStatements.types @@ -298,7 +298,7 @@ throw function () { return 'a string' }; throw (x:T) => 42; >(x:T) => 42 : (x: T) => number -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >42 : 42 diff --git a/tests/baselines/reference/tooFewArgumentsInGenericFunctionTypedArgument.types b/tests/baselines/reference/tooFewArgumentsInGenericFunctionTypedArgument.types index 2faa90803cf93..51d4cf349b050 100644 --- a/tests/baselines/reference/tooFewArgumentsInGenericFunctionTypedArgument.types +++ b/tests/baselines/reference/tooFewArgumentsInGenericFunctionTypedArgument.types @@ -25,7 +25,7 @@ interface Collection { interface Combinators { map(c: Collection, f: (x: T, y: U) => V): Collection; >map : { (c: Collection, f: (x: T, y: U) => V): Collection; (c: Collection, f: (x: T_1, y: U_1) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c : Collection > : ^^^^^^^^^^^^^^^^ >f : (x: T, y: U) => V @@ -37,7 +37,7 @@ interface Combinators { map(c: Collection, f: (x: T, y: U) => any): Collection; >map : { (c: Collection, f: (x: T_1, y: U_1) => V): Collection; (c: Collection, f: (x: T, y: U) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c : Collection > : ^^^^^^^^^^^^^^^^ >f : (x: T, y: U) => any @@ -61,11 +61,11 @@ var r1a = _.map(c2, (x) => { return x.toFixed() }); >_.map(c2, (x) => { return x.toFixed() }) : Collection > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T, y: U) => V): Collection; (c: Collection, f: (x: T, y: U) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T, y: U) => V): Collection; (c: Collection, f: (x: T, y: U) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >(x) => { return x.toFixed() } : (x: number) => string @@ -103,11 +103,11 @@ var r1b = _.map(c2, rf1); >_.map(c2, rf1) : Collection > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.map : { (c: Collection, f: (x: T, y: U) => V): Collection; (c: Collection, f: (x: T, y: U) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Combinators > : ^^^^^^^^^^^ >map : { (c: Collection, f: (x: T, y: U) => V): Collection; (c: Collection, f: (x: T, y: U) => any): Collection; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >c2 : Collection > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >rf1 : (x: number) => string diff --git a/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2015).types b/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2015).types index ac622b31610ca..56f559020ff14 100644 --- a/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2015).types +++ b/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2015).types @@ -270,11 +270,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2017).types b/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2017).types index f2a9992f6d32d..1b6f4e656695b 100644 --- a/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2017).types +++ b/tests/baselines/reference/topLevelAwait.1(module=es2022,target=es2017).types @@ -266,11 +266,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2015).types b/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2015).types index ac622b31610ca..56f559020ff14 100644 --- a/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2015).types +++ b/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2015).types @@ -270,11 +270,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2017).types b/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2017).types index f2a9992f6d32d..1b6f4e656695b 100644 --- a/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2017).types +++ b/tests/baselines/reference/topLevelAwait.1(module=esnext,target=es2017).types @@ -266,11 +266,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwait.1(module=system,target=es2015).types b/tests/baselines/reference/topLevelAwait.1(module=system,target=es2015).types index ac622b31610ca..56f559020ff14 100644 --- a/tests/baselines/reference/topLevelAwait.1(module=system,target=es2015).types +++ b/tests/baselines/reference/topLevelAwait.1(module=system,target=es2015).types @@ -270,11 +270,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwait.1(module=system,target=es2017).types b/tests/baselines/reference/topLevelAwait.1(module=system,target=es2017).types index f2a9992f6d32d..1b6f4e656695b 100644 --- a/tests/baselines/reference/topLevelAwait.1(module=system,target=es2017).types +++ b/tests/baselines/reference/topLevelAwait.1(module=system,target=es2017).types @@ -266,11 +266,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwaitNonModule(module=es2022).types b/tests/baselines/reference/topLevelAwaitNonModule(module=es2022).types index 77e3025ffa502..dfc86b367788a 100644 --- a/tests/baselines/reference/topLevelAwaitNonModule(module=es2022).types +++ b/tests/baselines/reference/topLevelAwaitNonModule(module=es2022).types @@ -15,11 +15,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/topLevelAwaitNonModule(module=esnext).types b/tests/baselines/reference/topLevelAwaitNonModule(module=esnext).types index 77e3025ffa502..dfc86b367788a 100644 --- a/tests/baselines/reference/topLevelAwaitNonModule(module=esnext).types +++ b/tests/baselines/reference/topLevelAwaitNonModule(module=esnext).types @@ -15,11 +15,11 @@ const arr = [Promise.resolve()]; >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ for await (const item of arr) { >item : void diff --git a/tests/baselines/reference/trackedSymbolsNoCrash.types b/tests/baselines/reference/trackedSymbolsNoCrash.types index 02ee07d283a42..52c46b171f7d4 100644 --- a/tests/baselines/reference/trackedSymbolsNoCrash.types +++ b/tests/baselines/reference/trackedSymbolsNoCrash.types @@ -1019,11 +1019,11 @@ import * as ast from "./ast"; export const isNodeOfType = >isNodeOfType : (nodeType: NodeType) => (node: ast.Node | null | undefined) => node is Extract -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ (nodeType: NodeType) => >(nodeType: NodeType) => ( node: ast.Node | null | undefined, ): node is Extract => node?.kind === nodeType : (nodeType: NodeType) => (node: ast.Node | null | undefined) => node is Extract -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >ast : any > : ^^^ >nodeType : NodeType diff --git a/tests/baselines/reference/transformNestedGeneratorsWithTry.types b/tests/baselines/reference/transformNestedGeneratorsWithTry.types index 893ebeb88355e..95a4c2f2dcaff 100644 --- a/tests/baselines/reference/transformNestedGeneratorsWithTry.types +++ b/tests/baselines/reference/transformNestedGeneratorsWithTry.types @@ -26,11 +26,11 @@ async function a(): Bluebird { >Bluebird.resolve() : Promise > : ^^^^^^^^^^^^^ >Bluebird.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Bluebird : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ } catch (error) { } >error : any diff --git a/tests/baselines/reference/tslibReExportHelpers2.types b/tests/baselines/reference/tslibReExportHelpers2.types index f7b19714efbc3..6c948f6c8b9a4 100644 --- a/tests/baselines/reference/tslibReExportHelpers2.types +++ b/tests/baselines/reference/tslibReExportHelpers2.types @@ -3,7 +3,7 @@ === /node_modules/tslib/index.d.ts === export declare function __classPrivateFieldGet( >__classPrivateFieldGet : { (receiver: T, state: { has(o: T): boolean; get(o: T): V | undefined; }, kind?: "f"): V; unknown, V_1>(receiver: T_1, state: T_1, kind: "f", f: { value: V_1; }): V_1; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ receiver: T, >receiver : T @@ -28,7 +28,7 @@ export declare function __classPrivateFieldGet( ): V; export declare function __classPrivateFieldGet unknown, V>( >__classPrivateFieldGet : { (receiver: T_1, state: { has(o: T_1): boolean; get(o: T_1): V_1 | undefined; }, kind?: "f"): V_1; unknown, V>(receiver: T, state: T, kind: "f", f: { value: V; }): V; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >args : any[] > : ^^^^^ @@ -55,7 +55,7 @@ export declare function __classPrivateFieldGet === /node_modules/tslib/index.d.mts === export { __classPrivateFieldGet } from "./index.js"; >__classPrivateFieldGet : { (receiver: T, state: { has(o: T): boolean; get(o: T): V | undefined; }, kind?: "f"): V; unknown, V>(receiver: T, state: T, kind: "f", f: { value: V; }): V; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ === /index.mts === export class Foo { diff --git a/tests/baselines/reference/tsxAttributeResolution5.types b/tests/baselines/reference/tsxAttributeResolution5.types index afe81350a91d3..e110c3fb318b1 100644 --- a/tests/baselines/reference/tsxAttributeResolution5.types +++ b/tests/baselines/reference/tsxAttributeResolution5.types @@ -27,7 +27,7 @@ interface Attribs2 { function make1 (obj: T) { >make1 : (obj: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ >obj : T @@ -44,7 +44,7 @@ function make1 (obj: T) { function make2 (obj: T) { >make2 : (obj: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >obj : T @@ -61,7 +61,7 @@ function make2 (obj: T) { function make3 (obj: T) { >make3 : (obj: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >y : string > : ^^^^^^ >obj : T diff --git a/tests/baselines/reference/tsxGenericAttributesType1.types b/tests/baselines/reference/tsxGenericAttributesType1.types index fe8d3f0324dac..932aeea7b62cb 100644 --- a/tests/baselines/reference/tsxGenericAttributesType1.types +++ b/tests/baselines/reference/tsxGenericAttributesType1.types @@ -7,9 +7,9 @@ import React = require('react'); const decorator = function (Component: React.StatelessComponent): React.StatelessComponent { >decorator : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function (Component: React.StatelessComponent): React.StatelessComponent { return (props) => } : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >Component : React.StatelessComponent > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >React : any @@ -35,9 +35,9 @@ const decorator = function (Component: React.StatelessComponent): React.St const decorator2 = function (Component: React.StatelessComponent): React.StatelessComponent { >decorator2 : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (Component: React.StatelessComponent): React.StatelessComponent { return (props) => } : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >Component : React.StatelessComponent @@ -69,9 +69,9 @@ const decorator2 = function (Component: React.Stateless const decorator3 = function (Component: React.StatelessComponent): React.StatelessComponent { >decorator3 : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (Component: React.StatelessComponent): React.StatelessComponent { return (props) => } : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >x : number diff --git a/tests/baselines/reference/tsxGenericAttributesType2.types b/tests/baselines/reference/tsxGenericAttributesType2.types index 7561217f00582..65b1af529328e 100644 --- a/tests/baselines/reference/tsxGenericAttributesType2.types +++ b/tests/baselines/reference/tsxGenericAttributesType2.types @@ -7,9 +7,9 @@ import React = require('react'); const decorator4 = function (Component: React.StatelessComponent): React.StatelessComponent { >decorator4 : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >function (Component: React.StatelessComponent): React.StatelessComponent { return (props) => } : (Component: React.StatelessComponent) => React.StatelessComponent -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : number > : ^^^^^^ >Component : React.StatelessComponent diff --git a/tests/baselines/reference/tsxGenericAttributesType7.types b/tests/baselines/reference/tsxGenericAttributesType7.types index 2b3f07619b249..c39db758406e1 100644 --- a/tests/baselines/reference/tsxGenericAttributesType7.types +++ b/tests/baselines/reference/tsxGenericAttributesType7.types @@ -7,7 +7,7 @@ import React = require('react'); declare function Component(props: T) : JSX.Element; >Component : (props: T) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : T > : ^ >JSX : any @@ -15,9 +15,9 @@ declare function Component(props: T) : JSX.Element; const decorator = function (props: U) { >decorator : (props: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >function (props: U) { return ;} : (props: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >props : U > : ^ @@ -25,16 +25,16 @@ const decorator = function (props: U) { > : JSX.Element > : ^^^^^^^^^^^ >Component : (props: T) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : U > : ^ } const decorator1 = function (props: U) { >decorator1 : (props: U) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >function (props: U) { return ;} : (props: U) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ >props : U @@ -44,7 +44,7 @@ const decorator1 = function (props: U) { > : JSX.Element > : ^^^^^^^^^^^ >Component : (props: T) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : U > : ^ >x : string diff --git a/tests/baselines/reference/tsxGenericAttributesType8.types b/tests/baselines/reference/tsxGenericAttributesType8.types index 5ac3eefd19be8..61a69bdb64514 100644 --- a/tests/baselines/reference/tsxGenericAttributesType8.types +++ b/tests/baselines/reference/tsxGenericAttributesType8.types @@ -7,7 +7,7 @@ import React = require('react'); declare function Component(props: T) : JSX.Element; >Component : (props: T) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : T > : ^ >JSX : any @@ -15,9 +15,9 @@ declare function Component(props: T) : JSX.Element; const decorator = function (props: U) { >decorator : (props: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >function (props: U) { return ;} : (props: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ >props : U > : ^ @@ -25,16 +25,16 @@ const decorator = function (props: U) { > : JSX.Element > : ^^^^^^^^^^^ >Component : (props: T) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : U > : ^ } const decorator1 = function (props: U) { >decorator1 : (props: U) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >function (props: U) { return ;} : (props: U) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ >props : U @@ -44,7 +44,7 @@ const decorator1 = function (props: U) { > : JSX.Element > : ^^^^^^^^^^^ >Component : (props: T) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : U > : ^ } diff --git a/tests/baselines/reference/tsxGenericAttributesType9.types b/tests/baselines/reference/tsxGenericAttributesType9.types index 44b6dd3720218..1ce414a4831e9 100644 --- a/tests/baselines/reference/tsxGenericAttributesType9.types +++ b/tests/baselines/reference/tsxGenericAttributesType9.types @@ -7,7 +7,7 @@ import React = require('react'); export function makeP

(Ctor: React.ComponentClass

) { >makeP :

(Ctor: React.ComponentClass

) => typeof (Anonymous class) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Ctor : React.ComponentClass

> : ^^^^^^^^^^^^^^^^^^^^^^^ >React : any diff --git a/tests/baselines/reference/tsxInferenceShouldNotYieldAnyOnUnions.types b/tests/baselines/reference/tsxInferenceShouldNotYieldAnyOnUnions.types index a3bf6edc1db26..cafcf4318e369 100644 --- a/tests/baselines/reference/tsxInferenceShouldNotYieldAnyOnUnions.types +++ b/tests/baselines/reference/tsxInferenceShouldNotYieldAnyOnUnions.types @@ -25,7 +25,7 @@ interface PropsWithConvert extends PropsBase { function ShouldInferFromData(props: Props): JSX.Element { >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : Props > : ^^^^^^^^ >JSX : any @@ -43,7 +43,7 @@ ShouldInferFromData({ data: "1" }); >ShouldInferFromData({ data: "1" }) : JSX.Element > : ^^^^^^^^^^^ >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ data: "1" } : { data: string; } > : ^^^^^^^^^^^^^^^^^ >data : string @@ -55,7 +55,7 @@ ShouldInferFromData({ data: "1", convert: n => "" + n }); >ShouldInferFromData({ data: "1", convert: n => "" + n }) : JSX.Element > : ^^^^^^^^^^^ >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ data: "1", convert: n => "" + n } : { data: string; convert: (n: string) => string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >data : string @@ -79,7 +79,7 @@ ShouldInferFromData({ data: 2, convert: n => "" + n }); >ShouldInferFromData({ data: 2, convert: n => "" + n }) : JSX.Element > : ^^^^^^^^^^^ >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ data: 2, convert: n => "" + n } : { data: number; convert: (n: number) => string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >data : number @@ -106,7 +106,7 @@ const f1 = ; > : JSX.Element > : ^^^^^^^^^^^ >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : string > : ^^^^^^ >"1" : "1" @@ -118,7 +118,7 @@ const f2 = "" + n} />; > "" + n} /> : JSX.Element > : ^^^^^^^^^^^ >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : string > : ^^^^^^ >"1" : "1" @@ -142,7 +142,7 @@ const f3 = "" + n} />; > "" + n} /> : JSX.Element > : ^^^^^^^^^^^ >ShouldInferFromData : (props: Props) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >data : number > : ^^^^^^ >2 : 2 diff --git a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types index 9175a0cc67294..1c804b89c7462 100644 --- a/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types +++ b/tests/baselines/reference/tsxNotUsingApparentTypeOfSFC.types @@ -15,7 +15,7 @@ import React from 'react'; function test

(wrappedProps: P) { >test :

(wrappedProps: P) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >wrappedProps : P > : ^ diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types b/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types index 90e48ed14f275..079af5f86c99d 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter1.types @@ -13,7 +13,7 @@ interface MyComponentProp { function MyComponent(attr: T) { >MyComponent : (attr: T) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >attr : T > : ^ @@ -33,7 +33,7 @@ let i = ; // We infer type arguments here > : JSX.Element > : ^^^^^^^^^^^ >MyComponent : (attr: T) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >values : true > : ^^^^ @@ -43,7 +43,7 @@ let i1 = ; > : JSX.Element > : ^^^^^^^^^^^ >MyComponent : (attr: T) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >values : string > : ^^^^^^ diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types b/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types index ef82ca9b63018..6b84854fd2ab1 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types @@ -13,7 +13,7 @@ interface MyComponentProp { function MyComponent1(attr: T) { >MyComponent1 : (attr: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >attr : T > : ^ @@ -34,7 +34,7 @@ let i1 = ; > : JSX.Element > : ^^^^^^^^^^^ >MyComponent1 : (attr: T) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >values : number > : ^^^^^^ >5 : 5 diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types index 3afdade77b833..d8b83700db616 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments1.types @@ -7,7 +7,7 @@ import React = require('react') declare function ComponentWithTwoAttributes(l: {key1: K, value: V}): JSX.Element; >ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >l : { key1: K; value: V; } > : ^^^^^^^^ ^^^^^^^^^ ^^^ >key1 : K @@ -20,7 +20,7 @@ declare function ComponentWithTwoAttributes(l: {key1: K, value: V}): JSX.El // OK function Baz(key1: T, value: U) { >Baz : (key1: T, value: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >key1 : T > : ^ >value : U @@ -32,7 +32,7 @@ function Baz(key1: T, value: U) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >key1 : T > : ^ >key1 : T @@ -48,7 +48,7 @@ function Baz(key1: T, value: U) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentWithTwoAttributes : (l: { key1: K; value: V; }) => JSX.Element -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{key1, value: value} : { key1: T; value: U; } > : ^^^^^^^^^^^^^^^^^^^^^^ >key1 : T @@ -63,7 +63,7 @@ function Baz(key1: T, value: U) { declare function Link(l: {func: (arg: U)=>void}): JSX.Element; >Link : (l: { func: (arg: U) => void; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : { func: (arg: U) => void; } > : ^^^^^^^^ ^^^ >func : (arg: U) => void @@ -88,7 +88,7 @@ function createLink(func: (a: number)=>void) { > : JSX.Element > : ^^^^^^^^^^^ >Link : (l: { func: (arg: U) => void; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (a: number) => void > : ^ ^^ ^^^^^ >func : (a: number) => void @@ -109,7 +109,7 @@ function createLink1(func: (a: number)=>boolean) { > : JSX.Element > : ^^^^^^^^^^^ >Link : (l: { func: (arg: U) => void; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (a: number) => boolean > : ^ ^^ ^^^^^ >func : (a: number) => boolean @@ -130,7 +130,7 @@ interface InferParamProp { declare function InferParamComponent(attr: InferParamProp): JSX.Element; >InferParamComponent : (attr: InferParamProp) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >attr : InferParamProp > : ^^^^^^^^^^^^^^^^^ >JSX : any @@ -143,7 +143,7 @@ let i = { }} > { }} /> : JSX.Element > : ^^^^^^^^^^^ >InferParamComponent : (attr: InferParamProp) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >values : number[] > : ^^^^^^^^ >[1, 2, 3, 4] : number[] diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types index feda5b1af3d83..c7a92e6156deb 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types @@ -7,7 +7,7 @@ import React = require('react') declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX.Element; >ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : { prop: U; "ignore-prop": string; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >prop : U @@ -19,7 +19,7 @@ declare function ComponentSpecific1(l: {prop: U, "ignore-prop": string}): JSX declare function ComponentSpecific2(l: {prop: U}): JSX.Element; >ComponentSpecific2 : (l: { prop: U; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : { prop: U; } > : ^^^^^^^^ ^^^ >prop : U @@ -30,7 +30,7 @@ declare function ComponentSpecific2(l: {prop: U}): JSX.Element; // Error function Bar(arg: T) { >Bar : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >prop : number > : ^^^^^^ >arg : T @@ -42,7 +42,7 @@ function Bar(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >ignore-prop : number @@ -54,7 +54,7 @@ function Bar(arg: T) { // Error function Baz(arg: T) { >Baz : (arg: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -64,14 +64,14 @@ function Baz(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentSpecific1 : (l: { prop: U; "ignore-prop": string; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ } declare function Link(l: {func: (arg: U)=>void}): JSX.Element; >Link : (l: { func: (arg: U) => void; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : { func: (arg: U) => void; } > : ^^^^^^^^ ^^^ >func : (arg: U) => void @@ -98,7 +98,7 @@ function createLink(func: (a: number, b: string)=>void) { > : JSX.Element > : ^^^^^^^^^^^ >Link : (l: { func: (arg: U) => void; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : (a: number, b: string) => void > : ^ ^^ ^^ ^^ ^^^^^ >func : (a: number, b: string) => void @@ -119,7 +119,7 @@ interface InferParamProp { declare function InferParamComponent(attr: InferParamProp): JSX.Element; >InferParamComponent : (attr: InferParamProp) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >attr : InferParamProp > : ^^^^^^^^^^^^^^^^^ >JSX : any @@ -132,7 +132,7 @@ let i = { }} /> : JSX.Element > : ^^^^^^^^^^^ >InferParamComponent : (attr: InferParamProp) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >values : number[] > : ^^^^^^^^ >[1, 2, 3, 4] : number[] diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types index 0d6d20462651a..349221d1f91af 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types @@ -7,13 +7,13 @@ import React = require('react') declare function OverloadComponent(): JSX.Element; >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T; }): JSX.Element; } -> : ^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >JSX : any > : ^^^ declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": boolean}): JSX.Element; >OverloadComponent : { (): JSX.Element; (attr: { b: U; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >attr : { b: U; a?: string; "ignore-prop": boolean; } > : ^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >b : U @@ -27,7 +27,7 @@ declare function OverloadComponent(attr: {b: U, a?: string, "ignore-prop": bo declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >attr : { b: U; a: T; } > : ^^^^^ ^^^^^ ^^^ >b : U @@ -40,7 +40,7 @@ declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; // OK function Baz(arg1: T, arg2: U) { >Baz : (arg1: T, arg2: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >b : number > : ^^^^^^ >a : boolean @@ -58,7 +58,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg1 : T > : ^ >a : string @@ -72,7 +72,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg2 : U > : ^ >ignore-pro : string @@ -84,7 +84,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg2 : U > : ^ @@ -94,7 +94,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg1 : T > : ^ >ignore-prop : true @@ -106,7 +106,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ let a5 = ; >a5 : JSX.Element @@ -114,7 +114,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg2 : U > : ^ >ignore-prop : string @@ -128,7 +128,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a?: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg2 : U > : ^ >ignore-prop : true @@ -139,7 +139,7 @@ function Baz(arg1: T, a declare function Link(l: {func: (arg: U)=>void}): JSX.Element; >Link : { (l: { func: (arg: U) => void; }): JSX.Element; (l: { func: (arg1: U_1, arg2: string) => void; }): JSX.Element; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >l : { func: (arg: U) => void; } > : ^^^^^^^^ ^^^ >func : (arg: U) => void @@ -151,7 +151,7 @@ declare function Link(l: {func: (arg: U)=>void}): JSX.Element; declare function Link(l: {func: (arg1:U, arg2: string)=>void}): JSX.Element; >Link : { (l: { func: (arg: U_1) => void; }): JSX.Element; (l: { func: (arg1: U, arg2: string) => void; }): JSX.Element; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >l : { func: (arg1: U, arg2: string) => void; } > : ^^^^^^^^ ^^^ >func : (arg1: U, arg2: string) => void @@ -177,7 +177,7 @@ function createLink(func: (a: number)=>void) { > : JSX.Element > : ^^^^^^^^^^^ >Link : { (l: { func: (arg: U) => void; }): JSX.Element; (l: { func: (arg1: U, arg2: string) => void; }): JSX.Element; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >func : (a: number) => void > : ^ ^^ ^^^^^ >func : (a: number) => void @@ -189,7 +189,7 @@ function createLink(func: (a: number)=>void) { >{}} /> : JSX.Element > : ^^^^^^^^^^^ >Link : { (l: { func: (arg: U) => void; }): JSX.Element; (l: { func: (arg1: U, arg2: string) => void; }): JSX.Element; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >func : (a: number, b: string) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >(a:number, b:string)=>{} : (a: number, b: string) => void diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types index 8334d2a17692b..1b54c7229c2f2 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types @@ -7,13 +7,13 @@ import React = require('react') declare function OverloadComponent(): JSX.Element; >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T; }): JSX.Element; } -> : ^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >JSX : any > : ^^^ declare function OverloadComponent(attr: {b: U, a: string, "ignore-prop": boolean}): JSX.Element; >OverloadComponent : { (): JSX.Element; (attr: { b: U; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^ >attr : { b: U; a: string; "ignore-prop": boolean; } > : ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >b : U @@ -27,7 +27,7 @@ declare function OverloadComponent(attr: {b: U, a: string, "ignore-prop": boo declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U; a: T; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >attr : { b: U; a: T; } > : ^^^^^ ^^^^^ ^^^ >b : U @@ -40,7 +40,7 @@ declare function OverloadComponent(attr: {b: U, a: T}): JSX.Element; // Error function Baz(arg1: T, arg2: U) { >Baz : (arg1: T, arg2: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >b : number > : ^^^^^^ >a : boolean @@ -58,7 +58,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : number > : ^^^^^^ >arg1.b : number @@ -74,7 +74,7 @@ function Baz(arg1: T, a > : JSX.Element > : ^^^^^^^^^^^ >OverloadComponent : { (): JSX.Element; (attr: { b: U_1; a: string; "ignore-prop": boolean; }): JSX.Element; (attr: { b: U_1; a: T_1; }): JSX.Element; } -> : ^^^^^^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^ >arg1 : T > : ^ >ignore-prop : true diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types index 4ff0ac71dd001..b1d466f4ba163 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types @@ -7,7 +7,7 @@ import React = require('react') declare function Component(l: U): JSX.Element; >Component : (l: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : U > : ^ >JSX : any @@ -15,7 +15,7 @@ declare function Component(l: U): JSX.Element; function createComponent(arg: T) { >createComponent : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >prop : number > : ^^^^^^ >arg : T @@ -27,7 +27,7 @@ function createComponent(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >Component : (l: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ @@ -37,7 +37,7 @@ function createComponent(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >Component : (l: U) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >prop1 : true @@ -46,7 +46,7 @@ function createComponent(arg: T) { declare function ComponentSpecific(l: { prop: U }): JSX.Element; >ComponentSpecific : (l: { prop: U; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : { prop: U; } > : ^^^^^^^^ ^^^ >prop : U @@ -56,7 +56,7 @@ declare function ComponentSpecific(l: { prop: U }): JSX.Element; declare function ComponentSpecific1(l: { prop: U, "ignore-prop": number }): JSX.Element; >ComponentSpecific1 : (l: { prop: U; "ignore-prop": number; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : { prop: U; "ignore-prop": number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ >prop : U @@ -68,7 +68,7 @@ declare function ComponentSpecific1(l: { prop: U, "ignore-prop": number }): J function Bar(arg: T) { >Bar : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >prop : number > : ^^^^^^ >arg : T @@ -80,7 +80,7 @@ function Bar(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentSpecific : (l: { prop: U; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >ignore-prop : string @@ -92,7 +92,7 @@ function Bar(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentSpecific1 : (l: { prop: U; "ignore-prop": number; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >ignore-prop : number @@ -106,7 +106,7 @@ function Bar(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentSpecific : (l: { prop: U; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >prop : string @@ -118,7 +118,7 @@ function Bar(arg: T) { > : JSX.Element > : ^^^^^^^^^^^ >ComponentSpecific : (l: { prop: U; }) => JSX.Element -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ >prop1 : string diff --git a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types index c2af14aa0a538..23ef943a1b788 100644 --- a/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types +++ b/tests/baselines/reference/tsxTypeArgumentPartialDefinitionStillErrors.types @@ -13,7 +13,7 @@ declare namespace JSX { function SFC(props: Record) { >SFC : (props: Record) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >props : Record > : ^^^^^^^^^^^^^^^^^ @@ -26,11 +26,11 @@ function SFC(props: Record) { > prop={1}> : JSX.Element > : ^^^^^^^^^^^ >SFC : (props: Record) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >prop : number > : ^^^^^^ >1 : 1 > : ^ >SFC : (props: Record) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/tupleTypeInference.types b/tests/baselines/reference/tupleTypeInference.types index a779a148f4686..7efc69691b946 100644 --- a/tests/baselines/reference/tupleTypeInference.types +++ b/tests/baselines/reference/tupleTypeInference.types @@ -8,25 +8,25 @@ declare var $q: IQService; interface IQService { all(x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; >all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1_1, T2_1]>; (x: [IPromise]): IPromise<[T1_1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >x : [IPromise, IPromise, IPromise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ all(x: [IPromise, IPromise]): IPromise<[T1, T2]>; >all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1_1, T2_1, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1_1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^ >x : [IPromise, IPromise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ all(x: [IPromise]): IPromise<[T1]>; >all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1_1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1_1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >x : [IPromise] > : ^^^^^^^^^^^^^^ when(t?: T): IPromise; >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >t : T > : ^ } @@ -34,7 +34,7 @@ interface IQService { interface IPromise { then(callback: (t: T) => TResult): IPromise; >then : (callback: (t: T) => TResult) => IPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >callback : (t: T) => TResult > : ^ ^^ ^^^^^ >t : T @@ -48,29 +48,29 @@ var a = $q.all([$q.when(), $q.when()]); >$q.all([$q.when(), $q.when()]) : IPromise<[string, number]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >$q.all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >$q : IQService > : ^^^^^^^^^ >all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >[$q.when(), $q.when()] : [IPromise, IPromise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >$q.when() : IPromise > : ^^^^^^^^^^^^^^^^ >$q.when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q : IQService > : ^^^^^^^^^ >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q.when() : IPromise > : ^^^^^^^^^^^^^^^^ >$q.when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q : IQService > : ^^^^^^^^^ >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ // Explicit different types var b = $q.all([$q.when(), $q.when()]); @@ -79,29 +79,29 @@ var b = $q.all([$q.when(), $q.when()]); >$q.all([$q.when(), $q.when()]) : IPromise<[string, number]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >$q.all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >$q : IQService > : ^^^^^^^^^ >all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >[$q.when(), $q.when()] : [IPromise, IPromise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >$q.when() : IPromise > : ^^^^^^^^^^^^^^^^ >$q.when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q : IQService > : ^^^^^^^^^ >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q.when() : IPromise > : ^^^^^^^^^^^^^^^^ >$q.when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q : IQService > : ^^^^^^^^^ >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ // Implicit identical types var c = $q.all([$q.when(), $q.when()]); @@ -110,27 +110,27 @@ var c = $q.all([$q.when(), $q.when()]); >$q.all([$q.when(), $q.when()]) : IPromise<[string, string]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >$q.all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >$q : IQService > : ^^^^^^^^^ >all : { (x: [IPromise, IPromise, IPromise]): IPromise<[T1, T2, T3]>; (x: [IPromise, IPromise]): IPromise<[T1, T2]>; (x: [IPromise]): IPromise<[T1]>; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ >[$q.when(), $q.when()] : [IPromise, IPromise] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >$q.when() : IPromise > : ^^^^^^^^^^^^^^^^ >$q.when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q : IQService > : ^^^^^^^^^ >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q.when() : IPromise > : ^^^^^^^^^^^^^^^^ >$q.when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >$q : IQService > : ^^^^^^^^^ >when : (t?: T) => IPromise -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/tupleTypeInference2.types b/tests/baselines/reference/tupleTypeInference2.types index c473953ef0329..548799339c4e5 100644 --- a/tests/baselines/reference/tupleTypeInference2.types +++ b/tests/baselines/reference/tupleTypeInference2.types @@ -9,7 +9,7 @@ type A = [R] | [R, string]; declare function f(x: A): T; >f : (x: A) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^^^^ @@ -17,7 +17,7 @@ f([undefined, ''] as [never, string]); // T: never >f([undefined, ''] as [never, string]) : never > : ^^^^^ >f : (x: A) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[undefined, ''] as [never, string] : [never, string] > : ^^^^^^^^^^^^^^^ >[undefined, ''] : [undefined, string] @@ -31,7 +31,7 @@ f([undefined, ''] as [void, string]); // T: void >f([undefined, ''] as [void, string]) : void > : ^^^^ >f : (x: A) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[undefined, ''] as [void, string] : [void, string] > : ^^^^^^^^^^^^^^ >[undefined, ''] : [undefined, string] @@ -49,7 +49,7 @@ type B = [R] | [R, S]; declare function g(f: B): U; >g : (f: B) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : B > : ^^^^^^^ @@ -57,7 +57,7 @@ g([[]] as [void[]]); // U: {} >g([[]] as [void[]]) : unknown > : ^^^^^^^ >g : (f: B) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[[]] as [void[]] : [void[]] > : ^^^^^^^^ >[[]] : [never[]] @@ -71,7 +71,7 @@ type C = [R[]] | [R[], S]; declare function h(f: C): U; >h : (f: C) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >f : C > : ^^^^^^^ @@ -79,7 +79,7 @@ h([[]] as [void[]]); // U: {} >h([[]] as [void[]]) : unknown > : ^^^^^^^ >h : (f: C) => U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[[]] as [void[]] : [void[]] > : ^^^^^^^^ >[[]] : [never[]] @@ -95,7 +95,7 @@ type C2 = [R[]] | [R[], void]; declare function h2(f: C2): T; >h2 : (f: C2) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : C2 > : ^^^^^ @@ -103,7 +103,7 @@ h2([[]] as [never[]]); // T: never >h2([[]] as [never[]]) : never > : ^^^^^ >h2 : (f: C2) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[[]] as [never[]] : [never[]] > : ^^^^^^^^^ >[[]] : [never[]] @@ -115,7 +115,7 @@ h2([[]] as [void[]]); // T: void >h2([[]] as [void[]]) : void > : ^^^^ >h2 : (f: C2) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[[]] as [void[]] : [void[]] > : ^^^^^^^^ >[[]] : [never[]] diff --git a/tests/baselines/reference/tupleTypes.types b/tests/baselines/reference/tupleTypes.types index 51f39e12cc9d1..c9e760de2f7a3 100644 --- a/tests/baselines/reference/tupleTypes.types +++ b/tests/baselines/reference/tupleTypes.types @@ -141,7 +141,7 @@ var tf: [string, (x: string) => number] = ["hello", x => x.length]; declare function ff(a: T, b: [T, (x: T) => U]): U; >ff : (a: T, b: [T, (x: T) => U]) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : [T, (x: T) => U] @@ -155,7 +155,7 @@ var ff1 = ff("hello", ["foo", x => x.length]); >ff("hello", ["foo", x => x.length]) : number > : ^^^^^^ >ff : (a: T, b: [T, (x: T) => U]) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ >["foo", x => x.length] : [string, (x: string) => number] @@ -179,7 +179,7 @@ var ff1: number; function tuple2(item0: T0, item1: T1): [T0, T1]{ >tuple2 : (item0: T0, item1: T1) => [T0, T1] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >item0 : T0 > : ^^ >item1 : T1 @@ -200,7 +200,7 @@ var tt = tuple2(1, "string"); >tuple2(1, "string") : [number, string] > : ^^^^^^^^^^^^^^^^ >tuple2 : (item0: T0, item1: T1) => [T0, T1] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"string" : "string" @@ -256,7 +256,7 @@ tt = tuple2(1, undefined); >tuple2(1, undefined) : [number, any] > : ^^^^^^^^^^^^^ >tuple2 : (item0: T0, item1: T1) => [T0, T1] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >undefined : undefined diff --git a/tests/baselines/reference/twiceNestedKeyofIndexInference.types b/tests/baselines/reference/twiceNestedKeyofIndexInference.types index b4b1a954a9b69..d3f03c9dbb998 100644 --- a/tests/baselines/reference/twiceNestedKeyofIndexInference.types +++ b/tests/baselines/reference/twiceNestedKeyofIndexInference.types @@ -19,7 +19,7 @@ type Set2 = T extends any[] ? T : declare function set(source: T, path: [K1], value: T[K1]): Set1; >set : { (source: T, path: [K1], value: T[K1]): Set1; (source: T_1, path: [K1_1, K2], value: T_1[K1_1][K2]): Set2; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >source : T > : ^ >path : [K1] @@ -29,7 +29,7 @@ declare function set(source: T, path: [K1], value: T[K1]) declare function set(source: T, path: [K1, K2], value: T[K1][K2]): Set2; >set : { (source: T_1, path: [K1_1], value: T_1[K1_1]): Set1; (source: T, path: [K1, K2], value: T[K1][K2]): Set2; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >source : T > : ^ >path : [K1, K2] @@ -96,7 +96,7 @@ const newState: State = set(state, ["a", 'b'], 'why'); // shouldn't be an error >set(state, ["a", 'b'], 'why') : Pick & Required<{ a: Pick<{ b: string; c: number; }, "c"> & Required>; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ >set : { (source: T, path: [K1], value: T[K1]): Set1; (source: T, path: [K1, K2], value: T[K1][K2]): Set2; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >state : State > : ^^^^^ >["a", 'b'] : ["a", "b"] diff --git a/tests/baselines/reference/twoMergedInterfacesWithDifferingOverloads.types b/tests/baselines/reference/twoMergedInterfacesWithDifferingOverloads.types index ff659d83f99f4..7cd8b94377aa9 100644 --- a/tests/baselines/reference/twoMergedInterfacesWithDifferingOverloads.types +++ b/tests/baselines/reference/twoMergedInterfacesWithDifferingOverloads.types @@ -75,7 +75,7 @@ var r = b.foo(true); // returns Date interface C { foo(x: T, y: U): string; >foo : { (x: T, y: U): string; (x: string, y: string): number; (x: W, y: W): W; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : T > : ^ >y : U @@ -83,7 +83,7 @@ interface C { foo(x: string, y: string): number; >foo : { (x: T, y: U): string; (x: string, y: string): number; (x: W, y: W): W; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : string > : ^^^^^^ >y : string @@ -93,7 +93,7 @@ interface C { interface C { foo(x: W, y: W): W; >foo : { (x: T, y: U): string; (x: string, y: string): number; (x: W, y: W): W; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : W > : ^ >y : W @@ -132,7 +132,7 @@ interface D { foo(x: A, y: A): U; >foo : { (x: A, y: A): U; (x: W, y: W): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : A > : ^ >y : A @@ -142,7 +142,7 @@ interface D { interface D { foo(x: W, y: W): T; >foo : { (x: A, y: A): U; (x: W, y: W): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >x : W > : ^ >y : W @@ -159,11 +159,11 @@ var r3 = d.foo(1, 1); // boolean, last definition wins >d.foo(1, 1) : boolean > : ^^^^^^^ >d.foo : { (x: A, y: A): Date; (x: W, y: W): boolean; } -> : ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^ ^^^ >d : D > : ^^^^^^^^^^^^^^^^ >foo : { (x: A, y: A): Date; (x: W, y: W): boolean; } -> : ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^ ^^^ >1 : 1 > : ^ >1 : 1 diff --git a/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types b/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types index 89103f7914ce2..8772cc64c0acb 100644 --- a/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types +++ b/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types @@ -5,7 +5,7 @@ function Mixin(Base: TBase) { >Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >args : any[] > : ^^^^^ >Base : TBase @@ -24,7 +24,7 @@ type Mixin = ReturnTypeOf >Mixin : { new (...args: any[]): Mixin {}>.(Anonymous class); prototype: Mixin.(Anonymous class); } & (new (...args: any[]) => {}) > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^ >Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type ReturnTypeOf = V extends (...args: any[])=>infer R ? R : never; >ReturnTypeOf : ReturnTypeOf diff --git a/tests/baselines/reference/typeAliases.types b/tests/baselines/reference/typeAliases.types index f0a58be274f60..440ff058e0ded 100644 --- a/tests/baselines/reference/typeAliases.types +++ b/tests/baselines/reference/typeAliases.types @@ -164,7 +164,7 @@ var x13_2: T13 declare function foo13(t1: T1, t2: T13): void; >foo13 : (t1: T1, t2: T13) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t1 : T1 > : ^^ >t2 : I13 @@ -174,7 +174,7 @@ foo13(x13_1, x13_2); >foo13(x13_1, x13_2) : void > : ^^^^ >foo13 : (t1: T1, t2: T13) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x13_1 : I13 > : ^^^ >x13_2 : I13 @@ -184,7 +184,7 @@ foo13(x13_2, x13_1); >foo13(x13_2, x13_1) : void > : ^^^^ >foo13 : (t1: T1, t2: T13) => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x13_2 : I13 > : ^^^ >x13_1 : I13 diff --git a/tests/baselines/reference/typeArgInference.types b/tests/baselines/reference/typeArgInference.types index 26091435e7fcc..f52ea587bdf96 100644 --- a/tests/baselines/reference/typeArgInference.types +++ b/tests/baselines/reference/typeArgInference.types @@ -4,7 +4,7 @@ interface I { f(a1: { a: T; b: U }[], a2: { a: T; b: U }[]): { c: T; d: U }; >f : (a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a1 : { a: T; b: U; }[] > : ^^^^^ ^^^^^ ^^^^^ >a : T @@ -24,7 +24,7 @@ interface I { g(...arg: { a: T; b: U }[][]): { c: T; d: U }; >g : (...arg: { a: T; b: U; }[][]) => { c: T; d: U; } -> : ^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >arg : { a: T; b: U; }[][] > : ^^^^^ ^^^^^ ^^^^^^^ >a : T @@ -60,11 +60,11 @@ var t1 = x.f([o], [o]); >x.f([o], [o]) : { c: number; d: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x.f : (a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : I > : ^ >f : (a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >[o] : { a: number; b: string; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : { a: number; b: string; } @@ -88,11 +88,11 @@ var t2 = x.f([o], [o]); >x.f([o], [o]) : { c: number; d: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x.f : (a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : I > : ^ >f : (a1: { a: T; b: U; }[], a2: { a: T; b: U; }[]) => { c: T; d: U; } -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >[o] : { a: number; b: string; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : { a: number; b: string; } @@ -116,11 +116,11 @@ var t3 = x.g([o], [o]); >x.g([o], [o]) : { c: number; d: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x.g : (...arg: { a: T; b: U; }[][]) => { c: T; d: U; } -> : ^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : I > : ^ >g : (...arg: { a: T; b: U; }[][]) => { c: T; d: U; } -> : ^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[o] : { a: number; b: string; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : { a: number; b: string; } @@ -144,11 +144,11 @@ var t4 = x.g([o], [o]); >x.g([o], [o]) : { c: number; d: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x.g : (...arg: { a: T; b: U; }[][]) => { c: T; d: U; } -> : ^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : I > : ^ >g : (...arg: { a: T; b: U; }[][]) => { c: T; d: U; } -> : ^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[o] : { a: number; b: string; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >o : { a: number; b: string; } diff --git a/tests/baselines/reference/typeArgInference2.types b/tests/baselines/reference/typeArgInference2.types index 97b3a43f1787f..2042163d44e10 100644 --- a/tests/baselines/reference/typeArgInference2.types +++ b/tests/baselines/reference/typeArgInference2.types @@ -9,7 +9,7 @@ interface Item { declare function foo(x?: T, y?: T): T; >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -19,7 +19,7 @@ var z1 = foo(null); // any >z1 : any >foo(null) : any >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ var z2 = foo(); // Item >z2 : Item @@ -27,7 +27,7 @@ var z2 = foo(); // Item >foo() : Item > : ^^^^ >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ var z3 = foo({ name: null }); // { name: any } >z3 : { name: any; } @@ -35,7 +35,7 @@ var z3 = foo({ name: null }); // { name: any } >foo({ name: null }) : { name: any; } > : ^^^^^^^^^^^^^^ >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >{ name: null } : { name: null; } > : ^^^^^^^^^^^^^^^ >name : null @@ -47,7 +47,7 @@ var z4 = foo({ name: "abc" }); // { name: string } >foo({ name: "abc" }) : { name: string; } > : ^^^^^^^^^^^^^^^^^ >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >{ name: "abc" } : { name: string; } > : ^^^^^^^^^^^^^^^^^ >name : string @@ -61,7 +61,7 @@ var z5 = foo({ name: "abc", a: 5 }); // { name: string; a: number } >foo({ name: "abc", a: 5 }) : { name: string; a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >{ name: "abc", a: 5 } : { name: string; a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -79,7 +79,7 @@ var z6 = foo({ name: "abc", a: 5 }, { name: "def", b: 5 }); // error >foo({ name: "abc", a: 5 }, { name: "def", b: 5 }) : { name: string; a: number; b?: undefined; } | { name: string; b: number; a?: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >{ name: "abc", a: 5 } : { name: string; a: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string diff --git a/tests/baselines/reference/typeArgInference2WithError.types b/tests/baselines/reference/typeArgInference2WithError.types index 91575f898fe8c..02aa17364fa66 100644 --- a/tests/baselines/reference/typeArgInference2WithError.types +++ b/tests/baselines/reference/typeArgInference2WithError.types @@ -9,7 +9,7 @@ interface Item { declare function foo(x?: T, y?: T): T; >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -21,7 +21,7 @@ var z7 = foo("abc", 5); // Error >foo("abc", 5) : Item > : ^^^^ >foo : (x?: T, y?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ >"abc" : "abc" > : ^^^^^ >5 : 5 diff --git a/tests/baselines/reference/typeArgInferenceWithNull.types b/tests/baselines/reference/typeArgInferenceWithNull.types index 2c6666adc6815..ab2662bfb3129 100644 --- a/tests/baselines/reference/typeArgInferenceWithNull.types +++ b/tests/baselines/reference/typeArgInferenceWithNull.types @@ -5,7 +5,7 @@ function fn4(n: T) { } >fn4 : (n: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ @@ -13,11 +13,11 @@ fn4(null); >fn4(null) : void > : ^^^^ >fn4 : (n: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ function fn5(n: T) { } >fn5 : (n: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : string > : ^^^^^^ >n : T @@ -27,7 +27,7 @@ fn5({ x: null }); >fn5({ x: null }) : void > : ^^^^ >fn5 : (n: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ x: null } : { x: null; } > : ^^^^^^^^^^^^ >x : null @@ -35,7 +35,7 @@ fn5({ x: null }); function fn6(n: T, fun: (x: T) => void, n2: T) { } >fn6 : (n: T, fun: (x: T) => void, n2: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : string > : ^^^^^^ >n : T @@ -51,7 +51,7 @@ fn6({ x: null }, y => { }, { x: "" }); // y has type { x: any }, but ideally wou >fn6({ x: null }, y => { }, { x: "" }) : void > : ^^^^ >fn6 : (n: T, fun: (x: T) => void, n2: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >{ x: null } : { x: null; } > : ^^^^^^^^^^^^ >x : null diff --git a/tests/baselines/reference/typeArgumentConstraintResolution1.types b/tests/baselines/reference/typeArgumentConstraintResolution1.types index 43cc72abd2bff..3b9e265d7c388 100644 --- a/tests/baselines/reference/typeArgumentConstraintResolution1.types +++ b/tests/baselines/reference/typeArgumentConstraintResolution1.types @@ -3,19 +3,19 @@ === typeArgumentConstraintResolution1.ts === function foo1(test: T); >foo1 : { (test: T): any; (test: string): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo1(test: string); >foo1 : { (test: T_1): any; (test: string): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : string > : ^^^^^^ function foo1(test: any) { } >foo1 : { (test: T_1): any; (test: string): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : any > : ^^^ @@ -23,7 +23,7 @@ foo1(""); // should error >foo1("") : any > : ^^^ >foo1 : { (test: T): any; (test: string): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >"" : "" > : ^^ @@ -31,19 +31,19 @@ foo1(""); // should error function foo2(test: T): T; >foo2 : { (test: T): T; (test: string): T_1; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >test : T > : ^ function foo2(test: string): T; >foo2 : { (test: T_1): T_1; (test: string): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >test : string > : ^^^^^^ function foo2(test: any): any { return null; } >foo2 : { (test: T_1): T_1; (test: string): T_1; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >test : any > : ^^^ @@ -51,7 +51,7 @@ foo2(""); // Type Date does not satisfy the constraint 'Number' for type p >foo2("") : Date > : ^^^^ >foo2 : { (test: T): T; (test: string): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >"" : "" > : ^^ diff --git a/tests/baselines/reference/typeArgumentInference.types b/tests/baselines/reference/typeArgumentInference.types index 1dc8cf7610588..935190f362e42 100644 --- a/tests/baselines/reference/typeArgumentInference.types +++ b/tests/baselines/reference/typeArgumentInference.types @@ -58,7 +58,7 @@ noGenericParams<{}>(''); // Generic call with multiple type parameters and only one used in parameter type annotation function someGenerics1(n: T, m: number) { } >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : number @@ -68,7 +68,7 @@ someGenerics1(3, 4); >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -78,7 +78,7 @@ someGenerics1(3, 4); >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -87,7 +87,7 @@ someGenerics1(3, 4); // Generic call with argument of function type whose parameter is of type parameter type function someGenerics2a(n: (x: T) => void) { } >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >n : (x: T) => void > : ^ ^^ ^^^^^ >x : T @@ -97,7 +97,7 @@ someGenerics2a((n: string) => n); >someGenerics2a((n: string) => n) : void > : ^^^^ >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >(n: string) => n : (n: string) => string > : ^ ^^ ^^^^^^^^^^^ >n : string @@ -109,7 +109,7 @@ someGenerics2a((n: string) => n); >someGenerics2a((n: string) => n) : void > : ^^^^ >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >(n: string) => n : (n: string) => string > : ^ ^^ ^^^^^^^^^^^ >n : string @@ -121,7 +121,7 @@ someGenerics2a((n) => n.substr(0)); >someGenerics2a((n) => n.substr(0)) : void > : ^^^^ >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >(n) => n.substr(0) : (n: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >n : string @@ -139,7 +139,7 @@ someGenerics2a((n) => n.substr(0)); function someGenerics2b(n: (x: T, y: U) => void) { } >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >n : (x: T, y: U) => void > : ^ ^^ ^^ ^^ ^^^^^ >x : T @@ -151,7 +151,7 @@ someGenerics2b((n: string, x: number) => n); >someGenerics2b((n: string, x: number) => n) : void > : ^^^^ >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >(n: string, x: number) => n : (n: string, x: number) => string > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >n : string @@ -165,7 +165,7 @@ someGenerics2b((n: string, t: number) => n); >someGenerics2b((n: string, t: number) => n) : void > : ^^^^ >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >(n: string, t: number) => n : (n: string, t: number) => string > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >n : string @@ -179,7 +179,7 @@ someGenerics2b((n, t) => n.substr(t * t)); >someGenerics2b((n, t) => n.substr(t * t)) : void > : ^^^^ >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >(n, t) => n.substr(t * t) : (n: string, t: number) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >n : string @@ -204,7 +204,7 @@ someGenerics2b((n, t) => n.substr(t * t)); // Generic call with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter function someGenerics3(producer: () => T) { } >someGenerics3 : (producer: () => T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >producer : () => T > : ^^^^^^ @@ -212,7 +212,7 @@ someGenerics3(() => ''); >someGenerics3(() => '') : void > : ^^^^ >someGenerics3 : (producer: () => T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >() => '' : () => string > : ^^^^^^^^^^^^ >'' : "" @@ -222,7 +222,7 @@ someGenerics3(() => undefined); >someGenerics3(() => undefined) : void > : ^^^^ >someGenerics3 : (producer: () => T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >() => undefined : () => any > : ^^^^^^^^^ >undefined : undefined @@ -232,7 +232,7 @@ someGenerics3(() => 3); >someGenerics3(() => 3) : void > : ^^^^ >someGenerics3 : (producer: () => T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >() => 3 : () => number > : ^^^^^^^^^^^^ >3 : 3 @@ -241,7 +241,7 @@ someGenerics3(() => 3); // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(n: T, f: (x: U) => void) { } >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >f : (x: U) => void @@ -253,7 +253,7 @@ someGenerics4(4, () => null); >someGenerics4(4, () => null) : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >4 : 4 > : ^ >() => null : () => any @@ -263,7 +263,7 @@ someGenerics4('', () => 3); >someGenerics4('', () => 3) : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >() => 3 : () => number @@ -275,12 +275,12 @@ someGenerics4(null, null); >someGenerics4(null, null) : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ // 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 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >f : (x: U) => void @@ -292,7 +292,7 @@ someGenerics5(4, () => null); >someGenerics5(4, () => null) : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >4 : 4 > : ^ >() => null : () => any @@ -302,7 +302,7 @@ someGenerics5('', () => 3); >someGenerics5('', () => 3) : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >() => 3 : () => number @@ -314,12 +314,12 @@ someGenerics5(null, null); >someGenerics5(null, null) : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ // 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 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : (a: A) => A > : ^ ^^ ^^^^^ >a : A @@ -337,7 +337,7 @@ someGenerics6(n => n, n => n, n => n); >someGenerics6(n => n, n => n, n => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: unknown) => unknown > : ^ ^^^^^^^^^^^^^^^^^^^^^ >n : unknown @@ -361,7 +361,7 @@ someGenerics6(n => n, n => n, n => n); >someGenerics6(n => n, n => n, n => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -385,7 +385,7 @@ someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); >someGenerics6((n: number) => n, (n: number) => n, (n: number) => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number @@ -408,7 +408,7 @@ 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 function someGenerics7(a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) { } >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : (a: A) => A > : ^ ^^ ^^^^^ >a : A @@ -426,7 +426,7 @@ someGenerics7(n => n, n => n, n => n); >someGenerics7(n => n, n => n, n => n) : void > : ^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: unknown) => unknown > : ^ ^^^^^^^^^^^^^^^^^^^^^ >n : unknown @@ -450,7 +450,7 @@ someGenerics7(n => n, n => n, n => n); >someGenerics7(n => n, n => n, n => n) : void > : ^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -474,7 +474,7 @@ someGenerics7((n: number) => n, (n: string) => n, (n: nu >someGenerics7((n: number) => n, (n: string) => n, (n: number) => n) : void > : ^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number @@ -497,7 +497,7 @@ someGenerics7((n: number) => n, (n: string) => n, (n: nu // Generic call with argument of generic function type function someGenerics8(n: T): T { return n; } >someGenerics8 : (n: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >n : T > : ^ >n : T @@ -505,24 +505,24 @@ function someGenerics8(n: T): T { return n; } var x = someGenerics8(someGenerics7); >x : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >someGenerics8(someGenerics7) : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >someGenerics8 : (n: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ x(null, null, null); >x(null, null, null) : void > : ^^^^ >x : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ // Generic call with multiple parameters of generic type passed arguments with no best common type function someGenerics9(a: T, b: T, c: T): T { >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : T @@ -538,7 +538,7 @@ var a9a = someGenerics9('', 0, []); >someGenerics9('', 0, []) : "" > : ^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >'' : "" > : ^^ >0 : 0 @@ -556,7 +556,7 @@ var a9b = someGenerics9<{ a?: number; b?: string; }>({ a: 0 }, { b: '' }, null); >someGenerics9<{ a?: number; b?: string; }>({ a: 0 }, { b: '' }, null) : { a?: number; b?: string; } > : ^^^^^^ ^^^^^^ ^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : number > : ^^^^^^ >b : string @@ -607,7 +607,7 @@ var a9e = someGenerics9(undefined, { x: 6, z: new Date() }, { x: 6, y: '' }); >someGenerics9(undefined, { x: 6, z: new Date() }, { x: 6, y: '' }) : { x: number; z: Date; y?: undefined; } | { x: number; y: string; z?: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >{ x: 6, z: new Date() } : { x: number; z: Date; } @@ -643,7 +643,7 @@ var a9f = someGenerics9(undefined, { x: 6, z: new Date() }, { x: 6, y: '' } >someGenerics9(undefined, { x: 6, z: new Date() }, { x: 6, y: '' }) : A92 > : ^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >{ x: 6, z: new Date() } : { x: number; z: Date; } @@ -680,7 +680,7 @@ var a9d = someGenerics9({ x: 3 }, { x: 6 }, { x: 6 }); >someGenerics9({ x: 3 }, { x: 6 }, { x: 6 }) : { x: number; } > : ^^^^^^^^^^^^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: 3 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -717,7 +717,7 @@ var a = someGenerics9(7, anyVar, 4); >someGenerics9(7, anyVar, 4) : any > : ^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >7 : 7 > : ^ >anyVar : any @@ -736,7 +736,7 @@ var arr = someGenerics9([], null, undefined); >someGenerics9([], null, undefined) : any[] > : ^^^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/typeArgumentInferenceApparentType1.types b/tests/baselines/reference/typeArgumentInferenceApparentType1.types index da555da82eef0..18ec778799d2b 100644 --- a/tests/baselines/reference/typeArgumentInferenceApparentType1.types +++ b/tests/baselines/reference/typeArgumentInferenceApparentType1.types @@ -3,7 +3,7 @@ === typeArgumentInferenceApparentType1.ts === function method(iterable: Iterable): T { >method : (iterable: Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >iterable : Iterable > : ^^^^^^^^^^^ @@ -16,7 +16,7 @@ var res: string = method("test"); >method("test") : string > : ^^^^^^ >method : (iterable: Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"test" : "test" > : ^^^^^^ diff --git a/tests/baselines/reference/typeArgumentInferenceApparentType2.types b/tests/baselines/reference/typeArgumentInferenceApparentType2.types index 75f56536348f4..58af3b2e9d0c3 100644 --- a/tests/baselines/reference/typeArgumentInferenceApparentType2.types +++ b/tests/baselines/reference/typeArgumentInferenceApparentType2.types @@ -3,7 +3,7 @@ === typeArgumentInferenceApparentType2.ts === function method(iterable: Iterable): T { >method : (iterable: Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >iterable : Iterable > : ^^^^^^^^^^^ @@ -21,7 +21,7 @@ function method(iterable: Iterable): T { >method(u) : T > : ^ >method : (iterable: Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >u : U > : ^ } diff --git a/tests/baselines/reference/typeArgumentInferenceErrors.types b/tests/baselines/reference/typeArgumentInferenceErrors.types index dd4a2fd7e7521..1112f667b469a 100644 --- a/tests/baselines/reference/typeArgumentInferenceErrors.types +++ b/tests/baselines/reference/typeArgumentInferenceErrors.types @@ -4,7 +4,7 @@ // Generic call with multiple type parameters and only one used in parameter type annotation function someGenerics1(n: T, m: number) { } >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : number @@ -14,7 +14,7 @@ someGenerics1(3, 4); // Error >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -23,7 +23,7 @@ someGenerics1(3, 4); // Error // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(n: T, f: (x: U) => void) { } >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >f : (x: U) => void @@ -35,7 +35,7 @@ someGenerics4('', (x: string) => ''); // Error >someGenerics4('', (x: string) => '') : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >(x: string) => '' : (x: string) => string @@ -48,7 +48,7 @@ someGenerics4('', (x: string) => ''); // Error // 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 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >f : (x: U) => void @@ -60,7 +60,7 @@ someGenerics5('', (x: string) => ''); // Error >someGenerics5('', (x: string) => '') : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >(x: string) => '' : (x: string) => string @@ -73,7 +73,7 @@ someGenerics5('', (x: string) => ''); // Error // 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 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : (a: A) => A > : ^ ^^ ^^^^^ >a : A @@ -91,7 +91,7 @@ someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // >someGenerics6((n: number) => n, (n: string) => n, (n: number) => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number diff --git a/tests/baselines/reference/typeArgumentInferenceOrdering.types b/tests/baselines/reference/typeArgumentInferenceOrdering.types index 7b001164619b2..0bb0553536aa5 100644 --- a/tests/baselines/reference/typeArgumentInferenceOrdering.types +++ b/tests/baselines/reference/typeArgumentInferenceOrdering.types @@ -24,7 +24,7 @@ interface Goo { function foo(f: { y: T }): T { return null } >foo : (f: { y: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : { y: T; } > : ^^^^^ ^^^ >y : T @@ -38,7 +38,7 @@ var x = foo(new C()).x; // was Error that property x does not exist on type {} >foo(new C()) : I > : ^ >foo : (f: { y: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >new C() : C > : ^ >C : typeof C diff --git a/tests/baselines/reference/typeArgumentInferenceTransitiveConstraints.types b/tests/baselines/reference/typeArgumentInferenceTransitiveConstraints.types index cd378e0458ac3..00c445f85bbda 100644 --- a/tests/baselines/reference/typeArgumentInferenceTransitiveConstraints.types +++ b/tests/baselines/reference/typeArgumentInferenceTransitiveConstraints.types @@ -3,7 +3,7 @@ === typeArgumentInferenceTransitiveConstraints.ts === function fn(a: A, b: B, c: C) { >fn : (a: A, b: B, c: C) => A[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >a : A > : ^ >b : B @@ -28,7 +28,7 @@ var d = fn(new Date(), new Date(), new Date()); >fn(new Date(), new Date(), new Date()) : Date[] > : ^^^^^^ >fn : (a: A, b: B, c: C) => A[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^ >new Date() : Date > : ^^^^ >Date : DateConstructor diff --git a/tests/baselines/reference/typeArgumentInferenceWithClassExpression1.types b/tests/baselines/reference/typeArgumentInferenceWithClassExpression1.types index 3c859be933951..8ff08f4ffd04b 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithClassExpression1.types +++ b/tests/baselines/reference/typeArgumentInferenceWithClassExpression1.types @@ -3,7 +3,7 @@ === typeArgumentInferenceWithClassExpression1.ts === function foo(x = class { static prop: T }): T { >foo : (x?: typeof (Anonymous class)) => T -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >class { static prop: T } : typeof (Anonymous class) @@ -22,7 +22,7 @@ foo(class { static prop = "hello" }).length; >foo(class { static prop = "hello" }) : string > : ^^^^^^ >foo : (x?: typeof (Anonymous class)) => T -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >class { static prop = "hello" } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >prop : string diff --git a/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.types b/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.types index 4489383dd8744..b27ba64130252 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.types +++ b/tests/baselines/reference/typeArgumentInferenceWithClassExpression2.types @@ -3,7 +3,7 @@ === typeArgumentInferenceWithClassExpression2.ts === function foo(x = class { prop: T }): T { >foo : (x?: typeof (Anonymous class)) => T -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >class { prop: T } : typeof (Anonymous class) @@ -23,7 +23,7 @@ foo(class { static prop = "hello" }).length; >foo(class { static prop = "hello" }) : unknown > : ^^^^^^^ >foo : (x?: typeof (Anonymous class)) => T -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >class { static prop = "hello" } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >prop : string diff --git a/tests/baselines/reference/typeArgumentInferenceWithClassExpression3.types b/tests/baselines/reference/typeArgumentInferenceWithClassExpression3.types index c56c54e1e263a..742fa55db19fa 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithClassExpression3.types +++ b/tests/baselines/reference/typeArgumentInferenceWithClassExpression3.types @@ -3,7 +3,7 @@ === typeArgumentInferenceWithClassExpression3.ts === function foo(x = class { prop: T }): T { >foo : (x?: typeof (Anonymous class)) => T -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >class { prop: T } : typeof (Anonymous class) @@ -22,7 +22,7 @@ foo(class { prop = "hello" }).length; >foo(class { prop = "hello" }) : string > : ^^^^^^ >foo : (x?: typeof (Anonymous class)) => T -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >class { prop = "hello" } : typeof (Anonymous class) > : ^^^^^^^^^^^^^^^^^^^^^^^^ >prop : string diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.types b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.types index c43ed052bb0f4..135e2254840dc 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.types +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.types @@ -15,7 +15,7 @@ interface Elephant extends Animal { z } function f(x: T, y: T): T { return undefined; } >f : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -35,7 +35,7 @@ f(g, e); // valid because both Giraffe and Elephant satisfy the constraint. T is >f(g, e) : Giraffe > : ^^^^^^^ >f : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >g : Giraffe > : ^^^^^^^ >e : Elephant diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraints.types b/tests/baselines/reference/typeArgumentInferenceWithConstraints.types index e33bc871d91be..594adff3a8bb1 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.types +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.types @@ -58,7 +58,7 @@ noGenericParams<{}>(''); // Error // Generic call with multiple type parameters and only one used in parameter type annotation function someGenerics1(n: T, m: number) { } >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : number @@ -68,7 +68,7 @@ someGenerics1(3, 4); // Valid >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -78,7 +78,7 @@ someGenerics1(3, 4); // Error >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -88,7 +88,7 @@ someGenerics1(3, 4); // Error >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -98,7 +98,7 @@ someGenerics1(3, 4); >someGenerics1(3, 4) : void > : ^^^^ >someGenerics1 : (n: T, m: number) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >3 : 3 > : ^ >4 : 4 @@ -107,7 +107,7 @@ someGenerics1(3, 4); // Generic call with argument of function type whose parameter is of type parameter type function someGenerics2a(n: (x: T) => void) { } >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : (x: T) => void > : ^ ^^ ^^^^^ >x : T @@ -117,7 +117,7 @@ someGenerics2a((n: string) => n); >someGenerics2a((n: string) => n) : void > : ^^^^ >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(n: string) => n : (n: string) => string > : ^ ^^ ^^^^^^^^^^^ >n : string @@ -129,7 +129,7 @@ someGenerics2a((n: string) => n); >someGenerics2a((n: string) => n) : void > : ^^^^ >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(n: string) => n : (n: string) => string > : ^ ^^ ^^^^^^^^^^^ >n : string @@ -141,7 +141,7 @@ someGenerics2a((n) => n.substr(0)); >someGenerics2a((n) => n.substr(0)) : void > : ^^^^ >someGenerics2a : (n: (x: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(n) => n.substr(0) : (n: string) => string > : ^ ^^^^^^^^^^^^^^^^^^^ >n : string @@ -159,7 +159,7 @@ someGenerics2a((n) => n.substr(0)); function someGenerics2b(n: (x: T, y: U) => void) { } >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : (x: T, y: U) => void > : ^ ^^ ^^ ^^ ^^^^^ >x : T @@ -171,7 +171,7 @@ someGenerics2b((n: string, x: number) => n); >someGenerics2b((n: string, x: number) => n) : void > : ^^^^ >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(n: string, x: number) => n : (n: string, x: number) => string > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >n : string @@ -185,7 +185,7 @@ someGenerics2b((n: string, t: number) => n); >someGenerics2b((n: string, t: number) => n) : void > : ^^^^ >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(n: string, t: number) => n : (n: string, t: number) => string > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >n : string @@ -199,7 +199,7 @@ someGenerics2b((n, t) => n.substr(t * t)); >someGenerics2b((n, t) => n.substr(t * t)) : void > : ^^^^ >someGenerics2b : (n: (x: T, y: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(n, t) => n.substr(t * t) : (n: string, t: number) => string > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ >n : string @@ -224,7 +224,7 @@ someGenerics2b((n, t) => n.substr(t * t)); // Generic call with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter function someGenerics3(producer: () => T) { } >someGenerics3 : (producer: () => T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >producer : () => T > : ^^^^^^ @@ -232,7 +232,7 @@ someGenerics3(() => ''); // Error >someGenerics3(() => '') : void > : ^^^^ >someGenerics3 : (producer: () => T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >() => '' : () => string > : ^^^^^^^^^^^^ >'' : "" @@ -242,7 +242,7 @@ someGenerics3(() => undefined); >someGenerics3(() => undefined) : void > : ^^^^ >someGenerics3 : (producer: () => T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >() => undefined : () => any > : ^^^^^^^^^ >undefined : undefined @@ -252,7 +252,7 @@ someGenerics3(() => 3); // Error >someGenerics3(() => 3) : void > : ^^^^ >someGenerics3 : (producer: () => T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >() => 3 : () => number > : ^^^^^^^^^^^^ >3 : 3 @@ -261,7 +261,7 @@ someGenerics3(() => 3); // Error // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type function someGenerics4(n: T, f: (x: U) => void) { } >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >f : (x: U) => void @@ -273,7 +273,7 @@ someGenerics4(4, () => null); // Valid >someGenerics4(4, () => null) : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >4 : 4 > : ^ >() => null : () => any @@ -283,7 +283,7 @@ someGenerics4('', () => 3); >someGenerics4('', () => 3) : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >() => 3 : () => number @@ -295,7 +295,7 @@ someGenerics4('', (x: string) => ''); // Error >someGenerics4('', (x: string) => '') : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >(x: string) => '' : (x: string) => string @@ -309,12 +309,12 @@ someGenerics4(null, null); >someGenerics4(null, null) : void > : ^^^^ >someGenerics4 : (n: T, f: (x: U) => void) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ // 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 : (n: T, f: (x: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >f : (x: U) => void @@ -326,7 +326,7 @@ someGenerics5(4, () => null); // Valid >someGenerics5(4, () => null) : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >4 : 4 > : ^ >() => null : () => any @@ -336,7 +336,7 @@ someGenerics5('', () => 3); >someGenerics5('', () => 3) : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >() => 3 : () => number @@ -348,7 +348,7 @@ someGenerics5('', (x: string) => ''); // Error >someGenerics5('', (x: string) => '') : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ >(x: string) => '' : (x: string) => string @@ -362,12 +362,12 @@ someGenerics5(null, null); // Error >someGenerics5(null, null) : void > : ^^^^ >someGenerics5 : (n: T, f: (x: U) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ // 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 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : (a: A) => A > : ^ ^^ ^^^^^ >a : A @@ -385,7 +385,7 @@ someGenerics6(n => n, n => n, n => n); // Valid >someGenerics6(n => n, n => n, n => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -409,7 +409,7 @@ someGenerics6(n => n, n => n, n => n); >someGenerics6(n => n, n => n, n => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -433,7 +433,7 @@ someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // >someGenerics6((n: number) => n, (n: string) => n, (n: number) => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number @@ -457,7 +457,7 @@ someGenerics6((n: number) => n, (n: number) => n, (n: number) => n); >someGenerics6((n: number) => n, (n: number) => n, (n: number) => n) : void > : ^^^^ >someGenerics6 : (a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number @@ -480,7 +480,7 @@ 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 function someGenerics7(a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) { } >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : (a: A) => A > : ^ ^^ ^^^^^ >a : A @@ -498,7 +498,7 @@ someGenerics7(n => n, n => n, n => n); // Valid, types of n are someGenerics7(n => n, n => n, n => n) : void > : ^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: unknown) => unknown > : ^ ^^^^^^^^^^^^^^^^^^^^^ >n : unknown @@ -522,7 +522,7 @@ someGenerics7(n => n, n => n, n => n); >someGenerics7(n => n, n => n, n => n) : void > : ^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >n => n : (n: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >n : number @@ -546,7 +546,7 @@ someGenerics7((n: number) => n, (n: string) => n, (n: nu >someGenerics7((n: number) => n, (n: string) => n, (n: number) => n) : void > : ^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number @@ -569,7 +569,7 @@ someGenerics7((n: number) => n, (n: string) => n, (n: nu // Generic call with argument of generic function type function someGenerics8(n: T): T { return n; } >someGenerics8 : (n: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >n : T > : ^ >n : T @@ -581,9 +581,9 @@ var x = someGenerics8(someGenerics7); // Error >someGenerics8(someGenerics7) : string > : ^^^^^^ >someGenerics8 : (n: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >someGenerics7 : (a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ x(null, null, null); // Error >x(null, null, null) : any @@ -594,7 +594,7 @@ x(null, null, null); // Error // Generic call with multiple parameters of generic type passed arguments with no best common type function someGenerics9(a: T, b: T, c: T): T { >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : T @@ -610,7 +610,7 @@ var a9a = someGenerics9('', 0, []); >someGenerics9('', 0, []) : "" > : ^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >'' : "" > : ^^ >0 : 0 @@ -628,7 +628,7 @@ var a9b = someGenerics9<{ a?: number; b?: string; }>({ a: 0 }, { b: '' }, null); >someGenerics9<{ a?: number; b?: string; }>({ a: 0 }, { b: '' }, null) : { a?: number; b?: string; } > : ^^^^^^ ^^^^^^ ^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : number > : ^^^^^^ >b : string @@ -679,7 +679,7 @@ var a9e = someGenerics9(undefined, { x: 6, z: window }, { x: 6, y: '' }); >someGenerics9(undefined, { x: 6, z: window }, { x: 6, y: '' }) : { x: number; z: Window & typeof globalThis; y?: undefined; } | { x: number; y: string; z?: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >{ x: 6, z: window } : { x: number; z: Window & typeof globalThis; } @@ -713,7 +713,7 @@ var a9f = someGenerics9(undefined, { x: 6, z: window }, { x: 6, y: '' }); >someGenerics9(undefined, { x: 6, z: window }, { x: 6, y: '' }) : A92 > : ^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >{ x: 6, z: window } : { x: number; z: Window & typeof globalThis; } @@ -748,7 +748,7 @@ var a9d = someGenerics9({ x: 3 }, { x: 6 }, { x: 6 }); >someGenerics9({ x: 3 }, { x: 6 }, { x: 6 }) : { x: number; } > : ^^^^^^^^^^^^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: 3 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -785,7 +785,7 @@ var a = someGenerics9(7, anyVar, 4); >someGenerics9(7, anyVar, 4) : any > : ^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >7 : 7 > : ^ >anyVar : any @@ -804,7 +804,7 @@ var arr = someGenerics9([], null, undefined); >someGenerics9([], null, undefined) : any[] > : ^^^^^ >someGenerics9 : (a: T, b: T, c: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types index aba0e382f6ae0..ca2e5b38062d5 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types +++ b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.types @@ -15,7 +15,7 @@ interface Computed { function foo(x: Computed) { } >foo : (x: Computed) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : Computed > : ^^^^^^^^^^^ @@ -28,7 +28,7 @@ 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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -59,7 +59,7 @@ 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; } > : ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -103,7 +103,7 @@ enum E2 { X } declare function f1(a: { w: (x: T) => U; r: () => T; }, b: T): U; >f1 : (a: { w: (x: T) => U; r: () => T; }, b: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >a : { w: (x: T) => U; r: () => T; } > : ^^^^^ ^^^^^ ^^^ >w : (x: T) => U @@ -125,7 +125,7 @@ var v1 = f1({ w: x => x, r: () => 0 }, 0); >f1({ w: x => x, r: () => 0 }, 0) : number > : ^^^^^^ >f1 : (a: { w: (x: T) => U; r: () => T; }, b: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ w: x => x, r: () => 0 } : { w: (x: number) => number; r: () => number; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >w : (x: number) => number @@ -151,7 +151,7 @@ var v1 = f1({ w: x => x, r: () => 0 }, E1.X); >f1({ w: x => x, r: () => 0 }, E1.X) : number > : ^^^^^^ >f1 : (a: { w: (x: T) => U; r: () => T; }, b: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ w: x => x, r: () => 0 } : { w: (x: number) => number; r: () => number; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >w : (x: number) => number @@ -181,7 +181,7 @@ var v1 = f1({ w: x => x, r: () => E1.X }, 0); >f1({ w: x => x, r: () => E1.X }, 0) : number > : ^^^^^^ >f1 : (a: { w: (x: T) => U; r: () => T; }, b: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ w: x => x, r: () => E1.X } : { w: (x: 0) => number; r: () => E1; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >w : (x: 0) => number @@ -215,7 +215,7 @@ var v2 = f1({ w: x => x, r: () => E1.X }, E1.X); >f1({ w: x => x, r: () => E1.X }, E1.X) : E1 > : ^^ >f1 : (a: { w: (x: T) => U; r: () => T; }, b: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ w: x => x, r: () => E1.X } : { w: (x: E1.X) => E1; r: () => E1; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >w : (x: E1.X) => E1 @@ -249,7 +249,7 @@ var v3 = f1({ w: x => x, r: () => E1.X }, E2.X); // Error >f1({ w: x => x, r: () => E1.X }, E2.X) : unknown > : ^^^^^^^ >f1 : (a: { w: (x: T) => U; r: () => T; }, b: T) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ w: x => x, r: () => E1.X } : { w: (x: E1) => E1; r: () => E1; } > : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >w : (x: E1) => E1 diff --git a/tests/baselines/reference/typeArgumentsInFunctionExpressions.types b/tests/baselines/reference/typeArgumentsInFunctionExpressions.types index 31ddd5159fcf0..807cce125fc48 100644 --- a/tests/baselines/reference/typeArgumentsInFunctionExpressions.types +++ b/tests/baselines/reference/typeArgumentsInFunctionExpressions.types @@ -3,11 +3,11 @@ === typeArgumentsInFunctionExpressions.ts === var obj = function f(a: T) { // should not error >obj : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >function f(a: T) { // should not error var x: T; return a;} : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : T > : ^ @@ -23,11 +23,11 @@ var obj = function f(a: T) { // should not error var obj2 = function f(a: T): T { // should not error >obj2 : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function f(a: T): T { // should not error var x: T; return a;} : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/typeArgumentsOnFunctionsWithNoTypeParameters.types b/tests/baselines/reference/typeArgumentsOnFunctionsWithNoTypeParameters.types index 714817e648fc3..84ab14d860542 100644 --- a/tests/baselines/reference/typeArgumentsOnFunctionsWithNoTypeParameters.types +++ b/tests/baselines/reference/typeArgumentsOnFunctionsWithNoTypeParameters.types @@ -3,7 +3,7 @@ === typeArgumentsOnFunctionsWithNoTypeParameters.ts === function foo(f: (v: T) => U) { >foo : (f: (v: T) => U) => void -> : ^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^^^^^^^^ >f : (v: T) => U > : ^ ^^ ^^^^^ >v : T diff --git a/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types b/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types index cd64f6c52d76c..47c6bb56e234d 100644 --- a/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types +++ b/tests/baselines/reference/typeArgumentsShouldDisallowNonGenericOverloads.types @@ -3,19 +3,19 @@ === typeArgumentsShouldDisallowNonGenericOverloads.ts === function foo(a: string): string; >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : string > : ^^^^^^ function foo(a: T): number; >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : T > : ^ function foo(a: any): any { >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a : any > : ^^^ @@ -30,7 +30,7 @@ var x: number = foo("hi"); // return type should be 'number' >foo("hi") : number > : ^^^^^^ >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"hi" : "hi" > : ^^^^ @@ -40,7 +40,7 @@ var y: string = foo("hi"); // return type should be 'string' >foo("hi") : string > : ^^^^^^ >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"hi" : "hi" > : ^^^^ @@ -50,7 +50,7 @@ var w: string = foo("hi"); // should error >foo("hi") : number > : ^^^^^^ >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"hi" : "hi" > : ^^^^ @@ -60,7 +60,7 @@ var z: number = foo("hi"); // should error >foo("hi") : string > : ^^^^^^ >foo : { (a: string): string; (a: T): number; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >"hi" : "hi" > : ^^^^ diff --git a/tests/baselines/reference/typeArgumentsWithStringLiteralTypes01.types b/tests/baselines/reference/typeArgumentsWithStringLiteralTypes01.types index b60afb3ff4375..c961b722a4d68 100644 --- a/tests/baselines/reference/typeArgumentsWithStringLiteralTypes01.types +++ b/tests/baselines/reference/typeArgumentsWithStringLiteralTypes01.types @@ -25,7 +25,7 @@ declare function takeReturnHelloWorld(str: "Hello" | "World"): "Hello" | "World" function fun1(x: T, y: T) { >fun1 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : T @@ -46,7 +46,7 @@ function fun1(x: T, y: T) { function fun2(x: T, y: U) { >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >x : T > : ^ >y : U @@ -67,7 +67,7 @@ function fun2(x: T, y: U) { function fun3(...args: T[]): T { >fun3 : (...args: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >args : T[] > : ^^^ @@ -97,7 +97,7 @@ namespace n1 { >fun1("Hello", "World") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun1 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" @@ -109,7 +109,7 @@ namespace n1 { >fun1("Hello", "Hello") : "Hello" > : ^^^^^^^ >fun1 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"Hello" : "Hello" @@ -121,7 +121,7 @@ namespace n1 { >fun2("Hello", "World") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" @@ -133,7 +133,7 @@ namespace n1 { >fun2("Hello", "Hello") : "Hello" > : ^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"Hello" : "Hello" @@ -145,7 +145,7 @@ namespace n1 { >fun3("Hello", "Hello", "World", "Foo") : "Hello" | "World" | "Foo" > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >fun3 : (...args: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"Hello" : "Hello" @@ -351,7 +351,7 @@ namespace n2 { >fun1<"Hello">("Hello", "Hello") : "Hello" > : ^^^^^^^ >fun1 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"Hello" : "Hello" @@ -363,7 +363,7 @@ namespace n2 { >fun1<"Hello">("Hello", "World") : "Hello" > : ^^^^^^^ >fun1 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" @@ -375,7 +375,7 @@ namespace n2 { >fun2<"Hello", "Hello">("Hello", "Hello") : "Hello" > : ^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"Hello" : "Hello" @@ -387,7 +387,7 @@ namespace n2 { >fun2<"Hello", "Hello">("Hello", "World") : "Hello" > : ^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" @@ -399,7 +399,7 @@ namespace n2 { >fun3<"Hello">("Hello", "World") : "Hello" > : ^^^^^^^ >fun3 : (...args: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" @@ -602,7 +602,7 @@ namespace n3 { >fun2<"Hello", "World">("Hello", "World") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" @@ -614,7 +614,7 @@ namespace n3 { >fun2<"Hello", "World">("World", "Hello") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"World" : "World" > : ^^^^^^^ >"Hello" : "Hello" @@ -626,7 +626,7 @@ namespace n3 { >fun2<"World", "Hello">("Hello", "Hello") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"Hello" : "Hello" @@ -638,7 +638,7 @@ namespace n3 { >fun2<"World", "Hello">("World", "World") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >"World" : "World" > : ^^^^^^^ >"World" : "World" @@ -650,7 +650,7 @@ namespace n3 { >fun3<"Hello" | "World">("Hello", "World") : "Hello" | "World" > : ^^^^^^^^^^^^^^^^^ >fun3 : (...args: T[]) => T -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >"Hello" : "Hello" > : ^^^^^^^ >"World" : "World" diff --git a/tests/baselines/reference/typeAssertionToGenericFunctionType.types b/tests/baselines/reference/typeAssertionToGenericFunctionType.types index 0654ab1bae06a..1ad685d5e5382 100644 --- a/tests/baselines/reference/typeAssertionToGenericFunctionType.types +++ b/tests/baselines/reference/typeAssertionToGenericFunctionType.types @@ -3,15 +3,15 @@ === typeAssertionToGenericFunctionType.ts === var x = { >x : { a: (x: T) => T; b: (x: T) => void; } -> : ^^^^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ >{ a: < (x: T) => T > ((x: any) => 1), b: (x: T) => { x }} : { a: (x: T) => T; b: (x: T) => void; } -> : ^^^^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ a: < (x: T) => T > ((x: any) => 1), >a : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >< (x: T) => T > ((x: any) => 1) : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >((x: any) => 1) : (x: any) => number @@ -25,9 +25,9 @@ var x = { b: (x: T) => { x } >b : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >(x: T) => { x } : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ >x : T @@ -37,11 +37,11 @@ x.a(1); // bug was that this caused 'Could not find symbol T' on return >x.a(1) : string > : ^^^^^^ >x.a : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: (x: T) => T; b: (x: T) => void; } -> : ^^^^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ >a : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -49,9 +49,9 @@ x.b(); // error >x.b() : void > : ^^^^ >x.b : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : { a: (x: T) => T; b: (x: T) => void; } -> : ^^^^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ >b : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ diff --git a/tests/baselines/reference/typeAssertions.types b/tests/baselines/reference/typeAssertions.types index bc6a8c82a5e03..c93beb31317bb 100644 --- a/tests/baselines/reference/typeAssertions.types +++ b/tests/baselines/reference/typeAssertions.types @@ -4,7 +4,7 @@ // Function call whose argument is a 1 arg generic function call with explicit type arguments function fn1(t: T) { } >fn1 : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -18,7 +18,7 @@ fn1(fn2(4)); // Error >fn1(fn2(4)) : void > : ^^^^ >fn1 : (t: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >fn2(4) : void > : ^^^^ >fn2 : (t: any) => void diff --git a/tests/baselines/reference/typeFromJSInitializer.types b/tests/baselines/reference/typeFromJSInitializer.types index 41b74960c9a7e..068fc7d72becc 100644 --- a/tests/baselines/reference/typeFromJSInitializer.types +++ b/tests/baselines/reference/typeFromJSInitializer.types @@ -423,11 +423,11 @@ const g = e.filter(isUndef); >e.filter(isUndef) : undefined[] > : ^^^^^^^^^^^ >e.filter : { (predicate: (value: number | undefined, index: number, array: (number | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | undefined, index: number, array: (number | undefined)[]) => unknown, thisArg?: any): (number | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^ >e : (number | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: number | undefined, index: number, array: (number | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: number | undefined, index: number, array: (number | undefined)[]) => unknown, thisArg?: any): (number | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^ >isUndef : (v: unknown) => v is undefined > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/typeGuardFunctionErrors.types b/tests/baselines/reference/typeGuardFunctionErrors.types index 7fda3c139ac01..777745ea61123 100644 --- a/tests/baselines/reference/typeGuardFunctionErrors.types +++ b/tests/baselines/reference/typeGuardFunctionErrors.types @@ -120,7 +120,7 @@ function hasNonMatchingParameterType2(x: string): x is number { function hasNonMathcingGenericType(a: string): a is T[] { >hasNonMathcingGenericType : (a: string) => a is T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : string > : ^^^^^^ @@ -510,7 +510,7 @@ type KeySet = { [k in T]: true } // expected an error, since Keys doesn't have a 'd' declare function hasKey(x: KeySet): x is KeySet; >hasKey : (x: KeySet) => x is KeySet -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : KeySet > : ^^^^^^^^^ diff --git a/tests/baselines/reference/typeGuardFunctionGenerics.types b/tests/baselines/reference/typeGuardFunctionGenerics.types index 58df2241c7814..c272380b28e60 100644 --- a/tests/baselines/reference/typeGuardFunctionGenerics.types +++ b/tests/baselines/reference/typeGuardFunctionGenerics.types @@ -47,14 +47,14 @@ declare function retC(x): C; declare function funA(p1: (p1) => T): T; >funA : (p1: (p1: any) => T) => T -> : ^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^^^^ >p1 : (p1: any) => T > : ^ ^^^^^^^^^^ >p1 : any declare function funB(p1: (p1) => T, p2: any): p2 is T; >funB : (p1: (p1: any) => T, p2: any) => p2 is T -> : ^ ^^ ^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^ ^^ ^^^^^ >p1 : (p1: any) => T > : ^ ^^^^^^^^^^ >p1 : any @@ -62,14 +62,14 @@ declare function funB(p1: (p1) => T, p2: any): p2 is T; declare function funC(p1: (p1) => p1 is T): T; >funC : (p1: (p1: any) => p1 is T) => T -> : ^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^^^^ >p1 : (p1: any) => p1 is T > : ^ ^^^^^^^^^^ >p1 : any declare function funD(p1: (p1) => p1 is T, p2: any): p2 is T; >funD : (p1: (p1: any) => p1 is T, p2: any) => p2 is T -> : ^ ^^ ^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^ ^^ ^^^^^ >p1 : (p1: any) => p1 is T > : ^ ^^^^^^^^^^ >p1 : any @@ -77,7 +77,7 @@ declare function funD(p1: (p1) => p1 is T, p2: any): p2 is T; declare function funE(p1: (p1) => p1 is T, p2: U): T; >funE : (p1: (p1: any) => p1 is T, p2: U) => T -> : ^ ^^ ^^ ^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^ ^^ ^^ ^^^^^ >p1 : (p1: any) => p1 is T > : ^ ^^^^^^^^^^ >p1 : any @@ -94,7 +94,7 @@ let test1: boolean = funA(isB); >funA(isB) : boolean > : ^^^^^^^ >funA : (p1: (p1: any) => T) => T -> : ^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^^^^ >isB : (p1: any) => p1 is B > : ^ ^^^^^^^^^^ @@ -102,7 +102,7 @@ if (funB(retC, a)) { >funB(retC, a) : boolean > : ^^^^^^^ >funB : (p1: (p1: any) => T, p2: any) => p2 is T -> : ^ ^^ ^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^ ^^ ^^^^^ >retC : (x: any) => C > : ^ ^^^^^^^^^^ >a : A @@ -122,7 +122,7 @@ let test2: B = funC(isB); >funC(isB) : B > : ^ >funC : (p1: (p1: any) => p1 is T) => T -> : ^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^^^^ >isB : (p1: any) => p1 is B > : ^ ^^^^^^^^^^ @@ -130,7 +130,7 @@ if (funD(isC, a)) { >funD(isC, a) : boolean > : ^^^^^^^ >funD : (p1: (p1: any) => p1 is T, p2: any) => p2 is T -> : ^ ^^ ^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^ ^^ ^^ ^^^^^ >isC : (p1: any) => p1 is C > : ^ ^^^^^^^^^^ >a : A @@ -150,7 +150,7 @@ let test3: B = funE(isB, 1); >funE(isB, 1) : B > : ^ >funE : (p1: (p1: any) => p1 is T, p2: U) => T -> : ^ ^^ ^^ ^^ ^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^ ^^ ^^ ^^^^^ >isB : (p1: any) => p1 is B > : ^ ^^^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types index 944cfeda15972..1822da804a3de 100644 --- a/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types +++ b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types @@ -3,7 +3,7 @@ === typeGuardNarrowByMutableUntypedField.ts === declare function hasOwnProperty

(target: {}, property: P): target is { [K in P]: unknown }; >hasOwnProperty :

(target: {}, property: P) => target is { [K in P]: unknown; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >target : {} > : ^^ >property : P @@ -17,7 +17,7 @@ if (hasOwnProperty(arrayLikeOrIterable, 'length')) { >hasOwnProperty(arrayLikeOrIterable, 'length') : boolean > : ^^^^^^^ >hasOwnProperty :

(target: {}, property: P) => target is { [K in P]: unknown; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >arrayLikeOrIterable : ArrayLike | Iterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'length' : "length" diff --git a/tests/baselines/reference/typeGuardNarrowByUntypedField.types b/tests/baselines/reference/typeGuardNarrowByUntypedField.types index 24529b6b36b11..cf6f8e90e4688 100644 --- a/tests/baselines/reference/typeGuardNarrowByUntypedField.types +++ b/tests/baselines/reference/typeGuardNarrowByUntypedField.types @@ -3,7 +3,7 @@ === typeGuardNarrowByUntypedField.ts === declare function hasOwnProperty

(target: {}, property: P): target is { readonly [K in P]: unknown }; >hasOwnProperty :

(target: {}, property: P) => target is { readonly [K in P]: unknown; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >target : {} > : ^^ >property : P @@ -17,7 +17,7 @@ if (hasOwnProperty(arrayLikeOrIterable, 'length')) { >hasOwnProperty(arrayLikeOrIterable, 'length') : boolean > : ^^^^^^^ >hasOwnProperty :

(target: {}, property: P) => target is { readonly [K in P]: unknown; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >arrayLikeOrIterable : ArrayLike | Iterable > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'length' : "length" diff --git a/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types b/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types index 99e8317b18be7..ebda1b8fcb641 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types @@ -66,7 +66,7 @@ function f3(x: {}) { function f4(x: T) { >f4 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -223,7 +223,7 @@ function f12(x: { s: string } | { n: number }) { function f100(obj: T, keys: K[]) : void { >f100 : (obj: T, keys: K[]) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >keys : K[] @@ -272,7 +272,7 @@ function f100(obj: T, keys: K[]) : void { function configureStore(reducer: (() => void) | Record void>) { >configureStore : (reducer: (() => void) | Record void>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >reducer : Record void> | (() => void) > : ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^ diff --git a/tests/baselines/reference/typeGuardsAsAssertions.types b/tests/baselines/reference/typeGuardsAsAssertions.types index a012e895329a2..2aefd22e03b24 100644 --- a/tests/baselines/reference/typeGuardsAsAssertions.types +++ b/tests/baselines/reference/typeGuardsAsAssertions.types @@ -31,7 +31,7 @@ export const none : None = { none: '' }; export function isSome(value: Optional): value is Some { >isSome : (value: Optional) => value is Some -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Optional > : ^^^^^^^^^^^ @@ -46,7 +46,7 @@ export function isSome(value: Optional): value is Some { function someFrom(some: a) { >someFrom : (some: a) => { some: a; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >some : a > : ^ @@ -59,7 +59,7 @@ function someFrom(some: a) { export function fn(makeSome: () => r): void { >fn : (makeSome: () => r) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >makeSome : () => r > : ^^^^^^ @@ -89,13 +89,13 @@ export function fn(makeSome: () => r): void { >someFrom(isSome(result) ? result.some : makeSome()) : { some: r; } > : ^^^^^^^^^^^^ >someFrom : (some: a) => { some: a; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >isSome(result) ? result.some : makeSome() : r > : ^ >isSome(result) : boolean > : ^^^^^^^ >isSome : (value: Optional) => value is Some -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >result : Optional > : ^^^^^^^^^^^ >result.some : r diff --git a/tests/baselines/reference/typeGuardsTypeParameters.types b/tests/baselines/reference/typeGuardsTypeParameters.types index 9c5285d315653..2ab0ec68f29a3 100644 --- a/tests/baselines/reference/typeGuardsTypeParameters.types +++ b/tests/baselines/reference/typeGuardsTypeParameters.types @@ -14,7 +14,7 @@ class C { function f1(x: T) { >f1 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -50,7 +50,7 @@ function f1(x: T) { function f2(x: T) { >f2 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -90,7 +90,7 @@ function f2(x: T) { function fun(item: { [P in keyof T]: T[P] }) { >fun : (item: { [P in keyof T]: T[P]; }) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >item : { [P in keyof T]: T[P]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeInferenceCacheInvalidation.types b/tests/baselines/reference/typeInferenceCacheInvalidation.types index 0702dd8a16bcf..a882ae6a37d4c 100644 --- a/tests/baselines/reference/typeInferenceCacheInvalidation.types +++ b/tests/baselines/reference/typeInferenceCacheInvalidation.types @@ -13,7 +13,7 @@ type Callback = (foo: TFoo, bar: TBar) => any declare function example>( >example : >(foo: TFoo, callback: TCallback, bar: TBar) => TCallback -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ foo: TFoo, >foo : TFoo @@ -33,7 +33,7 @@ example(42, (foo, bar) => ({ >example(42, (foo, bar) => ({ t: () => { let s: string = bar; }}), '42') : (foo: number, bar: string) => { t: () => void; } > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >example : >(foo: TFoo, callback: TCallback, bar: TBar) => TCallback -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >42 : 42 > : ^^ >(foo, bar) => ({ t: () => { let s: string = bar; }}) : (foo: number, bar: string) => { t: () => void; } @@ -67,7 +67,7 @@ example(42, (foo, bar) => ({ >example(42, (foo, bar) => ({ t() { let s: string = bar; }}), '42') : (foo: number, bar: string) => { t(): void; } > : ^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >example : >(foo: TFoo, callback: TCallback, bar: TBar) => TCallback -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >42 : 42 > : ^^ >(foo, bar) => ({ t() { let s: string = bar; }}) : (foo: number, bar: string) => { t(): void; } diff --git a/tests/baselines/reference/typeInferenceConflictingCandidates.types b/tests/baselines/reference/typeInferenceConflictingCandidates.types index 85e886441ef71..19980384e4308 100644 --- a/tests/baselines/reference/typeInferenceConflictingCandidates.types +++ b/tests/baselines/reference/typeInferenceConflictingCandidates.types @@ -3,7 +3,7 @@ === typeInferenceConflictingCandidates.ts === declare function g(a: T, b: T, c: (t: T) => T): T; >g : (a: T, b: T, c: (t: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : T @@ -17,7 +17,7 @@ g("", 3, a => a); >g("", 3, a => a) : "" > : ^^ >g : (a: T, b: T, c: (t: T) => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >3 : 3 diff --git a/tests/baselines/reference/typeInferenceFBoundedTypeParams.types b/tests/baselines/reference/typeInferenceFBoundedTypeParams.types index 2864fcc53ac3a..5cbad7fcd6284 100644 --- a/tests/baselines/reference/typeInferenceFBoundedTypeParams.types +++ b/tests/baselines/reference/typeInferenceFBoundedTypeParams.types @@ -5,7 +5,7 @@ function fold(values: a[], result: r, fold: (result: r, value: a) => r): r { >fold : (values: a[], result: r, fold: (result: r, value: a) => r) => r -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >values : a[] > : ^^^ >result : r @@ -44,7 +44,7 @@ function fold(values: a[], result: r, fold: (result: r, value: a) => r): r function append(values: a[], value: b): a[] { >append : (values: a[], value: b) => a[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >values : a[] > : ^^^ >value : b @@ -71,7 +71,7 @@ fold( >fold( [1, 2, 3], [] as [string, string][], (result, value) => append( result, ["", ""] )) : [string, string][] > : ^^^^^^^^^^^^^^^^^^ >fold : (values: a[], result: r, fold: (result: r, value: a) => r) => r -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ [1, 2, 3], >[1, 2, 3] : number[] @@ -99,7 +99,7 @@ fold( >append( result, ["", ""] ) : [string, string][] > : ^^^^^^^^^^^^^^^^^^ >append : (values: a[], value: b) => a[] -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ result, >result : [string, string][] diff --git a/tests/baselines/reference/typeInferenceFixEarly.types b/tests/baselines/reference/typeInferenceFixEarly.types index 97bfffd225925..ca647ae8f0011 100644 --- a/tests/baselines/reference/typeInferenceFixEarly.types +++ b/tests/baselines/reference/typeInferenceFixEarly.types @@ -3,7 +3,7 @@ === typeInferenceFixEarly.ts === declare function f(p: (t: T) => T): T; >f : (p: (t: T) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : (t: T) => T > : ^ ^^ ^^^^^ >t : T @@ -13,7 +13,7 @@ f(n => 3); >f(n => 3) : unknown > : ^^^^^^^ >f : (p: (t: T) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >n => 3 : (n: unknown) => number > : ^ ^^^^^^^^^^^^^^^^^^^^ >n : unknown diff --git a/tests/baselines/reference/typeInferenceLiteralUnion.types b/tests/baselines/reference/typeInferenceLiteralUnion.types index bd30c26b08216..f87e9ffe3d419 100644 --- a/tests/baselines/reference/typeInferenceLiteralUnion.types +++ b/tests/baselines/reference/typeInferenceLiteralUnion.types @@ -62,7 +62,7 @@ class NumCoercible { */ export function extent(array: Array): [T | Primitive, T | Primitive] | [undefined, undefined] { >extent : (array: Array) => [T | Primitive, T | Primitive] | [undefined, undefined] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >array : (Primitive | T)[] > : ^^^^^^^^^^^^^^^^^ @@ -88,7 +88,7 @@ extentMixed = extent([new NumCoercible(10), 13, '12', true]); >extent([new NumCoercible(10), 13, '12', true]) : [undefined, undefined] | [Primitive | NumCoercible, Primitive | NumCoercible] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >extent : (array: Array) => [T | Primitive, T | Primitive] | [undefined, undefined] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[new NumCoercible(10), 13, '12', true] : (string | number | true | NumCoercible)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >new NumCoercible(10) : NumCoercible diff --git a/tests/baselines/reference/typeInferenceReturnTypeCallback.types b/tests/baselines/reference/typeInferenceReturnTypeCallback.types index 200d09ff59139..49fce8b368c97 100644 --- a/tests/baselines/reference/typeInferenceReturnTypeCallback.types +++ b/tests/baselines/reference/typeInferenceReturnTypeCallback.types @@ -4,7 +4,7 @@ interface IList { map(f: (t: A) => B): IList; >map : (f: (t: A) => B) => IList -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (t: A) => B > : ^ ^^ ^^^^^ >t : A @@ -17,7 +17,7 @@ class Nil implements IList{ map(f: (t: C) => D): IList { >map : (f: (t: C) => D) => IList -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (t: C) => D > : ^ ^^ ^^^^^ >t : C @@ -33,7 +33,7 @@ class Cons implements IList{ map(f: (t: T) => U): IList { >map : (f: (t: T) => U) => IList -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (t: T) => U > : ^ ^^ ^^^^^ >t : T @@ -43,11 +43,11 @@ class Cons implements IList{ >this.foldRight(new Nil(), (t, acc) => { return new Cons(); }) : Nil > : ^^^^^^ >this.foldRight : (z: E, f: (t: T, acc: E) => E) => E -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >this : this > : ^^^^ >foldRight : (z: E, f: (t: T, acc: E) => E) => E -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >new Nil() : Nil > : ^^^^^^ >Nil : typeof Nil @@ -70,7 +70,7 @@ class Cons implements IList{ foldRight(z: E, f: (t: T, acc: E) => E): E { >foldRight : (z: E, f: (t: T, acc: E) => E) => E -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >z : E > : ^ >f : (t: T, acc: E) => E diff --git a/tests/baselines/reference/typeInferenceTypePredicate.types b/tests/baselines/reference/typeInferenceTypePredicate.types index 61e3d604a7fea..306a182ec5ed8 100644 --- a/tests/baselines/reference/typeInferenceTypePredicate.types +++ b/tests/baselines/reference/typeInferenceTypePredicate.types @@ -3,7 +3,7 @@ === typeInferenceTypePredicate.ts === declare function f(predicate: (x: {}) => x is T): T; >f : (predicate: (x: {}) => x is T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >predicate : (x: {}) => x is T > : ^ ^^ ^^^^^ >x : {} @@ -16,7 +16,7 @@ const res = f((n): n is number => true); >f((n): n is number => true) : number > : ^^^^^^ >f : (predicate: (x: {}) => x is T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(n): n is number => true : (n: {}) => n is number > : ^ ^^^^^^^^^ >n : {} diff --git a/tests/baselines/reference/typeInferenceTypePredicate2.types b/tests/baselines/reference/typeInferenceTypePredicate2.types index 1906a7c824a06..648179e6935c9 100644 --- a/tests/baselines/reference/typeInferenceTypePredicate2.types +++ b/tests/baselines/reference/typeInferenceTypePredicate2.types @@ -9,7 +9,7 @@ >[true, true, false, null] .filter((thing): thing is boolean => thing !== null) : boolean[] > : ^^^^^^^^^ >[true, true, false, null] .filter : { (predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; (predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >[true, true, false, null] : boolean[] > : ^^^^^^^^^ >true : true @@ -21,7 +21,7 @@ .filter((thing): thing is boolean => thing !== null) >filter : { (predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; (predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^ >(thing): thing is boolean => thing !== null : (thing: boolean) => thing is boolean > : ^ ^^^^^^^^^^^^^^ >thing : boolean diff --git a/tests/baselines/reference/typeInferenceWithExcessProperties.types b/tests/baselines/reference/typeInferenceWithExcessProperties.types index 055932151ddb0..8e5f752a066ab 100644 --- a/tests/baselines/reference/typeInferenceWithExcessProperties.types +++ b/tests/baselines/reference/typeInferenceWithExcessProperties.types @@ -11,7 +11,7 @@ interface Named { function parrot(obj: T): T { >parrot : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : T > : ^ @@ -25,7 +25,7 @@ parrot({ >parrot({ name: "TypeScript",}) : { name: string; } > : ^^^^^^^^^^^^^^^^^ >parrot : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "TypeScript",} : { name: string; } > : ^^^^^^^^^^^^^^^^^ @@ -41,7 +41,7 @@ parrot({ >parrot({ name: "TypeScript", age: 5,}) : { name: string; age: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >parrot : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "TypeScript", age: 5,} : { name: string; age: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -63,7 +63,7 @@ parrot({ >parrot({ name: "TypeScript", age: function () { },}) : { name: string; age: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >parrot : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "TypeScript", age: function () { },} : { name: string; age: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -85,7 +85,7 @@ parrot({ >parrot({ name: "TypeScript", sayHello() { },}) : { name: string; sayHello(): void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >parrot : (obj: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ name: "TypeScript", sayHello() { },} : { name: string; sayHello(): void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types index a62330af4055b..84519a9fde813 100644 --- a/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types +++ b/tests/baselines/reference/typeInferenceWithExcessPropertiesJsx.types @@ -56,7 +56,7 @@ type TProps = { declare function T( >T : (props: TProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ props: TProps >props : TProps @@ -70,7 +70,7 @@ declare function T( > allTranslations.a} args="a" /> : JSX.Element > : ^^^^^^^^^^^ >T : (props: TProps) => JSX.Element -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >getTranslationEntry : (allTranslations: Translations) => { args: [string]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >(allTranslations) => allTranslations.a : (allTranslations: Translations) => { args: [string]; } diff --git a/tests/baselines/reference/typeInferenceWithTupleType.types b/tests/baselines/reference/typeInferenceWithTupleType.types index 7e88b7f79b7cc..45cc41c35c1ce 100644 --- a/tests/baselines/reference/typeInferenceWithTupleType.types +++ b/tests/baselines/reference/typeInferenceWithTupleType.types @@ -3,7 +3,7 @@ === typeInferenceWithTupleType.ts === function combine(x: T, y: U): [T, U] { >combine : (x: T, y: U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -24,7 +24,7 @@ var combineResult = combine("string", 10); >combine("string", 10) : [string, number] > : ^^^^^^^^^^^^^^^^ >combine : (x: T, y: U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"string" : "string" > : ^^^^^^^^ >10 : 10 @@ -52,7 +52,7 @@ var combineEle2 = combineResult[1]; // number function zip(array1: T[], array2: U[]): [[T, U]] { >zip : (array1: T[], array2: U[]) => [[T, U]] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >array1 : T[] > : ^^^ >array2 : U[] @@ -149,7 +149,7 @@ var zipResult = zip(["foo", "bar"], [5, 6]); >zip(["foo", "bar"], [5, 6]) : [[string, number]] > : ^^^^^^^^^^^^^^^^^^ >zip : (array1: T[], array2: U[]) => [[T, U]] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >["foo", "bar"] : string[] > : ^^^^^^^^ >"foo" : "foo" @@ -191,13 +191,13 @@ var zipResultEleEle = zipResult[0][0]; // string declare function f1(values: [T1[], T2[]]): T1; >f1 : (values: [T1[], T2[]]) => T1 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >values : [T1[], T2[]] > : ^^^^^^^^^^^^ declare function f2(values: readonly [T1[], T2[]]): T1; >f2 : (values: readonly [T1[], T2[]]) => T1 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >values : readonly [T1[], T2[]] > : ^^^^^^^^^^^^^^^^^^^^^ @@ -213,7 +213,7 @@ expected = f1(undefined as ["a"[], "b"[]]); >f1(undefined as ["a"[], "b"[]]) : "a" > : ^^^ >f1 : (values: [T1[], T2[]]) => T1 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >undefined as ["a"[], "b"[]] : ["a"[], "b"[]] > : ^^^^^^^^^^^^^^ >undefined : undefined @@ -227,7 +227,7 @@ expected = f2(undefined as ["a"[], "b"[]]); >f2(undefined as ["a"[], "b"[]]) : "a" > : ^^^ >f2 : (values: readonly [T1[], T2[]]) => T1 -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^ >undefined as ["a"[], "b"[]] : ["a"[], "b"[]] > : ^^^^^^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/typeInferenceWithTypeAnnotation.types b/tests/baselines/reference/typeInferenceWithTypeAnnotation.types index 9bc063adbca4c..e4c7653a9b7d7 100644 --- a/tests/baselines/reference/typeInferenceWithTypeAnnotation.types +++ b/tests/baselines/reference/typeInferenceWithTypeAnnotation.types @@ -3,7 +3,7 @@ === typeInferenceWithTypeAnnotation.ts === declare function f(p: (t: T) => T): T; >f : (p: (t: T) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : (t: T) => T > : ^ ^^ ^^^^^ >t : T @@ -13,7 +13,7 @@ f((n: number) => n); >f((n: number) => n) : number > : ^^^^^^ >f : (p: (t: T) => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(n: number) => n : (n: number) => number > : ^ ^^ ^^^^^^^^^^^ >n : number diff --git a/tests/baselines/reference/typeOfOnTypeArg.types b/tests/baselines/reference/typeOfOnTypeArg.types index a61d552a025f4..9f8c9ee9aa6ee 100644 --- a/tests/baselines/reference/typeOfOnTypeArg.types +++ b/tests/baselines/reference/typeOfOnTypeArg.types @@ -13,7 +13,7 @@ var A = { '': 3 }; function fill(f: B) { >fill : (f: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >A : { '': number; } > : ^^^^^^^^^^^^^^^ >f : B @@ -25,7 +25,7 @@ fill(32); >fill(32) : void > : ^^^^ >fill : (f: B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >32 : 32 > : ^^ diff --git a/tests/baselines/reference/typeParameterAndArgumentOfSameName1.types b/tests/baselines/reference/typeParameterAndArgumentOfSameName1.types index f41dfbfa4e809..8cdac47ccd790 100644 --- a/tests/baselines/reference/typeParameterAndArgumentOfSameName1.types +++ b/tests/baselines/reference/typeParameterAndArgumentOfSameName1.types @@ -3,7 +3,7 @@ === typeParameterAndArgumentOfSameName1.ts === function f(A: A): A { >f : (A: A) => A -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >A : A > : ^ diff --git a/tests/baselines/reference/typeParameterAsTypeArgument.types b/tests/baselines/reference/typeParameterAsTypeArgument.types index c6ed20b85215a..23a46a9840599 100644 --- a/tests/baselines/reference/typeParameterAsTypeArgument.types +++ b/tests/baselines/reference/typeParameterAsTypeArgument.types @@ -5,7 +5,7 @@ function foo(x: T, y: U) { >foo : (x: T, y: U) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >x : T > : ^ >y : U @@ -15,7 +15,7 @@ function foo(x: T, y: U) { >foo(y, y) : C > : ^^^^^^^ >foo : (x: T, y: U) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >y : U > : ^ >y : U diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraint.types b/tests/baselines/reference/typeParameterAsTypeParameterConstraint.types index aac7b442ff329..216debc1a6bf9 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraint.types +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraint.types @@ -6,7 +6,7 @@ function foo(x: T, y: U): U { return y; } >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -20,7 +20,7 @@ var r = foo(1, 2); >foo(1, 2) : 2 > : ^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -32,7 +32,7 @@ var r = foo({}, 1); >foo({}, 1) : 1 > : ^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{} : {} > : ^^ >1 : 1 @@ -62,7 +62,7 @@ var r2 = foo(a, b); >foo(a, b) : B > : ^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -74,7 +74,7 @@ var r3 = foo({ x: 1 }, { x: 2, y: 3 }); >foo({ x: 1 }, { x: 2, y: 3 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: 1 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -94,7 +94,7 @@ var r3 = foo({ x: 1 }, { x: 2, y: 3 }); function foo2(x: T, y: U) { return y; } >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >length : T > : ^ >x : T @@ -108,7 +108,7 @@ foo2(1, ''); >foo2(1, '') : "" > : ^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >'' : "" @@ -118,7 +118,7 @@ foo2({}, { length: 2 }); >foo2({}, { length: 2 }) : { length: number; } > : ^^^^^^^^^^^^^^^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >{} : {} > : ^^ >{ length: 2 } : { length: number; } @@ -132,7 +132,7 @@ foo2(1, { width: 3, length: 2 }); >foo2(1, { width: 3, length: 2 }) : { width: number; length: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >{ width: 3, length: 2 } : { width: number; length: number; } @@ -150,7 +150,7 @@ foo2(1, []); >foo2(1, []) : any[] > : ^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >[] : undefined[] @@ -160,7 +160,7 @@ foo2(1, ['']); >foo2(1, ['']) : string[] > : ^^^^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >[''] : string[] diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraint2.types b/tests/baselines/reference/typeParameterAsTypeParameterConstraint2.types index a8504d3847131..387c48238cbfa 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraint2.types +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraint2.types @@ -6,7 +6,7 @@ function foo(x: T, y: U): U { return y; } // this is now an error >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -18,7 +18,7 @@ foo(1, ''); >foo(1, '') : number > : ^^^^^^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >'' : "" @@ -28,7 +28,7 @@ foo(1, {}); >foo(1, {}) : number > : ^^^^^^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >{} : {} @@ -49,7 +49,7 @@ var r3 = foo(1, n); >foo(1, n) : number > : ^^^^^^ >foo : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >n : NumberVariant @@ -57,7 +57,7 @@ var r3 = foo(1, n); function foo2(x: T, y: U) { return y; } // this is now an error >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >length : T > : ^ >x : T @@ -71,7 +71,7 @@ foo2(1, { length: '' }); >foo2(1, { length: '' }) : { length: number; } > : ^^^^^^^^^^^^^^^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >{ length: '' } : { length: string; } @@ -85,7 +85,7 @@ foo2(1, { length: {} }); >foo2(1, { length: {} }) : { length: number; } > : ^^^^^^^^^^^^^^^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >1 : 1 > : ^ >{ length: {} } : { length: {}; } @@ -99,7 +99,7 @@ foo2([], ['']); >foo2([], ['']) : { length: any[]; } > : ^^^^^^^^^^^^^^^^^^ >foo2 : (x: T, y: U) => U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >[''] : string[] diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.types b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.types index c3a5835dca942..6b0112a8a8ba6 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.types +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.types @@ -30,7 +30,7 @@ var c: C; function foo(x: T, y: U, z: V): V { return z; } >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -46,7 +46,7 @@ foo(1, 2, 3); >foo(1, 2, 3) : 3 > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -58,7 +58,7 @@ foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: '', z: true }); >foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: '', z: true }) : { x: number; y: string; z: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: 1 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -94,7 +94,7 @@ foo(a, b, c); >foo(a, b, c) : C > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -106,7 +106,7 @@ foo(a, b, { foo: 1, bar: '', hm: true }); >foo(a, b, { foo: 1, bar: '', hm: true }) : { foo: number; bar: string; hm: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -130,7 +130,7 @@ foo((x: number, y) => { }, (x) => { }, () => { }); >foo((x: number, y) => { }, (x) => { }, () => { }) : () => void > : ^^^^^^^^^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >(x: number, y) => { } : (x: number, y: any) => void > : ^ ^^ ^^ ^^^^^^^^^^^^^^ >x : number @@ -144,7 +144,7 @@ foo((x: number, y) => { }, (x) => { }, () => { }); function foo2(x: T, y: U, z: V): V { return z; } >foo2 : (x: T, y: U, z: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -159,7 +159,7 @@ foo(a, a, a); >foo(a, a, a) : A > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >a : A @@ -171,7 +171,7 @@ foo(a, b, c); >foo(a, b, c) : C > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -183,7 +183,7 @@ foo(b, b, { foo: 1, bar: '', hm: '' }); >foo(b, b, { foo: 1, bar: '', hm: '' }) : { foo: number; bar: string; hm: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >b : B diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types index 0a88d904a27d6..735123d96028e 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types @@ -30,7 +30,7 @@ var c: C; function foo(x: T, y: U, z: V): V { return z; } >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -46,7 +46,7 @@ foo(1, 2, ''); >foo(1, 2, '') : "" > : ^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -58,7 +58,7 @@ foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: 2, z: true }); >foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: 2, z: true }) : { x: number; y: number; z: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ x: 1 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -94,7 +94,7 @@ foo(a, b, a); >foo(a, b, a) : A > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B @@ -106,7 +106,7 @@ foo(a, { foo: 1, bar: '', hm: true }, b); >foo(a, { foo: 1, bar: '', hm: true }, b) : B > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >{ foo: 1, bar: '', hm: true } : { foo: number; bar: string; hm: true; } @@ -130,7 +130,7 @@ foo((x: number, y: string) => { }, (x, y: boolean) => { }, () => { }); >foo((x: number, y: string) => { }, (x, y: boolean) => { }, () => { }) : () => void > : ^^^^^^^^^^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >(x: number, y: string) => { } : (x: number, y: string) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >x : number @@ -147,7 +147,7 @@ foo((x: number, y: string) => { }, (x, y: boolean) => { }, () => { }); function foo2(x: T, y: U, z: V): V { return z; } >foo2 : (x: T, y: U, z: V) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -162,7 +162,7 @@ foo(b, a, c); >foo(b, a, c) : C > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >a : A @@ -174,7 +174,7 @@ foo(c, c, a); >foo(c, c, a) : A > : ^ >foo : (x: T, y: U, z: V) => V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >c : C > : ^ >c : C diff --git a/tests/baselines/reference/typeParameterAssignability.types b/tests/baselines/reference/typeParameterAssignability.types index 1d913b811aa7f..7c8e23304242c 100644 --- a/tests/baselines/reference/typeParameterAssignability.types +++ b/tests/baselines/reference/typeParameterAssignability.types @@ -5,7 +5,7 @@ function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/typeParameterAssignability2.types b/tests/baselines/reference/typeParameterAssignability2.types index 2522b6d182117..ee7120de39736 100644 --- a/tests/baselines/reference/typeParameterAssignability2.types +++ b/tests/baselines/reference/typeParameterAssignability2.types @@ -5,7 +5,7 @@ function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -30,7 +30,7 @@ function foo(t: T, u: U) { function foo2(t: T, u: U) { >foo2 : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -55,7 +55,7 @@ function foo2(t: T, u: U) { function foo3(t: T, u: U, v: V) { >foo3 : (t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -114,7 +114,7 @@ function foo3(t: T, u: U, v: V) { function foo4(t: T, u: U, v: V) { >foo4 : (t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -232,7 +232,7 @@ function foo4(t: T, u: U, v: V) { // same as foo4 with different type parameter ordering function foo5(t: T, u: U, v: V) { >foo5 : (t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -349,7 +349,7 @@ function foo5(t: T, u: U, v: V) { function foo6(t: T, u: U, v: V) { >foo6 : (t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/typeParameterAssignability3.types b/tests/baselines/reference/typeParameterAssignability3.types index 83e0b824ef619..4366e520df1ef 100644 --- a/tests/baselines/reference/typeParameterAssignability3.types +++ b/tests/baselines/reference/typeParameterAssignability3.types @@ -11,7 +11,7 @@ class Foo { foo: string; } function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/typeParameterAssignmentCompat1.types b/tests/baselines/reference/typeParameterAssignmentCompat1.types index c1eca237d2c3a..c6be33a11f897 100644 --- a/tests/baselines/reference/typeParameterAssignmentCompat1.types +++ b/tests/baselines/reference/typeParameterAssignmentCompat1.types @@ -11,7 +11,7 @@ interface Foo { function f(): Foo { >f : () => Foo -> : ^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^ var x: Foo; >x : Foo @@ -40,7 +40,7 @@ class C { f(): Foo { >f : () => Foo -> : ^ ^^^^^^^ +> : ^^^^^^^^^ var x: Foo; >x : Foo diff --git a/tests/baselines/reference/typeParameterAssignmentWithConstraints.types b/tests/baselines/reference/typeParameterAssignmentWithConstraints.types index 2a9901e65b75e..66035bfafd3bf 100644 --- a/tests/baselines/reference/typeParameterAssignmentWithConstraints.types +++ b/tests/baselines/reference/typeParameterAssignmentWithConstraints.types @@ -3,7 +3,7 @@ === typeParameterAssignmentWithConstraints.ts === function f() { >f : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var a: A; >a : A diff --git a/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.types b/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.types index 2b5e9bf0e62ad..2d190c0467ab7 100644 --- a/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.types +++ b/tests/baselines/reference/typeParameterCompatibilityAccrossDeclarations.types @@ -3,15 +3,15 @@ === typeParameterCompatibilityAccrossDeclarations.ts === var a = { >a : { x: (y: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >{ x: function (y: T): T { return null; }} : { x: (y: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ x: function (y: T): T { return null; } >x : (y: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >function (y: T): T { return null; } : (y: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : T > : ^ } @@ -31,7 +31,7 @@ var a2 = { export interface I { x(y: T): T; >x : (y: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : T > : ^ } @@ -54,17 +54,17 @@ a = i; // error >a = i : I > : ^ >a : { x: (y: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >i : I > : ^ i = a; // error >i = a : { x: (y: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >i : I > : ^ >a : { x: (y: T) => T; } -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ a2 = i2; // no error >a2 = i2 : I2 diff --git a/tests/baselines/reference/typeParameterConstModifiers.types b/tests/baselines/reference/typeParameterConstModifiers.types index 607e0b922227f..9f475b7d514e0 100644 --- a/tests/baselines/reference/typeParameterConstModifiers.types +++ b/tests/baselines/reference/typeParameterConstModifiers.types @@ -3,7 +3,7 @@ === typeParameterConstModifiers.ts === declare function f1(x: T): T; >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -13,7 +13,7 @@ const x11 = f1('a'); >f1('a') : "a" > : ^^^ >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >'a' : "a" > : ^^^ @@ -23,7 +23,7 @@ const x12 = f1(['a', ['b', 'c']]); >f1(['a', ['b', 'c']]) : readonly ["a", readonly ["b", "c"]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >['a', ['b', 'c']] : ["a", ["b", "c"]] > : ^^^^^^^^^^^^^^^^^ >'a' : "a" @@ -41,7 +41,7 @@ const x13 = f1({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); >f1({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }) : { readonly a: 1; readonly b: "c"; readonly d: readonly ["e", 2, true, { readonly f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] } : { a: 1; b: "c"; d: ["e", 2, true, { f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : 1 @@ -71,7 +71,7 @@ const x13 = f1({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); declare function f2(x: T | undefined): T; >f2 : (x: T | undefined) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >x : T | undefined > : ^^^^^^^^^^^^^ @@ -81,7 +81,7 @@ const x21 = f2('a'); >f2('a') : "a" > : ^^^ >f2 : (x: T | undefined) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >'a' : "a" > : ^^^ @@ -91,7 +91,7 @@ const x22 = f2(['a', ['b', 'c']]); >f2(['a', ['b', 'c']]) : readonly ["a", readonly ["b", "c"]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (x: T | undefined) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >['a', ['b', 'c']] : ["a", ["b", "c"]] > : ^^^^^^^^^^^^^^^^^ >'a' : "a" @@ -109,7 +109,7 @@ const x23 = f2({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); >f2({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }) : { readonly a: 1; readonly b: "c"; readonly d: readonly ["e", 2, true, { readonly f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f2 : (x: T | undefined) => T -> : ^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ >{ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] } : { a: 1; b: "c"; d: ["e", 2, true, { f: "g"; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : 1 @@ -139,7 +139,7 @@ const x23 = f2({ a: 1, b: "c", d: ["e", 2, true, { f: "g" }] }); declare function f3(x: T): T[]; >f3 : (x: T) => T[] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -149,7 +149,7 @@ const x31 = f3("hello"); >f3("hello") : "hello"[] > : ^^^^^^^^^ >f3 : (x: T) => T[] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -159,13 +159,13 @@ const x32 = f3("hello"); >f3("hello") : "hello"[] > : ^^^^^^^^^ >f3 : (x: T) => T[] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ declare function f4(obj: [T, T]): T; >f4 : (obj: [T, T]) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : [T, T] > : ^^^^^^ @@ -175,7 +175,7 @@ const x41 = f4([[1, 'x'], [2, 'y']]); >f4([[1, 'x'], [2, 'y']]) : readonly [1, "x"] | readonly [2, "y"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (obj: [T, T]) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[[1, 'x'], [2, 'y']] : [[1, "x"], [2, "y"]] > : ^^^^^^^^^^^^^^^^^^^^ >[1, 'x'] : [1, "x"] @@ -197,7 +197,7 @@ const x42 = f4([{ a: 1, b: 'x' }, { a: 2, b: 'y' }]); >f4([{ a: 1, b: 'x' }, { a: 2, b: 'y' }]) : { readonly a: 1; readonly b: "x"; } | { readonly a: 2; readonly b: "y"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f4 : (obj: [T, T]) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[{ a: 1, b: 'x' }, { a: 2, b: 'y' }] : [{ a: 1; b: "x"; }, { a: 2; b: "y"; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: 1, b: 'x' } : { a: 1; b: "x"; } @@ -223,7 +223,7 @@ const x42 = f4([{ a: 1, b: 'x' }, { a: 2, b: 'y' }]); declare function f5(obj: { x: T, y: T }): T; >f5 : (obj: { x: T; y: T; }) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -237,7 +237,7 @@ const x51 = f5({ x: [1, 'x'], y: [2, 'y'] }); >f5({ x: [1, 'x'], y: [2, 'y'] }) : readonly [1, "x"] | readonly [2, "y"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f5 : (obj: { x: T; y: T; }) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ x: [1, 'x'], y: [2, 'y'] } : { x: [1, "x"]; y: [2, "y"]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : [1, "x"] @@ -263,7 +263,7 @@ const x52 = f5({ x: { a: 1, b: 'x' }, y: { a: 2, b: 'y' } }); >f5({ x: { a: 1, b: 'x' }, y: { a: 2, b: 'y' } }) : { readonly a: 1; readonly b: "x"; } | { readonly a: 2; readonly b: "y"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f5 : (obj: { x: T; y: T; }) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ x: { a: 1, b: 'x' }, y: { a: 2, b: 'y' } } : { x: { a: 1; b: "x"; }; y: { a: 2; b: "y"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : { a: 1; b: "x"; } @@ -293,7 +293,7 @@ const x52 = f5({ x: { a: 1, b: 'x' }, y: { a: 2, b: 'y' } }); declare function f6(...args: T): T; >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -303,7 +303,7 @@ const x61 = f6(1, 'b', { a: 1, b: 'x' }); >f6(1, 'b', { a: 1, b: 'x' }) : readonly [1, "b", { readonly a: 1; readonly b: "x"; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >'b' : "b" @@ -325,7 +325,7 @@ const x62 = f6(...[1, 'b']); >f6(...[1, 'b']) : readonly [number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...[1, 'b'] : string | number > : ^^^^^^^^^^^^^^^ >[1, 'b'] : [number, string] @@ -341,7 +341,7 @@ const x63 = f6(true, ...[1, 'b']); >f6(true, ...[1, 'b']) : readonly [true, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...[1, 'b'] : string | number @@ -359,7 +359,7 @@ const x64 = f6(...([1, 'b'])); >f6(...([1, 'b'])) : readonly [number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >...([1, 'b']) : string | number > : ^^^^^^^^^^^^^^^ >([1, 'b']) : [number, string] @@ -377,7 +377,7 @@ const x65 = f6(true, ...([1, 'b'])); >f6(true, ...([1, 'b'])) : readonly [true, number, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >f6 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >true : true > : ^^^^ >...([1, 'b']) : string | number @@ -401,7 +401,7 @@ class C1 { foo(x: U) { return x; } >foo : (x: U) => U -> : ^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^ >x : U > : ^ >x : U @@ -472,9 +472,9 @@ const C2 = class {} const fx1 = (x: T) => x; >fx1 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -482,9 +482,9 @@ const fx1 = (x: T) => x; const fx2 = (x: T) => x; >fx2 : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -497,7 +497,7 @@ interface I1 { x: T } // Error interface I2 { f(x: T): T; >f : (x: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -552,7 +552,7 @@ type GetPath = function set(obj: T, path: P, value: GetPath) {} >set : (obj: T, path: P, value: GetPath) => void -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >path : P @@ -572,7 +572,7 @@ set(obj, ['a', 'b', 'c'], value); >set(obj, ['a', 'b', 'c'], value) : void > : ^^^^ >set : (obj: T, path: P, value: GetPath) => void -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Obj > : ^^^ >['a', 'b', 'c'] : ["a", "b", "c"] @@ -590,7 +590,7 @@ set(obj, ['a', 'b', 'c'], value); declare function inners(...args: readonly [unknown, ...T, unknown]): T; >inners : (...args: readonly [unknown, ...T, unknown]) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : readonly [unknown, ...T, unknown] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -600,7 +600,7 @@ const test = inners(1,2,3,4,5); >inners(1,2,3,4,5) : [2, 3, 4] > : ^^^^^^^^^ >inners : (...args: readonly [unknown, ...T, unknown]) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -614,7 +614,7 @@ const test = inners(1,2,3,4,5); declare function inners2(args: readonly [unknown, ...T, unknown]): T; >inners2 : (args: readonly [unknown, ...T, unknown]) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : readonly [unknown, ...T, unknown] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -624,7 +624,7 @@ const test2 = inners2([1,2,3,4,5]); >inners2([1,2,3,4,5]) : [2, 3, 4] > : ^^^^^^^^^ >inners2 : (args: readonly [unknown, ...T, unknown]) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[1,2,3,4,5] : [number, 2, 3, 4, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -646,9 +646,9 @@ type NotEmpty> = keyof T extends never ? never : T const thing = >(o: NotEmpty) => o; >thing : >(o: NotEmpty) => NotEmpty -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >>(o: NotEmpty) => o : >(o: NotEmpty) => NotEmpty -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >o : NotEmpty > : ^^^^^^^^^^^ >o : NotEmpty @@ -660,7 +660,7 @@ const t = thing({ foo: '' }); // readonly { foo: "" } >thing({ foo: '' }) : { readonly foo: ""; } > : ^^^^^^^^^^^^^^^^^^^^^ >thing : >(o: NotEmpty) => NotEmpty -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >{ foo: '' } : { foo: ""; } > : ^^^^^^^^^^^^ >foo : "" @@ -674,9 +674,9 @@ type NotEmptyMapped> = keyof T extends never ? nev const thingMapped = >(o: NotEmptyMapped) => o; >thingMapped : >(o: NotEmptyMapped) => NotEmptyMapped -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >>(o: NotEmptyMapped) => o : >(o: NotEmptyMapped) => NotEmptyMapped -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >o : NotEmptyMapped > : ^^^^^^^^^^^^^^^^^ >o : NotEmptyMapped @@ -688,7 +688,7 @@ const tMapped = thingMapped({ foo: '' }); // { foo: "" } >thingMapped({ foo: '' }) : { readonly foo: ""; } > : ^^^^^^^^^^^^^^^^^^^^^ >thingMapped : >(o: NotEmptyMapped) => NotEmptyMapped -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >{ foo: '' } : { foo: ""; } > : ^^^^^^^^^^^^ >foo : "" @@ -700,7 +700,7 @@ const tMapped = thingMapped({ foo: '' }); // { foo: "" } function factory_55033_minimal(cb: (...args: T) => void) { >factory_55033_minimal : (cb: (...args: T) => void) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >cb : (...args: T) => void > : ^^^^ ^^ ^^^^^ >args : T @@ -719,7 +719,7 @@ const test_55033_minimal = factory_55033_minimal((b: string) => {}) >factory_55033_minimal((b: string) => {}) : readonly [b: string] > : ^^^^^^^^^^^^^^^^^^^^ >factory_55033_minimal : (cb: (...args: T) => void) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(b: string) => {} : (b: string) => void > : ^ ^^ ^^^^^^^^^ >b : string @@ -727,7 +727,7 @@ const test_55033_minimal = factory_55033_minimal((b: string) => {}) function factory_55033(cb: (...args: T) => void) { >factory_55033 : (cb: (...args: T) => void) => (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >cb : (...args: T) => void > : ^^^^ ^^ ^^^^^ >args : T @@ -735,9 +735,9 @@ function factory_55033(cb: (...args: T) => v return function call(...args: K): K { >function call(...args: K): K { return {} as K; } : (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >call : (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : K > : ^ @@ -758,7 +758,7 @@ const t1_55033 = factory_55033((a: { test: number }, b: string) => {})( >factory_55033((a: { test: number }, b: string) => {}) : (...args: K) => K > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >factory_55033 : (cb: (...args: T) => void) => (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(a: { test: number }, b: string) => {} : (a: { test: number; }, b: string) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : { test: number; } @@ -790,7 +790,7 @@ const t2_55033 = factory_55033((a: { test: number }, b: string) => {})( >factory_55033((a: { test: number }, b: string) => {}) : (...args: K) => K > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >factory_55033 : (cb: (...args: T) => void) => (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(a: { test: number }, b: string) => {} : (a: { test: number; }, b: string) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : { test: number; } @@ -820,7 +820,7 @@ const t2_55033 = factory_55033((a: { test: number }, b: string) => {})( function factory_55033_2(cb: (...args: T) => void) { >factory_55033_2 : (cb: (...args: T) => void) => (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >cb : (...args: T) => void > : ^^^^ ^^ ^^^^^ >args : T @@ -828,9 +828,9 @@ function factory_55033_2(cb: (...args: T) => void) { return function call(...args: K): K { >function call(...args: K): K { return {} as K; } : (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >call : (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : K > : ^ @@ -851,7 +851,7 @@ const t1_55033_2 = factory_55033_2((a: { test: number }, b: string) => {})( >factory_55033_2((a: { test: number }, b: string) => {}) : (...args: K) => K > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >factory_55033_2 : (cb: (...args: T) => void) => (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(a: { test: number }, b: string) => {} : (a: { test: number; }, b: string) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : { test: number; } @@ -883,7 +883,7 @@ const t2_55033_2 = factory_55033_2((a: { test: number }, b: string) => {})( >factory_55033_2((a: { test: number }, b: string) => {}) : (...args: K) => K > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >factory_55033_2 : (cb: (...args: T) => void) => (...args: K) => K -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(a: { test: number }, b: string) => {} : (a: { test: number; }, b: string) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : { test: number; } @@ -913,7 +913,7 @@ const t2_55033_2 = factory_55033_2((a: { test: number }, b: string) => {})( declare function fn(...args: T): T; >fn : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -923,7 +923,7 @@ const a = fn("a", false); >fn("a", false) : ["a", false] > : ^^^^^^^^^^^^ >fn : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >"a" : "a" > : ^^^ >false : false @@ -933,13 +933,13 @@ const a = fn("a", false); declare function fa1(args: T): T; >fa1 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : T > : ^ declare function fa2(args: T): T; >fa2 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : T > : ^ @@ -947,7 +947,7 @@ fa1(["hello", 42]); >fa1(["hello", 42]) : ["hello", 42] > : ^^^^^^^^^^^^^ >fa1 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >["hello", 42] : ["hello", 42] > : ^^^^^^^^^^^^^ >"hello" : "hello" @@ -959,7 +959,7 @@ fa2(["hello", 42]); >fa2(["hello", 42]) : readonly ["hello", 42] > : ^^^^^^^^^^^^^^^^^^^^^^ >fa2 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >["hello", 42] : ["hello", 42] > : ^^^^^^^^^^^^^ >"hello" : "hello" @@ -969,13 +969,13 @@ fa2(["hello", 42]); declare function fb1(...args: T): T; >fb1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ declare function fb2(...args: T): T; >fb2 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -983,7 +983,7 @@ fb1("hello", 42); >fb1("hello", 42) : ["hello", 42] > : ^^^^^^^^^^^^^ >fb1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ >42 : 42 @@ -993,7 +993,7 @@ fb2("hello", 42); >fb2("hello", 42) : readonly ["hello", 42] > : ^^^^^^^^^^^^^^^^^^^^^^ >fb2 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ >42 : 42 @@ -1001,7 +1001,7 @@ fb2("hello", 42); declare function fc1(f: (...args: T) => void, ...args: T): T; >fc1 : (f: (...args: T) => void, ...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >f : (...args: T) => void > : ^^^^ ^^ ^^^^^ >args : T @@ -1011,7 +1011,7 @@ declare function fc1(f: (...args: T) => void, ...args declare function fc2(f: (...args: T) => void, ...args: T): T; >fc2 : (f: (...args: T) => void, ...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >f : (...args: T) => void > : ^^^^ ^^ ^^^^^ >args : T @@ -1023,7 +1023,7 @@ fc1((a: string, b: number) => {}, "hello", 42); >fc1((a: string, b: number) => {}, "hello", 42) : ["hello", 42] > : ^^^^^^^^^^^^^ >fc1 : (f: (...args: T) => void, ...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(a: string, b: number) => {} : (a: string, b: number) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : string @@ -1039,7 +1039,7 @@ fc2((a: string, b: number) => {}, "hello", 42); >fc2((a: string, b: number) => {}, "hello", 42) : readonly ["hello", 42] > : ^^^^^^^^^^^^^^^^^^^^^^ >fc2 : (f: (...args: T) => void, ...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >(a: string, b: number) => {} : (a: string, b: number) => void > : ^ ^^ ^^ ^^ ^^^^^^^^^ >a : string @@ -1053,19 +1053,19 @@ fc2((a: string, b: number) => {}, "hello", 42); declare function fd1(args: T): T; >fd1 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : T > : ^ declare function fd2(args: T): T; >fd2 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : T > : ^ declare function fd3(args: T): T; >fd3 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >args : T > : ^ @@ -1073,7 +1073,7 @@ fd1(["hello", "world"]); >fd1(["hello", "world"]) : ["hello", "world"] > : ^^^^^^^^^^^^^^^^^^ >fd1 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >["hello", "world"] : ["hello", "world"] > : ^^^^^^^^^^^^^^^^^^ >"hello" : "hello" @@ -1085,7 +1085,7 @@ fd1([1, 2, 3]); >fd1([1, 2, 3]) : [1, 2, 3] > : ^^^^^^^^^ >fd1 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[1, 2, 3] : [1, 2, 3] > : ^^^^^^^^^ >1 : 1 @@ -1099,7 +1099,7 @@ fd2(["hello", "world"]); >fd2(["hello", "world"]) : ["hello", "world"] > : ^^^^^^^^^^^^^^^^^^ >fd2 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >["hello", "world"] : ["hello", "world"] > : ^^^^^^^^^^^^^^^^^^ >"hello" : "hello" @@ -1111,7 +1111,7 @@ fd2([1, 2, 3]); >fd2([1, 2, 3]) : [1, 2, 3] > : ^^^^^^^^^ >fd2 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[1, 2, 3] : [1, 2, 3] > : ^^^^^^^^^ >1 : 1 @@ -1125,7 +1125,7 @@ fd3(["hello", "world"]); >fd3(["hello", "world"]) : readonly ["hello", "world"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fd3 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >["hello", "world"] : ["hello", "world"] > : ^^^^^^^^^^^^^^^^^^ >"hello" : "hello" @@ -1137,7 +1137,7 @@ fd3([1, 2, 3]); >fd3([1, 2, 3]) : readonly [1, 2, 3] > : ^^^^^^^^^^^^^^^^^^ >fd3 : (args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[1, 2, 3] : [1, 2, 3] > : ^^^^^^^^^ >1 : 1 @@ -1149,7 +1149,7 @@ fd3([1, 2, 3]); declare function fn1(...args: T): T; >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >foo : unknown[] > : ^^^^^^^^^ >args : T @@ -1159,7 +1159,7 @@ fn1({ foo: ["hello", 123] }, { foo: [true]}); >fn1({ foo: ["hello", 123] }, { foo: [true]}) : [{ readonly foo: ["hello", 123]; }, { readonly foo: [true]; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fn1 : (...args: T) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >{ foo: ["hello", 123] } : { foo: ["hello", 123]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ >foo : ["hello", 123] diff --git a/tests/baselines/reference/typeParameterConstModifiersReverseMappedTypes.types b/tests/baselines/reference/typeParameterConstModifiersReverseMappedTypes.types index 1ba2a7f3e43a3..e766b553e2b68 100644 --- a/tests/baselines/reference/typeParameterConstModifiersReverseMappedTypes.types +++ b/tests/baselines/reference/typeParameterConstModifiersReverseMappedTypes.types @@ -3,7 +3,7 @@ === typeParameterConstModifiersReverseMappedTypes.ts === declare function test1(obj: { >test1 : (obj: { [K in keyof T]: T[K]; }) => [T, typeof obj] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : { [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -18,7 +18,7 @@ const result1 = test1({ >test1({ prop: "foo", nested: { nestedProp: "bar", },}) : [{ readonly prop: "foo"; readonly nested: { readonly nestedProp: "bar"; }; }, { readonly prop: "foo"; readonly nested: { readonly nestedProp: "bar"; }; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test1 : (obj: { [K in keyof T]: T[K]; }) => [T, typeof obj] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ prop: "foo", nested: { nestedProp: "bar", },} : { prop: "foo"; nested: { nestedProp: "bar"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -45,7 +45,7 @@ const result1 = test1({ declare function test2(obj: { >test2 : (obj: { readonly [K in keyof T]: T[K]; }) => [T, typeof obj] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : { readonly [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -60,7 +60,7 @@ const result2 = test2({ >test2({ prop: "foo", nested: { nestedProp: "bar", },}) : [{ prop: "foo"; nested: { readonly nestedProp: "bar"; }; }, { readonly prop: "foo"; readonly nested: { readonly nestedProp: "bar"; }; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test2 : (obj: { readonly [K in keyof T]: T[K]; }) => [T, typeof obj] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ prop: "foo", nested: { nestedProp: "bar", },} : { prop: "foo"; nested: { nestedProp: "bar"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -87,7 +87,7 @@ const result2 = test2({ declare function test3(obj: { >test3 : (obj: { -readonly [K in keyof T]: T[K]; }) => [T, typeof obj] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >obj : { -readonly [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -102,7 +102,7 @@ const result3 = test3({ >test3({ prop: "foo", nested: { nestedProp: "bar", },}) : [{ readonly prop: "foo"; readonly nested: { readonly nestedProp: "bar"; }; }, { prop: "foo"; nested: { readonly nestedProp: "bar"; }; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test3 : (obj: { -readonly [K in keyof T]: T[K]; }) => [T, typeof obj] -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >{ prop: "foo", nested: { nestedProp: "bar", },} : { prop: "foo"; nested: { nestedProp: "bar"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -129,7 +129,7 @@ const result3 = test3({ declare function test4(arr: { >test4 : (arr: { [K in keyof T]: T[K]; }) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >arr : { [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -142,7 +142,7 @@ const result4 = test4(["1", 2]); >test4(["1", 2]) : readonly ["1", 2] > : ^^^^^^^^^^^^^^^^^ >test4 : (arr: { [K in keyof T]: T[K]; }) => T -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >["1", 2] : ["1", 2] > : ^^^^^^^^ >"1" : "1" @@ -152,7 +152,7 @@ const result4 = test4(["1", 2]); declare function test5( >test5 : (...args: { [K in keyof T]: T[K]; }) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ...args: { >args : { [K in keyof T]: T[K]; } @@ -168,7 +168,7 @@ const result5 = test5({ a: "foo" }); >test5({ a: "foo" }) : readonly [{ readonly a: "foo"; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test5 : (...args: { [K in keyof T]: T[K]; }) => T -> : ^^^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >{ a: "foo" } : { a: "foo"; } > : ^^^^^^^^^^^^^ >a : "foo" diff --git a/tests/baselines/reference/typeParameterConstModifiersWithIntersection.types b/tests/baselines/reference/typeParameterConstModifiersWithIntersection.types index de8a31c740a7e..5441d7633133b 100644 --- a/tests/baselines/reference/typeParameterConstModifiersWithIntersection.types +++ b/tests/baselines/reference/typeParameterConstModifiersWithIntersection.types @@ -14,7 +14,7 @@ interface Config { declare function test< >test : >(config: { produceThing: T1; } & TConfig) => TConfig -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ T1 extends { type: string }, >type : string @@ -33,7 +33,7 @@ const result = test({ >test({ produceThing: {} as { type: "foo"; }, useIt: { type: "foo", }, extra: 10,}) : { readonly produceThing: { type: "foo"; }; readonly useIt: { readonly type: "foo"; }; readonly extra: 10; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : >(config: { produceThing: T1; } & TConfig) => TConfig -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ produceThing: {} as { type: "foo"; }, useIt: { type: "foo", }, extra: 10,} : { produceThing: { type: "foo"; }; useIt: { type: "foo"; }; extra: 10; } > : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types index 586b1e2a1cbb8..2702af7108daf 100644 --- a/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types +++ b/tests/baselines/reference/typeParameterConstrainedToOuterTypeParameter2.types @@ -4,7 +4,7 @@ interface A { foo(x: A>) >foo : (x: A>) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : A> > : ^^^^^^^ } @@ -12,7 +12,7 @@ interface A { interface B { foo(x: B>) >foo : (x: B>) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : B> > : ^^^^^^^ } diff --git a/tests/baselines/reference/typeParameterConstraintInstantiation.types b/tests/baselines/reference/typeParameterConstraintInstantiation.types index a3eb463c5114f..8bdfae3f14dfa 100644 --- a/tests/baselines/reference/typeParameterConstraintInstantiation.types +++ b/tests/baselines/reference/typeParameterConstraintInstantiation.types @@ -6,7 +6,7 @@ interface Mapper { map(f: (item: T) => U): V; >map : (f: (item: T) => U) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >f : (item: T) => U > : ^ ^^ ^^^^^ >item : T diff --git a/tests/baselines/reference/typeParameterConstraints1.types b/tests/baselines/reference/typeParameterConstraints1.types index c58528544828d..66ec3c7406549 100644 --- a/tests/baselines/reference/typeParameterConstraints1.types +++ b/tests/baselines/reference/typeParameterConstraints1.types @@ -3,79 +3,79 @@ === typeParameterConstraints1.ts === function foo1(test: T) { } >foo1 : (test: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo2(test: T) { } >foo2 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo3(test: T) { } >foo3 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo4(test: T) { } // valid >foo4 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo5(test: T) { } // valid >foo5 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo6(test: T) { } >foo6 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo7(test: T) { } // valid >foo7 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo8(test: T) { } >foo8 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo9 (test: T) { } >foo9 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo10 (test: T) { } >foo10 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo11 (test: T) { } >foo11 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo12(test: T) { } >foo12 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ function foo13(test: T) { } >foo13 : (test: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >test : T > : ^ diff --git a/tests/baselines/reference/typeParameterDoesntBlockParameterLookup.types b/tests/baselines/reference/typeParameterDoesntBlockParameterLookup.types index ada1bf818fe42..f54f772d4230c 100644 --- a/tests/baselines/reference/typeParameterDoesntBlockParameterLookup.types +++ b/tests/baselines/reference/typeParameterDoesntBlockParameterLookup.types @@ -3,6 +3,6 @@ === typeParameterDoesntBlockParameterLookup.ts === declare function f(Bar: any): void >f : (Bar: any) => void -> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ >Bar : any diff --git a/tests/baselines/reference/typeParameterEquality.types b/tests/baselines/reference/typeParameterEquality.types index 31ec35375438c..10851b131c6b2 100644 --- a/tests/baselines/reference/typeParameterEquality.types +++ b/tests/baselines/reference/typeParameterEquality.types @@ -7,15 +7,15 @@ class C { get x(): (a: T) => T { return null; } >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ set x(p: (a: U) => U) {} >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ } diff --git a/tests/baselines/reference/typeParameterExplicitlyExtendsAny.types b/tests/baselines/reference/typeParameterExplicitlyExtendsAny.types index 48de5ba5d4613..b089f9107e0c7 100644 --- a/tests/baselines/reference/typeParameterExplicitlyExtendsAny.types +++ b/tests/baselines/reference/typeParameterExplicitlyExtendsAny.types @@ -53,7 +53,7 @@ function fee2() { function f(x: T) { >f : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -111,7 +111,7 @@ class MyClass { public static displayTree1>(tree: T) { >displayTree1 : (tree: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >tree : T > : ^ diff --git a/tests/baselines/reference/typeParameterExtendingUnion1.types b/tests/baselines/reference/typeParameterExtendingUnion1.types index 25de6e9f07a80..fd2c96a6e97ed 100644 --- a/tests/baselines/reference/typeParameterExtendingUnion1.types +++ b/tests/baselines/reference/typeParameterExtendingUnion1.types @@ -40,7 +40,7 @@ function run(a: Animal) { function f(a: T) { >f : (a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/typeParameterExtendingUnion2.types b/tests/baselines/reference/typeParameterExtendingUnion2.types index 907dd149cd838..cdbb693256901 100644 --- a/tests/baselines/reference/typeParameterExtendingUnion2.types +++ b/tests/baselines/reference/typeParameterExtendingUnion2.types @@ -40,7 +40,7 @@ function run(a: Cat | Dog) { function f(a: T) { >f : (a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/typeParameterExtendsPrimitive.types b/tests/baselines/reference/typeParameterExtendsPrimitive.types index 583bf577acdb6..e4b5cef3e1a25 100644 --- a/tests/baselines/reference/typeParameterExtendsPrimitive.types +++ b/tests/baselines/reference/typeParameterExtendsPrimitive.types @@ -44,7 +44,7 @@ type IdMap = { [P in keyof T]: T[P] }; function g(i: IdMap) { >g : (i: IdMap) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >i : IdMap > : ^^^^^^^^ @@ -74,7 +74,7 @@ function g(i: IdMap) { // #17069 function h, K extends string>(array: T[], prop: K): number { >h : , K extends string>(array: T[], prop: K) => number -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >array : T[] > : ^^^ >prop : K diff --git a/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types b/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types index ffd0a747afe7d..696023a3c38b3 100644 --- a/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types +++ b/tests/baselines/reference/typeParameterExtendsUnionConstraintDistributed.types @@ -7,7 +7,7 @@ type A = 1 | 2; function f(a: T): A & T { return a; } // Shouldn't error >f : (a: T) => A & T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >a : T > : ^ >a : T @@ -19,7 +19,7 @@ type B = 2 | 3; function f2(ab: T & U): (A | B) & T & U { return ab; } // Also shouldn't error >f2 : (ab: T & U) => (A | B) & T & U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >ab : T & U > : ^^^^^ >ab : T & U diff --git a/tests/baselines/reference/typeParameterFixingWithConstraints.types b/tests/baselines/reference/typeParameterFixingWithConstraints.types index bfb18b3b0a6ee..7176cd35970a6 100644 --- a/tests/baselines/reference/typeParameterFixingWithConstraints.types +++ b/tests/baselines/reference/typeParameterFixingWithConstraints.types @@ -10,7 +10,7 @@ interface IBar { interface IFoo { foo(bar: TBar, bar1: (bar: TBar) => TBar, bar2: (bar: TBar) => TBar): TBar; >foo : (bar: TBar, bar1: (bar: TBar) => TBar, bar2: (bar: TBar) => TBar) => TBar -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >bar : TBar > : ^^^^ >bar1 : (bar: TBar) => TBar @@ -31,11 +31,11 @@ foo.foo({ bar: null }, bar => null, bar => null); >foo.foo({ bar: null }, bar => null, bar => null) : { bar: any; } > : ^^^^^^^^^^^^^ >foo.foo : (bar: TBar, bar1: (bar: TBar) => TBar, bar2: (bar: TBar) => TBar) => TBar -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >foo : IFoo > : ^^^^ >foo : (bar: TBar, bar1: (bar: TBar) => TBar, bar2: (bar: TBar) => TBar) => TBar -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >{ bar: null } : { bar: null; } > : ^^^^^^^^^^^^^^ >bar : null diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments.types b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments.types index 8c0df2bef7494..2e874e8afb138 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments.types +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments.types @@ -3,7 +3,7 @@ === typeParameterFixingWithContextSensitiveArguments.ts === function f(y: T, f: (x: T) => U, x: T): [T, U] { return [y, f(x)]; } >f : (y: T, f: (x: T) => U, x: T) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >y : T > : ^ >f : (x: T) => U @@ -42,7 +42,7 @@ var d = f(b, x => x.a, a); // type [A, A] >f(b, x => x.a, a) : [A, A] > : ^^^^^^ >f : (y: T, f: (x: T) => U, x: T) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >x => x.a : (x: A) => A @@ -64,7 +64,7 @@ var d2 = f(b, x => x.a, null); // type [B, A] >f(b, x => x.a, null) : [B, A] > : ^^^^^^ >f : (y: T, f: (x: T) => U, x: T) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >x => x.a : (x: B) => A @@ -84,7 +84,7 @@ var d3 = f(b, x => x.b, null); // type [B, any] >f(b, x => x.b, null) : [B, any] > : ^^^^^^^^ >f : (y: T, f: (x: T) => U, x: T) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >x => x.b : (x: B) => any diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.types b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.types index 42f1ca3d701a8..4cf83071ff4a6 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.types +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments2.types @@ -3,7 +3,7 @@ === typeParameterFixingWithContextSensitiveArguments2.ts === function f(y: T, y1: U, p: (z: U) => T, p1: (x: T) => U): [T, U] { return [y, p1(y)]; } >f : (y: T, y1: U, p: (z: U) => T, p1: (x: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >y : T > : ^ >y1 : U @@ -47,7 +47,7 @@ var d = f(a, b, x => x, x => x); // A => A not assignable to A => B >f(a, b, x => x, x => x) : [A, B] > : ^^^^^^ >f : (y: T, y1: U, p: (z: U) => T, p1: (x: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.types b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.types index 4e538eec3f2f2..8838d3d057f26 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.types +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments3.types @@ -3,7 +3,7 @@ === typeParameterFixingWithContextSensitiveArguments3.ts === function f(t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U): [T, U] { return [t1, pf2(t1)]; } >f : (t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t1 : T > : ^ >u1 : U @@ -47,7 +47,7 @@ var d = f(a, b, u2 => u2.b, t2 => t2); >f(a, b, u2 => u2.b, t2 => t2) : [A, B] > : ^^^^^^ >f : (t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments4.types b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments4.types index 552a5f4c5603f..0a994edf40464 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments4.types +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments4.types @@ -3,7 +3,7 @@ === typeParameterFixingWithContextSensitiveArguments4.ts === function f(y: T, y1: U, p: (z: U) => T, p1: (x: T) => U): [T, U] { return [y, p1(y)]; } >f : (y: T, y1: U, p: (z: U) => T, p1: (x: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >y : T > : ^ >y1 : U @@ -46,7 +46,7 @@ var d = f(a, b, x => x, x => x); // Type [A, B] >f(a, b, x => x, x => x) : [A, B] > : ^^^^^^ >f : (y: T, y1: U, p: (z: U) => T, p1: (x: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B diff --git a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments5.types b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments5.types index ada4acdbcd0d9..4a73d6aa46d15 100644 --- a/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments5.types +++ b/tests/baselines/reference/typeParameterFixingWithContextSensitiveArguments5.types @@ -3,7 +3,7 @@ === typeParameterFixingWithContextSensitiveArguments5.ts === function f(t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U): [T, U] { return [t1, pf2(t1)]; } >f : (t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >t1 : T > : ^ >u1 : U @@ -46,7 +46,7 @@ var d = f(a, b, u2 => u2.b, t2 => t2); >f(a, b, u2 => u2.b, t2 => t2) : [any, B] > : ^^^^^^^^ >f : (t1: T, u1: U, pf1: (u2: U) => T, pf2: (t2: T) => U) => [T, U] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >b : B diff --git a/tests/baselines/reference/typeParameterHasSelfAsConstraint.types b/tests/baselines/reference/typeParameterHasSelfAsConstraint.types index 9b259e37bfc1d..bc26047ef8566 100644 --- a/tests/baselines/reference/typeParameterHasSelfAsConstraint.types +++ b/tests/baselines/reference/typeParameterHasSelfAsConstraint.types @@ -3,7 +3,7 @@ === typeParameterHasSelfAsConstraint.ts === function foo(x: T): number { >foo : (x: T) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.types b/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.types index 8b04e72a28b43..cf3ba9f54f4be 100644 --- a/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.types +++ b/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.types @@ -52,5 +52,5 @@ type Foo = [T] extends [number] ? {} : {}; function foo>() {} >foo : >() => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeParameterLeak.types b/tests/baselines/reference/typeParameterLeak.types index 23b5264b75cc5..b70193d68df60 100644 --- a/tests/baselines/reference/typeParameterLeak.types +++ b/tests/baselines/reference/typeParameterLeak.types @@ -33,7 +33,7 @@ interface BoxFactory { declare const f: BoxFactoryFactory; >f : ((arg: { x: string; }) => BoxFactory> | undefined) | ((arg: { y: string; }) => BoxFactory> | undefined) -> : ^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^ ^ +> : ^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^ ^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^ ^^^ ^ const b = f({ x: "", y: "" })?.getBox(); >b : Box<{ x: string; }> | Box<{ y: string; }> | undefined @@ -41,11 +41,11 @@ const b = f({ x: "", y: "" })?.getBox(); >f({ x: "", y: "" })?.getBox() : Box<{ x: string; }> | Box<{ y: string; }> | undefined > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ >f({ x: "", y: "" })?.getBox : (() => Box<{ y: string; }>) | (() => Box<{ x: string; }>) | undefined -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^ >f({ x: "", y: "" }) : BoxFactory> | BoxFactory> | undefined > : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ >f : ((arg: { x: string; }) => BoxFactory> | undefined) | ((arg: { y: string; }) => BoxFactory> | undefined) -> : ^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^^ ^ +> : ^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^ ^^^ ^^^^^^ ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^ ^^^ ^ >{ x: "", y: "" } : { x: string; y: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : string @@ -57,7 +57,7 @@ const b = f({ x: "", y: "" })?.getBox(); >"" : "" > : ^^ >getBox : (() => Box<{ y: string; }>) | (() => Box<{ x: string; }>) | undefined -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^^^^^^^^^^^ if (b) { >b : Box<{ x: string; }> | Box<{ y: string; }> | undefined diff --git a/tests/baselines/reference/typeParameterOrderReversal.types b/tests/baselines/reference/typeParameterOrderReversal.types index 5b9edd32c97c0..6f902191d73fe 100644 --- a/tests/baselines/reference/typeParameterOrderReversal.types +++ b/tests/baselines/reference/typeParameterOrderReversal.types @@ -10,13 +10,13 @@ interface X { // Only difference here is order of type parameters function uFirst, T>(x: U) { } >uFirst : , T>(x: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >x : U > : ^ function tFirst>(x: U) { } >tFirst : >(x: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : U > : ^ @@ -29,7 +29,7 @@ uFirst(z); >uFirst(z) : void > : ^^^^ >uFirst : , T>(x: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >z : X > : ^^^^^^^^^ @@ -37,7 +37,7 @@ tFirst(z); >tFirst(z) : void > : ^^^^ >tFirst : >(x: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >z : X > : ^^^^^^^^^ diff --git a/tests/baselines/reference/typeParameterUsedAsConstraint.types b/tests/baselines/reference/typeParameterUsedAsConstraint.types index 35b67664017f3..7b18320d4e15a 100644 --- a/tests/baselines/reference/typeParameterUsedAsConstraint.types +++ b/tests/baselines/reference/typeParameterUsedAsConstraint.types @@ -34,85 +34,85 @@ interface I6 { } function f() { } >f : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ function f2() { } >f2 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^ function f3() { } >f3 : () => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ function f4() { } >f4 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ function f5() { } >f5 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ function f6() { } >f6 : () => void -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ var e = () => { } >e : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ >() => { } : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var e2 = () => { } >e2 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >() => { } : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^ var e3 = () => { } >e3 : () => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ >() => { } : () => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ var e4 = () => { } >e4 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ >() => { } : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ var e5 = () => { } >e5 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ >() => { } : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ var e6 = () => { } >e6 : () => void -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ >() => { } : () => void -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ var a: { (): void } >a : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ var a2: { (): void } >a2 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^ var a3: { (): void } >a3 : () => void -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ var a4: { (): void } >a4 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ var a5: { (): void } >a5 : () => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ var a6: { (): void } >a6 : () => void -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ diff --git a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint.types b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint.types index 3f5806284aa80..0dc2bb2fe896f 100644 --- a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint.types +++ b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint.types @@ -5,7 +5,7 @@ function foo(x: T, y: U): T { >foo : (x: T, y: U) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -26,7 +26,7 @@ function foo(x: T, y: U): T { function foo2(x: T, y: U): T { >foo2 : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -47,9 +47,9 @@ function foo2(x: T, y: U): T { var f = function (x: T, y: U): T { >f : (x: T, y: U) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >function (x: T, y: U): T { x = y; return y;} : (x: T, y: U) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -70,9 +70,9 @@ var f = function (x: T, y: U): T { var f2 = function (x: T, y: U): T { >f2 : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >function (x: T, y: U): T { x = y; return y;} : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -93,9 +93,9 @@ var f2 = function (x: T, y: U): T { var f3 = (x: T, y: U): T => { >f3 : (x: T, y: U) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(x: T, y: U): T => { x = y; return y;} : (x: T, y: U) => T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -116,9 +116,9 @@ var f3 = (x: T, y: U): T => { var f4 = (x: T, y: U): T => { >f4 : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >(x: T, y: U): T => { x = y; return y;} : (x: T, y: U) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint2.types b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint2.types index 948c4867d1078..395d50dbf2ef1 100644 --- a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint2.types +++ b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint2.types @@ -6,7 +6,7 @@ function foo(x: T, y: U) { >foo : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -18,7 +18,7 @@ function foo(x: T, y: U) { function baz(a: X, b: Y): T { >baz : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -41,7 +41,7 @@ function foo(x: T, y: U) { function foo2(x: T, y: U) { >foo2 : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -53,7 +53,7 @@ function foo2(x: T, y: U) { function baz(a: X, b: Y): T { >baz : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -76,9 +76,9 @@ function foo2(x: T, y: U) { var f = function (x: T, y: U) { >f : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >function (x: T, y: U) { function bar() { var g = function (a: X, b: Y): T { x = y; return y; } }} : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -90,9 +90,9 @@ var f = function (x: T, y: U) { var g = function (a: X, b: Y): T { >g : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >function (a: X, b: Y): T { x = y; return y; } : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -115,9 +115,9 @@ var f = function (x: T, y: U) { var f2 = function (x: T, y: U) { >f2 : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >function (x: T, y: U) { function bar() { var g = function baz(a: X, b: Y): T { x = y; return y; } }} : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -129,11 +129,11 @@ var f2 = function (x: T, y: U) { var g = function baz(a: X, b: Y): T { >g : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >function baz(a: X, b: Y): T { x = y; return y; } : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >baz : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -156,9 +156,9 @@ var f2 = function (x: T, y: U) { var f3 = (x: T, y: U) => { >f3 : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: T, y: U) => { function bar() { var g = (a: X, b: Y): T => { x = y; return y; } }} : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -170,9 +170,9 @@ var f3 = (x: T, y: U) => { var g = (a: X, b: Y): T => { >g : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(a: X, b: Y): T => { x = y; return y; } : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -195,9 +195,9 @@ var f3 = (x: T, y: U) => { var f4 = (x: T, y: U) => { >f4 : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: T, y: U) => { function bar() { var g = (a: X, b: Y): T => { x = y; return y; } }} : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -209,9 +209,9 @@ var f4 = (x: T, y: U) => { var g = (a: X, b: Y): T => { >g : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(a: X, b: Y): T => { x = y; return y; } : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y diff --git a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint3.types b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint3.types index 231984f659baf..710d2b0e30c8a 100644 --- a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint3.types +++ b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint3.types @@ -39,7 +39,7 @@ interface I { foo(x: W): T; >foo : (x: W) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : W > : ^ } @@ -59,7 +59,7 @@ interface I2 { foo(x: W): T; >foo : (x: W) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : W > : ^ } diff --git a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint4.types b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint4.types index bec452bc8e20b..9b3a42a4d4de8 100644 --- a/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint4.types +++ b/tests/baselines/reference/typeParameterUsedAsTypeParameterConstraint4.types @@ -14,7 +14,7 @@ class C { foo(x: W): T { >foo : (x: W) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : W > : ^ @@ -43,14 +43,14 @@ interface I { foo(x: W): T; >foo : (x: W) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : W > : ^ } function foo(x: T, y: U): V { // error >foo : (x: T, y: U) => V -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -62,7 +62,7 @@ function foo(x: T, y: U): V { // error function baz(a: X, b: Y): T { >baz : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -85,7 +85,7 @@ function foo(x: T, y: U): V { // error function foo2(x: T, y: U): W { // error >foo2 : (x: T, y: U) => W -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -97,7 +97,7 @@ function foo2(x: T, y: U): W { // error function baz(a: X, b: Y): T { >baz : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -120,9 +120,9 @@ function foo2(x: T, y: U): W { // error var f3 = (x: T, y: U) => { >f3 : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: T, y: U) => { function bar(r: X, s: Y) { // error var g = (a: X, b: Y): T => { x = y; return y; } }} : (x: T, y: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -138,9 +138,9 @@ var f3 = (x: T, y: U) => { var g = (a: X, b: Y): T => { >g : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(a: X, b: Y): T => { x = y; return y; } : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y @@ -163,9 +163,9 @@ var f3 = (x: T, y: U) => { var f4 = (x: V, y: X) => { // error >f4 : (x: V, y: X) => void -> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >(x: V, y: X) => { // error function bar() { var g = (a: X, b: Y): T => { x = y; return y; } }} : (x: V, y: X) => void -> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : V > : ^ >y : X @@ -177,9 +177,9 @@ var f4 = (x: V, y: X) => { // error var g = (a: X, b: Y): T => { >g : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(a: X, b: Y): T => { x = y; return y; } : (a: X, b: Y) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : X > : ^ >b : Y diff --git a/tests/baselines/reference/typeParametersAndParametersInComputedNames.types b/tests/baselines/reference/typeParametersAndParametersInComputedNames.types index 2dbb4e038ae39..dd8e24af78fd0 100644 --- a/tests/baselines/reference/typeParametersAndParametersInComputedNames.types +++ b/tests/baselines/reference/typeParametersAndParametersInComputedNames.types @@ -3,7 +3,7 @@ === typeParametersAndParametersInComputedNames.ts === function foo(a: T) : string { >foo : (a: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ @@ -18,11 +18,11 @@ class A { [foo(a)](a: T) { >[foo(a)] : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >foo(a) : string > : ^^^^^^ >foo : (a: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : any > : ^^^ >a : T diff --git a/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types b/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types index b897ad71656bb..f6bc78ec907dc 100644 --- a/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types +++ b/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types @@ -5,43 +5,43 @@ function foo1(x: T); >foo1 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function foo1(x: T); // no error, different declaration for each T >foo1 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function foo1(x: T) { } >foo1 : { (x: T_1): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function foo2(x: T); >foo2 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function foo2(x: T); // no error, different declaration for each T >foo2 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^^^^^^ ^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function foo2(x: T) { } >foo2 : { (x: T_1): any; (x: T_1): any; } -> : ^^^ ^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function foo3(x: T, y: U) { >foo3 : (x: T, y: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -67,19 +67,19 @@ function foo3(x: T, y: U) { function inner2(x: T); >inner2 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function inner2(x: T); // no error, different T >inner2 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function inner2(x: any) { } >inner2 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : any } @@ -107,7 +107,7 @@ class C { foo2(a: T, x: U); >foo2 : { (a: T, x: U): any; (a: T, x: U_1): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -115,7 +115,7 @@ class C { foo2(a: T, x: U); // no error, different declaration for each U >foo2 : { (a: T, x: U_1): any; (a: T, x: U): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -123,7 +123,7 @@ class C { foo2(a: T, x: U) { } >foo2 : { (a: T, x: U_1): any; (a: T, x: U_1): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -131,37 +131,37 @@ class C { foo3(x: T); >foo3 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo3(x: T); // no error, different declaration for each T >foo3 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo3(x: T) { } >foo3 : { (x: T_1): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo4(x: T); >foo4 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ foo4(x: T); // no error, different declaration for each T >foo4 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ foo4(x: T) { } >foo4 : { (x: T_1): any; (x: T_1): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ } @@ -190,7 +190,7 @@ class C2 { foo2(a: T, x: U); >foo2 : { (a: T, x: U): any; (a: T, x: U_1): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -198,7 +198,7 @@ class C2 { foo2(a: T, x: U); // no error, different declaration for each U >foo2 : { (a: T, x: U_1): any; (a: T, x: U): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -206,7 +206,7 @@ class C2 { foo2(a: T, x: U) { } >foo2 : { (a: T, x: U_1): any; (a: T, x: U_1): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -214,19 +214,19 @@ class C2 { foo3(x: T); >foo3 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo3(x: T); // no error, different declaration for each T >foo3 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo3(x: T) { } >foo3 : { (x: T_1): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ } @@ -246,7 +246,7 @@ interface I { foo2(a: T, x: U); >foo2 : { (a: T, x: U): any; (a: T, x: U_1): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -254,7 +254,7 @@ interface I { foo2(a: T, x: U); // no error, different declaration for each U >foo2 : { (a: T, x: U_1): any; (a: T, x: U): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -262,25 +262,25 @@ interface I { foo3(x: T); >foo3 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo3(x: T); // no error, different declaration for each T >foo3 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo4(x: T); >foo4 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ foo4(x: T); // no error, different declaration for each T >foo4 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ } @@ -300,7 +300,7 @@ interface I2 { foo2(a: T, x: U); >foo2 : { (a: T, x: U): any; (a: T, x: U_1): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -308,7 +308,7 @@ interface I2 { foo2(a: T, x: U); // no error, different declaration for each U >foo2 : { (a: T, x: U_1): any; (a: T, x: U): any; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >x : U @@ -316,13 +316,13 @@ interface I2 { foo3(x: T); >foo3 : { (x: T): any; (x: T_1): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ foo3(x: T); // no error, different declaration for each T >foo3 : { (x: T_1): any; (x: T): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/typeParametersAvailableInNestedScope.types b/tests/baselines/reference/typeParametersAvailableInNestedScope.types index abc76576e33c0..2f1a153d9b255 100644 --- a/tests/baselines/reference/typeParametersAvailableInNestedScope.types +++ b/tests/baselines/reference/typeParametersAvailableInNestedScope.types @@ -11,9 +11,9 @@ class C { x = (a: U) => { >x : (a: U) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(a: U) => { var y: T; return y; } : (a: U) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : U > : ^ @@ -32,7 +32,7 @@ class C { function temp(a: U) { >temp : (a: U) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : U > : ^ @@ -48,7 +48,7 @@ class C { >temp(null) : T > : ^ >temp : (a: U) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >null : T > : ^ } diff --git a/tests/baselines/reference/typeParametersAvailableInNestedScope2.types b/tests/baselines/reference/typeParametersAvailableInNestedScope2.types index e2c733afe2d2b..fc4daddf932b6 100644 --- a/tests/baselines/reference/typeParametersAvailableInNestedScope2.types +++ b/tests/baselines/reference/typeParametersAvailableInNestedScope2.types @@ -3,7 +3,7 @@ === typeParametersAvailableInNestedScope2.ts === function foo(x: T, y: U) { >foo : (x: T, y: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -11,13 +11,13 @@ function foo(x: T, y: U) { function bar(z: V) { >bar : (z: V) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >z : V > : ^ function baz(a: W) { >baz : (a: W) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : W > : ^ diff --git a/tests/baselines/reference/typeParametersAvailableInNestedScope3.types b/tests/baselines/reference/typeParametersAvailableInNestedScope3.types index 91fb66dbb485f..cdc37b1e2f313 100644 --- a/tests/baselines/reference/typeParametersAvailableInNestedScope3.types +++ b/tests/baselines/reference/typeParametersAvailableInNestedScope3.types @@ -3,13 +3,13 @@ === typeParametersAvailableInNestedScope3.ts === function foo(v: T) { >foo : (v: T) => { a: (a: T_1) => T_1; b: () => T; c: (v: T_1) => { a: (a: T_2) => T_2; b: () => T_1; }; } -> : ^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ >v : T > : ^ function a(a: T) { return a; } >a : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : T > : ^ >a : T @@ -23,13 +23,13 @@ function foo(v: T) { function c(v: T) { >c : (v: T) => { a: (a: T_1) => T_1; b: () => T; } -> : ^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^ >v : T > : ^ function a(a: T) { return a; } >a : (a: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >a : T > : ^ >a : T @@ -43,21 +43,21 @@ function foo(v: T) { return { a, b }; >{ a, b } : { a: (a: T_1) => T_1; b: () => T; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^ >a : (a: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : () => T > : ^^^^^^ } return { a, b, c }; >{ a, b, c } : { a: (a: T_1) => T_1; b: () => T; c: (v: T_1) => { a: (a: T_2) => T_2; b: () => T_1; }; } -> : ^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^ >a : (a: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >b : () => T > : ^^^^^^ >c : (v: T_1) => { a: (a: T_2) => T_2; b: () => T_1; } -> : ^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^ } diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual.types b/tests/baselines/reference/typeParametersShouldNotBeEqual.types index 72d54644670df..33e7d03764369 100644 --- a/tests/baselines/reference/typeParametersShouldNotBeEqual.types +++ b/tests/baselines/reference/typeParametersShouldNotBeEqual.types @@ -3,7 +3,7 @@ === typeParametersShouldNotBeEqual.ts === function ff(x: T, y: U) { >ff : (x: T, y: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual2.types b/tests/baselines/reference/typeParametersShouldNotBeEqual2.types index da7c03932120f..91b987cb17fac 100644 --- a/tests/baselines/reference/typeParametersShouldNotBeEqual2.types +++ b/tests/baselines/reference/typeParametersShouldNotBeEqual2.types @@ -3,7 +3,7 @@ === typeParametersShouldNotBeEqual2.ts === function ff(x: T, y: U, z: V) { >ff : (x: T, y: U, z: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual3.types b/tests/baselines/reference/typeParametersShouldNotBeEqual3.types index 7d9075ec04813..1c4f4a0de2dcc 100644 --- a/tests/baselines/reference/typeParametersShouldNotBeEqual3.types +++ b/tests/baselines/reference/typeParametersShouldNotBeEqual3.types @@ -3,7 +3,7 @@ === typeParametersShouldNotBeEqual3.ts === function ff(x: T, y: U) { >ff : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/typePredicateFreshLiteralWidening.types b/tests/baselines/reference/typePredicateFreshLiteralWidening.types index ca41e15ec3ec5..9d5536526d868 100644 --- a/tests/baselines/reference/typePredicateFreshLiteralWidening.types +++ b/tests/baselines/reference/typePredicateFreshLiteralWidening.types @@ -14,15 +14,15 @@ type Narrow = (A extends Narrowable ? A : never) | ({ const satisfies = >satisfies : () => (narrow: Narrow) => Narrow -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ () => >() => (narrow: Narrow) => narrow : () => (narrow: Narrow) => Narrow -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ (narrow: Narrow) => >(narrow: Narrow) => narrow : (narrow: Narrow) => Narrow -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >narrow : Narrow > : ^^^^^^^^^^^^^^^ @@ -34,9 +34,9 @@ const satisfies = const isNotNull = (value: T | null): value is T => value !== null; >isNotNull : (value: T | null) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(value: T | null): value is T => value !== null : (value: T | null) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T | null > : ^^^^^^^^ >value !== null : boolean @@ -58,7 +58,7 @@ const item1 = satisfies()({ value: "1" }); >satisfies() : (narrow: Narrow) => Narrow > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >satisfies : () => (narrow: Narrow) => Narrow -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >{ value: "1" } : { value: "1"; } > : ^^^^^^^^^^^^^^^ >value : "1" @@ -74,7 +74,7 @@ const item2 = satisfies()({ value: "2" }); >satisfies() : (narrow: Narrow) => Narrow > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >satisfies : () => (narrow: Narrow) => Narrow -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >{ value: "2" } : { value: "2"; } > : ^^^^^^^^^^^^^^^ >value : "2" @@ -90,7 +90,7 @@ const item3 = satisfies()({ value: null }); >satisfies() : (narrow: Narrow) => Narrow > : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >satisfies : () => (narrow: Narrow) => Narrow -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >{ value: null } : { value: null; } > : ^^^^^^^^^^^^^^^^ >value : null @@ -112,13 +112,13 @@ const filteredValues2 = values2.filter(isNotNull); >values2.filter(isNotNull) : ("1" | "2")[] > : ^^^^^^^^^^^^^ >values2.filter : { (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => unknown, thisArg?: any): ("1" | "2" | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^^ >values2 : ("1" | "2" | null)[] > : ^^^^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => unknown, thisArg?: any): ("1" | "2" | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^^ >isNotNull : (value: T | null) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ const values1 = [item1, item2, item3].map(item => item.value); >values1 : ("1" | "2" | null)[] @@ -154,11 +154,11 @@ const filteredValues1 = values1.filter(isNotNull); >values1.filter(isNotNull) : ("1" | "2")[] > : ^^^^^^^^^^^^^ >values1.filter : { (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => unknown, thisArg?: any): ("1" | "2" | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^^ >values1 : ("1" | "2" | null)[] > : ^^^^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => value is S, thisArg?: any): S[]; (predicate: (value: "1" | "2" | null, index: number, array: ("1" | "2" | null)[]) => unknown, thisArg?: any): ("1" | "2" | null)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^^ >isNotNull : (value: T | null) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/typePredicateStructuralMatch.types b/tests/baselines/reference/typePredicateStructuralMatch.types index b39cb915cb3a3..3a7bb7b0ba12b 100644 --- a/tests/baselines/reference/typePredicateStructuralMatch.types +++ b/tests/baselines/reference/typePredicateStructuralMatch.types @@ -55,7 +55,7 @@ type Results = Result[]; function isResponseInData(value: T | { data: T}): value is { data: T } { >isResponseInData : (value: T | { data: T; }) => value is { data: T; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T | { data: T; } > : ^^^^^^^^^^^^ ^^^ >data : T @@ -90,7 +90,7 @@ function getResults1(value: Results | { data: Results }): Results { >isResponseInData(value) : boolean > : ^^^^^^^ >isResponseInData : (value: T | { data: T; }) => value is { data: T; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Results | { data: Results; } > : ^^^^^^^^^^^^^^^^^^ ^^^ >value.data : Results @@ -105,7 +105,7 @@ function getResults1(value: Results | { data: Results }): Results { function isPlainResponse(value: T | { data: T}): value is T { >isPlainResponse : (value: T | { data: T; }) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T | { data: T; } > : ^^^^^^^^^^^^ ^^^ >data : T @@ -140,7 +140,7 @@ function getResults2(value: Results | { data: Results }): Results { >isPlainResponse(value) : boolean > : ^^^^^^^ >isPlainResponse : (value: T | { data: T; }) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Results | { data: Results; } > : ^^^^^^^^^^^^^^^^^^ ^^^ >value : Results diff --git a/tests/baselines/reference/typePredicateTopLevelTypeParameter.types b/tests/baselines/reference/typePredicateTopLevelTypeParameter.types index f991272ff56b1..fecb8ee70d747 100644 --- a/tests/baselines/reference/typePredicateTopLevelTypeParameter.types +++ b/tests/baselines/reference/typePredicateTopLevelTypeParameter.types @@ -52,7 +52,7 @@ const admins = ['Mike', 'Joe'].map(e => getPermissions(e)); function isDefined(a: T | undefined): a is T { >isDefined : (a: T | undefined) => a is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T | undefined > : ^^^^^^^^^^^^^ @@ -71,11 +71,11 @@ const foundAdmins = admins.filter(isDefined); // "admin"[] >admins.filter(isDefined) : "admin"[] > : ^^^^^^^^^ >admins.filter : { (predicate: (value: "admin" | undefined, index: number, array: ("admin" | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: "admin" | undefined, index: number, array: ("admin" | undefined)[]) => unknown, thisArg?: any): ("admin" | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >admins : ("admin" | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^^ >filter : { (predicate: (value: "admin" | undefined, index: number, array: ("admin" | undefined)[]) => value is S, thisArg?: any): S[]; (predicate: (value: "admin" | undefined, index: number, array: ("admin" | undefined)[]) => unknown, thisArg?: any): ("admin" | undefined)[]; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^ ^^^^^^^^^^ ^^^ >isDefined : (a: T | undefined) => a is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/typePredicatesCanNarrowByDiscriminant.types b/tests/baselines/reference/typePredicatesCanNarrowByDiscriminant.types index f88113a869107..580aaa2ad6c5d 100644 --- a/tests/baselines/reference/typePredicatesCanNarrowByDiscriminant.types +++ b/tests/baselines/reference/typePredicatesCanNarrowByDiscriminant.types @@ -14,7 +14,7 @@ declare const fruit: { kind: 'apple'} | { kind: 'banana' } | { kind: 'cherry' } declare function isOneOf(item: T, array: readonly U[]): item is U >isOneOf : (item: T, array: readonly U[]) => item is U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >item : T > : ^ >array : readonly U[] @@ -24,7 +24,7 @@ if (isOneOf(fruit.kind, ['apple', 'banana'] as const)) { >isOneOf(fruit.kind, ['apple', 'banana'] as const) : boolean > : ^^^^^^^ >isOneOf : (item: T, array: readonly U[]) => item is U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >fruit.kind : "apple" | "banana" | "cherry" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fruit : { kind: "apple"; } | { kind: "banana"; } | { kind: "cherry"; } @@ -77,7 +77,7 @@ if (isOneOf(kind, ['apple', 'banana'] as const)) { >isOneOf(kind, ['apple', 'banana'] as const) : boolean > : ^^^^^^^ >isOneOf : (item: T, array: readonly U[]) => item is U -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >kind : "apple" | "banana" | "cherry" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >['apple', 'banana'] as const : readonly ["apple", "banana"] diff --git a/tests/baselines/reference/typePredicatesInUnion3.types b/tests/baselines/reference/typePredicatesInUnion3.types index 649515ad8ad25..3d7c71963deec 100644 --- a/tests/baselines/reference/typePredicatesInUnion3.types +++ b/tests/baselines/reference/typePredicatesInUnion3.types @@ -170,7 +170,7 @@ class Type2 { function assertType(_val: T) { >assertType : (_val: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >_val : T > : ^ } @@ -193,7 +193,7 @@ if (val.predicate()) { >assertType(val.attribute) : void > : ^^^^ >assertType : (_val: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >val.attribute : number | null > : ^^^^^^^^^^^^^ >val : Type1 | Type2 diff --git a/tests/baselines/reference/typePredicatesOptionalChaining1.types b/tests/baselines/reference/typePredicatesOptionalChaining1.types index fbaaef7607fbe..d35e6b7cb3d46 100644 --- a/tests/baselines/reference/typePredicatesOptionalChaining1.types +++ b/tests/baselines/reference/typePredicatesOptionalChaining1.types @@ -31,7 +31,7 @@ const x: X = { // type guard function isNotNull(x: A): x is NonNullable { >isNotNull : (x: A) => x is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : A > : ^ @@ -85,7 +85,7 @@ isNotNull(x?.y?.z) ? title(x.y.z) : null; // should not error >isNotNull(x?.y?.z) : boolean > : ^^^^^^^ >isNotNull : (x: A) => x is NonNullable -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x?.y?.z : string | undefined > : ^^^^^^^^^^^^^^^^^^ >x?.y : { z?: string; } | undefined diff --git a/tests/baselines/reference/typeSatisfaction_errorLocations1.types b/tests/baselines/reference/typeSatisfaction_errorLocations1.types index 4a9abd2f9683c..4c3c0f9b3b4d0 100644 --- a/tests/baselines/reference/typeSatisfaction_errorLocations1.types +++ b/tests/baselines/reference/typeSatisfaction_errorLocations1.types @@ -105,7 +105,7 @@ new Cls1(obj1 satisfies unknown); function fn2(f: (...args: T) => void) { >fn2 : (f: (...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : true > : ^^^^ >true : true diff --git a/tests/baselines/reference/typeTagOnFunctionReferencesGeneric.types b/tests/baselines/reference/typeTagOnFunctionReferencesGeneric.types index 34951c7ee95a4..8946d40922493 100644 --- a/tests/baselines/reference/typeTagOnFunctionReferencesGeneric.types +++ b/tests/baselines/reference/typeTagOnFunctionReferencesGeneric.types @@ -8,7 +8,7 @@ /**@type {IFn}*/ export function inJs(l) { >inJs : (m: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : T > : ^ @@ -20,7 +20,7 @@ inJs(1); // lints error. Why? >inJs(1) : 1 > : ^ >inJs : (m: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/typeTagWithGenericSignature.types b/tests/baselines/reference/typeTagWithGenericSignature.types index e0b8c2e6e95cb..b2332220088c0 100644 --- a/tests/baselines/reference/typeTagWithGenericSignature.types +++ b/tests/baselines/reference/typeTagWithGenericSignature.types @@ -4,7 +4,7 @@ /** @type {(param?: T) => T | undefined} */ function typed(param) { >typed : (param?: T) => T | undefined -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >param : T | undefined > : ^^^^^^^^^^^^^ @@ -19,7 +19,7 @@ var n = typed(1); >typed(1) : 1 | undefined > : ^^^^^^^^^^^^^ >typed : (param?: T) => T | undefined -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/typeVariableConstraintIntersections.types b/tests/baselines/reference/typeVariableConstraintIntersections.types index 0bf67da2f7f16..1b1eaad13b65d 100644 --- a/tests/baselines/reference/typeVariableConstraintIntersections.types +++ b/tests/baselines/reference/typeVariableConstraintIntersections.types @@ -146,7 +146,7 @@ declare function isC(x: any): x is "c"; function foo(x: K) { >foo : (x: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : K > : ^ @@ -332,7 +332,7 @@ const optionHandlers: OptionHandlers = { function handleOption(option: Options & { kind: K }): string { >handleOption : (option: Options & { kind: K; }) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >option : Options & { kind: K; } > : ^^^^^^^^^^^^^^^^^^ ^^^ >kind : K diff --git a/tests/baselines/reference/typeVariableConstraintedToAliasNotAssignableToUnion.types b/tests/baselines/reference/typeVariableConstraintedToAliasNotAssignableToUnion.types index 354545a5377af..456da978637d2 100644 --- a/tests/baselines/reference/typeVariableConstraintedToAliasNotAssignableToUnion.types +++ b/tests/baselines/reference/typeVariableConstraintedToAliasNotAssignableToUnion.types @@ -44,7 +44,7 @@ declare let someUnion: Something | SomethingElse; function fn(o: T) { >fn : (o: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ @@ -83,7 +83,7 @@ function fn(o: T) { function fn2(o: T) { >fn2 : (o: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ diff --git a/tests/baselines/reference/typeVariableTypeGuards.types b/tests/baselines/reference/typeVariableTypeGuards.types index 51faa8e79ad34..a12299a35532a 100644 --- a/tests/baselines/reference/typeVariableTypeGuards.types +++ b/tests/baselines/reference/typeVariableTypeGuards.types @@ -142,7 +142,7 @@ type Item = { function f1(obj: T) { >f1 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ @@ -176,7 +176,7 @@ function f1(obj: T) { function f2(obj: T | undefined) { >f2 : (obj: T | undefined) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T | undefined > : ^^^^^^^^^^^^^ @@ -210,7 +210,7 @@ function f2(obj: T | undefined) { function f3(obj: T | null) { >f3 : (obj: T | null) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : T | null > : ^^^^^^^^ @@ -244,7 +244,7 @@ function f3(obj: T | null) { function f4(obj: T | undefined, x: number) { >f4 : (obj: T | undefined, x: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T | undefined > : ^^^^^^^^^^^^^ >x : number @@ -270,7 +270,7 @@ function f4(obj: T | undefined, x: number) { function f5(obj: T | undefined, key: K) { >f5 : (obj: T | undefined, key: K) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T | undefined > : ^^^^^^^^^^^^^ >key : K @@ -294,7 +294,7 @@ function f5(obj: T | undefined, key: K) { function f6 {})>(a: T) { >f6 : {})>(a: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/typedArrays.types b/tests/baselines/reference/typedArrays.types index ccf27a2d578e8..0e942e46b44d7 100644 --- a/tests/baselines/reference/typedArrays.types +++ b/tests/baselines/reference/typedArrays.types @@ -442,11 +442,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Int8Array.from(obj) : Int8Array > : ^^^^^^^^^ >Int8Array.from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -461,11 +461,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Uint8Array.from(obj) : Uint8Array > : ^^^^^^^^^^ >Uint8Array.from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -480,11 +480,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Int16Array.from(obj) : Int16Array > : ^^^^^^^^^^ >Int16Array.from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -499,11 +499,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Uint16Array.from(obj) : Uint16Array > : ^^^^^^^^^^^ >Uint16Array.from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -518,11 +518,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Int32Array.from(obj) : Int32Array > : ^^^^^^^^^^ >Int32Array.from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -537,11 +537,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Uint32Array.from(obj) : Uint32Array > : ^^^^^^^^^^^ >Uint32Array.from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -556,11 +556,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Float32Array.from(obj) : Float32Array > : ^^^^^^^^^^^^ >Float32Array.from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -575,11 +575,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Float64Array.from(obj) : Float64Array > : ^^^^^^^^^^^^ >Float64Array.from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -594,11 +594,11 @@ function CreateIntegerTypedArraysFromArray2(obj:number[]) { >Uint8ClampedArray.from(obj) : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray.from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : number[] > : ^^^^^^^^ @@ -630,11 +630,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Int8Array.from(obj) : Int8Array > : ^^^^^^^^^ >Int8Array.from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -649,11 +649,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Uint8Array.from(obj) : Uint8Array > : ^^^^^^^^^^ >Uint8Array.from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -668,11 +668,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Int16Array.from(obj) : Int16Array > : ^^^^^^^^^^ >Int16Array.from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -687,11 +687,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Uint16Array.from(obj) : Uint16Array > : ^^^^^^^^^^^ >Uint16Array.from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -706,11 +706,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Int32Array.from(obj) : Int32Array > : ^^^^^^^^^^ >Int32Array.from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -725,11 +725,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Uint32Array.from(obj) : Uint32Array > : ^^^^^^^^^^^ >Uint32Array.from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -744,11 +744,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Float32Array.from(obj) : Float32Array > : ^^^^^^^^^^^^ >Float32Array.from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -763,11 +763,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Float64Array.from(obj) : Float64Array > : ^^^^^^^^^^^^ >Float64Array.from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -782,11 +782,11 @@ function CreateIntegerTypedArraysFromArrayLike(obj:ArrayLike) { >Uint8ClampedArray.from(obj) : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray.from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ @@ -1224,7 +1224,7 @@ function CreateTypedArraysOf2() { function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number)=> number) { >CreateTypedArraysFromMapFn2 : (obj: ArrayLike, mapFn: (n: T, v: number) => number) => any[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1251,11 +1251,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Int8Array.from(obj, mapFn) : Int8Array > : ^^^^^^^^^ >Int8Array.from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1272,11 +1272,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Uint8Array.from(obj, mapFn) : Uint8Array > : ^^^^^^^^^^ >Uint8Array.from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1293,11 +1293,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Int16Array.from(obj, mapFn) : Int16Array > : ^^^^^^^^^^ >Int16Array.from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1314,11 +1314,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Uint16Array.from(obj, mapFn) : Uint16Array > : ^^^^^^^^^^^ >Uint16Array.from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1335,11 +1335,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Int32Array.from(obj, mapFn) : Int32Array > : ^^^^^^^^^^ >Int32Array.from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1356,11 +1356,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Uint32Array.from(obj, mapFn) : Uint32Array > : ^^^^^^^^^^^ >Uint32Array.from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1377,11 +1377,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Float32Array.from(obj, mapFn) : Float32Array > : ^^^^^^^^^^^^ >Float32Array.from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1398,11 +1398,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Float64Array.from(obj, mapFn) : Float64Array > : ^^^^^^^^^^^^ >Float64Array.from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1419,11 +1419,11 @@ function CreateTypedArraysFromMapFn2(obj:ArrayLike, mapFn: (n:T, v:number) >Uint8ClampedArray.from(obj, mapFn) : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray.from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1463,11 +1463,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Int8Array.from(obj, mapFn) : Int8Array > : ^^^^^^^^^ >Int8Array.from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1484,11 +1484,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Uint8Array.from(obj, mapFn) : Uint8Array > : ^^^^^^^^^^ >Uint8Array.from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1505,11 +1505,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Int16Array.from(obj, mapFn) : Int16Array > : ^^^^^^^^^^ >Int16Array.from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1526,11 +1526,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Uint16Array.from(obj, mapFn) : Uint16Array > : ^^^^^^^^^^^ >Uint16Array.from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1547,11 +1547,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Int32Array.from(obj, mapFn) : Int32Array > : ^^^^^^^^^^ >Int32Array.from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1568,11 +1568,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Uint32Array.from(obj, mapFn) : Uint32Array > : ^^^^^^^^^^^ >Uint32Array.from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1589,11 +1589,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Float32Array.from(obj, mapFn) : Float32Array > : ^^^^^^^^^^^^ >Float32Array.from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1610,11 +1610,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Float64Array.from(obj, mapFn) : Float64Array > : ^^^^^^^^^^^^ >Float64Array.from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1631,11 +1631,11 @@ function CreateTypedArraysFromMapFn(obj:ArrayLike, mapFn: (n:number, v:n >Uint8ClampedArray.from(obj, mapFn) : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray.from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1677,11 +1677,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Int8Array.from(obj, mapFn, thisArg) : Int8Array > : ^^^^^^^^^ >Int8Array.from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1700,11 +1700,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Uint8Array.from(obj, mapFn, thisArg) : Uint8Array > : ^^^^^^^^^^ >Uint8Array.from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1723,11 +1723,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Int16Array.from(obj, mapFn, thisArg) : Int16Array > : ^^^^^^^^^^ >Int16Array.from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1746,11 +1746,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Uint16Array.from(obj, mapFn, thisArg) : Uint16Array > : ^^^^^^^^^^^ >Uint16Array.from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1769,11 +1769,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Int32Array.from(obj, mapFn, thisArg) : Int32Array > : ^^^^^^^^^^ >Int32Array.from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1792,11 +1792,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Uint32Array.from(obj, mapFn, thisArg) : Uint32Array > : ^^^^^^^^^^^ >Uint32Array.from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1815,11 +1815,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Float32Array.from(obj, mapFn, thisArg) : Float32Array > : ^^^^^^^^^^^^ >Float32Array.from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1838,11 +1838,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Float64Array.from(obj, mapFn, thisArg) : Float64Array > : ^^^^^^^^^^^^ >Float64Array.from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1861,11 +1861,11 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v >Uint8ClampedArray.from(obj, mapFn, thisArg) : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray.from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^^^^^^ >mapFn : (n: number, v: number) => number @@ -1880,7 +1880,7 @@ function CreateTypedArraysFromThisObj(obj:ArrayLike, mapFn: (n:number, v function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:number)=> number, thisArg: {}) { >CreateTypedArraysFromThisObj2 : (obj: ArrayLike, mapFn: (n: T, v: number) => number, thisArg: {}) => any[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1909,11 +1909,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Int8Array.from(obj, mapFn, thisArg) : Int8Array > : ^^^^^^^^^ >Int8Array.from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1932,11 +1932,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Uint8Array.from(obj, mapFn, thisArg) : Uint8Array > : ^^^^^^^^^^ >Uint8Array.from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1955,11 +1955,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Int16Array.from(obj, mapFn, thisArg) : Int16Array > : ^^^^^^^^^^ >Int16Array.from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -1978,11 +1978,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Uint16Array.from(obj, mapFn, thisArg) : Uint16Array > : ^^^^^^^^^^^ >Uint16Array.from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint16Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint16Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -2001,11 +2001,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Int32Array.from(obj, mapFn, thisArg) : Int32Array > : ^^^^^^^^^^ >Int32Array.from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Int32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Int32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -2024,11 +2024,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Uint32Array.from(obj, mapFn, thisArg) : Uint32Array > : ^^^^^^^^^^^ >Uint32Array.from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -2047,11 +2047,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Float32Array.from(obj, mapFn, thisArg) : Float32Array > : ^^^^^^^^^^^^ >Float32Array.from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float32Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float32Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -2070,11 +2070,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Float64Array.from(obj, mapFn, thisArg) : Float64Array > : ^^^^^^^^^^^^ >Float64Array.from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Float64Array; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Float64Array; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number @@ -2093,11 +2093,11 @@ function CreateTypedArraysFromThisObj2(obj:ArrayLike, mapFn: (n:T, v:numbe >Uint8ClampedArray.from(obj, mapFn, thisArg) : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray.from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >from : { (arrayLike: ArrayLike): Uint8ClampedArray; (arrayLike: ArrayLike, mapfn: (v: T_1, k: number) => number, thisArg?: any): Uint8ClampedArray; (arrayLike: Iterable, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >obj : ArrayLike > : ^^^^^^^^^^^^ >mapFn : (n: T, v: number) => number diff --git a/tests/baselines/reference/typedefTagTypeResolution.types b/tests/baselines/reference/typedefTagTypeResolution.types index c193bf7fa420b..a7fc35618b6b8 100644 --- a/tests/baselines/reference/typedefTagTypeResolution.types +++ b/tests/baselines/reference/typedefTagTypeResolution.types @@ -10,7 +10,7 @@ */ function f(x) { >f : (x: U) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : U > : ^ @@ -36,7 +36,7 @@ const x = 3; */ function g(vvvvv) { >g : (vvvvv: V) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >vvvvv : V > : ^ } diff --git a/tests/baselines/reference/typedefTagWrapping.types b/tests/baselines/reference/typedefTagWrapping.types index a51e81407afaa..6abc288baaaf1 100644 --- a/tests/baselines/reference/typedefTagWrapping.types +++ b/tests/baselines/reference/typedefTagWrapping.types @@ -219,7 +219,7 @@ function check5(obj) { */ function check6(obj) { >check6 : (obj: Type6) => any -> : ^ ^^ ^^^^^^^^ +> : ^ ^^ ^^^^^ >obj : Type6 > : ^^^^^ diff --git a/tests/baselines/reference/typeofImportInstantiationExpression.types b/tests/baselines/reference/typeofImportInstantiationExpression.types index 84dd63de703b9..969935469223f 100644 --- a/tests/baselines/reference/typeofImportInstantiationExpression.types +++ b/tests/baselines/reference/typeofImportInstantiationExpression.types @@ -19,7 +19,7 @@ interface Arg = Record> export function myFunction = Record>(arg: Arg) { return (arg.params || {}) as U } >myFunction : = Record>(arg: Arg) => U -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >arg : Arg > : ^^^^^^^^^ >(arg.params || {}) as U : U @@ -40,7 +40,7 @@ export function myFunction = RecordT1 : = Record>(arg: Arg) => U -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^ ^ ^^^^^ >myFunction : error type T2 = typeof import('./input.js').myFunction; diff --git a/tests/baselines/reference/typeofImportTypeOnlyExport.types b/tests/baselines/reference/typeofImportTypeOnlyExport.types index b384d11faf0a4..8bc6c2fb2504a 100644 --- a/tests/baselines/reference/typeofImportTypeOnlyExport.types +++ b/tests/baselines/reference/typeofImportTypeOnlyExport.types @@ -24,11 +24,11 @@ export type {ClassMapDirective}; export const directive = >directive : (class_: C) => () => { directive: C; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ (class_: C) => >(class_: C) => () => ({ directive: class_, }) : (class_: C) => () => { directive: C; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >class_ : C > : ^ @@ -54,7 +54,7 @@ export const classMap = directive(ClassMapDirective); >directive(ClassMapDirective) : () => { directive: typeof ClassMapDirective; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >directive : (class_: C) => () => { directive: C; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ClassMapDirective : typeof ClassMapDirective > : ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/typeofObjectInference.types b/tests/baselines/reference/typeofObjectInference.types index 084a5b89befd3..9a5ae647c85c5 100644 --- a/tests/baselines/reference/typeofObjectInference.types +++ b/tests/baselines/reference/typeofObjectInference.types @@ -9,7 +9,7 @@ let val = 1 function decorateA(fn: (first: {value: typeof val}) => O) { >decorateA : (fn: (first: { value: typeof val; }) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >fn : (first: { value: typeof val; }) => O > : ^ ^^ ^^^^^ >first : { value: typeof val; } @@ -35,11 +35,11 @@ function decorateA(fn: (first: {value: typeof val}) => O) { } let a = decorateA(({value}) => 5) >a : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateA(({value}) => 5) : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateA : (fn: (first: { value: typeof val; }) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >({value}) => 5 : ({ value }: { value: typeof val; }) => number > : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >value : number @@ -49,7 +49,7 @@ let a = decorateA(({value}) => 5) function decorateB(fn: (first: typeof val) => O) { >decorateB : (fn: (first: typeof val) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >fn : (first: typeof val) => O > : ^ ^^ ^^^^^ >first : number @@ -69,11 +69,11 @@ function decorateB(fn: (first: typeof val) => O) { } let b = decorateB((value) => 5) >b : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateB((value) => 5) : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateB : (fn: (first: typeof val) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >(value) => 5 : (value: number) => number > : ^ ^^^^^^^^^^^^^^^^^^^ >value : number @@ -83,7 +83,7 @@ let b = decorateB((value) => 5) function decorateC(fn: (first: {value: number}) => O) { >decorateC : (fn: (first: { value: number; }) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >fn : (first: { value: number; }) => O > : ^ ^^ ^^^^^ >first : { value: number; } @@ -107,11 +107,11 @@ function decorateC(fn: (first: {value: number}) => O) { } let c = decorateC(({value}) => 5) >c : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateC(({value}) => 5) : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateC : (fn: (first: { value: number; }) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >({value}) => 5 : ({ value }: { value: number; }) => number > : ^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^ >value : number @@ -129,7 +129,7 @@ type First = {value: typeof val} function decorateD(fn: (first: First) => O) { >decorateD : (fn: (first: First) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >fn : (first: First) => O > : ^ ^^ ^^^^^ >first : First @@ -151,11 +151,11 @@ function decorateD(fn: (first: First) => O) { } let d = decorateD(({value}) => 5) >d : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateD(({value}) => 5) : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >decorateD : (fn: (first: First) => O) => () => O -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ >({value}) => 5 : ({ value }: First) => number > : ^ ^^^^^^^^^^^^^^^^^^ >value : number diff --git a/tests/baselines/reference/typeofTypeParameter.types b/tests/baselines/reference/typeofTypeParameter.types index b226539695853..a5b13e5285151 100644 --- a/tests/baselines/reference/typeofTypeParameter.types +++ b/tests/baselines/reference/typeofTypeParameter.types @@ -3,7 +3,7 @@ === typeofTypeParameter.ts === function f(x: T): T { >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.1.types b/tests/baselines/reference/types.asyncGenerators.es2018.1.types index 2a9d1eb54db4d..ba35dd03ef6ee 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.1.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.1.types @@ -30,11 +30,11 @@ async function * inferReturnType4() { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -52,11 +52,11 @@ async function * inferReturnType5() { >Promise.resolve(2) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ } @@ -84,11 +84,11 @@ async function * inferReturnType7() { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -134,11 +134,11 @@ const assignability2: () => AsyncIterableIterator = async function * () >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -172,11 +172,11 @@ const assignability4: () => AsyncIterableIterator = async function * () >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -227,11 +227,11 @@ const assignability7: () => AsyncIterable = async function * () { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -265,11 +265,11 @@ const assignability9: () => AsyncIterable = async function * () { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -320,11 +320,11 @@ const assignability12: () => AsyncIterator = async function * () { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -358,11 +358,11 @@ const assignability14: () => AsyncIterator = async function * () { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -408,11 +408,11 @@ async function * explicitReturnType2(): AsyncIterableIterator { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -440,11 +440,11 @@ async function * explicitReturnType4(): AsyncIterableIterator { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -486,11 +486,11 @@ async function * explicitReturnType7(): AsyncIterable { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -518,11 +518,11 @@ async function * explicitReturnType9(): AsyncIterable { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -564,11 +564,11 @@ async function * explicitReturnType12(): AsyncIterator { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -596,11 +596,11 @@ async function * explicitReturnType14(): AsyncIterator { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } @@ -655,11 +655,11 @@ async function * awaitedType2() { >Promise.resolve(1) : Promise > : ^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ } diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.2.types b/tests/baselines/reference/types.asyncGenerators.es2018.2.types index 41275777ea664..d72fbcc88447e 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.2.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.2.types @@ -33,11 +33,11 @@ async function * inferReturnType3() { >Promise.resolve([1, 2]) : Promise > : ^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >[1, 2] : number[] > : ^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/undefinedArgumentInference.types b/tests/baselines/reference/undefinedArgumentInference.types index 67f3b980b006b..7476267209f39 100644 --- a/tests/baselines/reference/undefinedArgumentInference.types +++ b/tests/baselines/reference/undefinedArgumentInference.types @@ -3,7 +3,7 @@ === undefinedArgumentInference.ts === function foo1(f1: { x: T; y: T }): T { >foo1 : (f1: { x: T; y: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f1 : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -21,7 +21,7 @@ var z1 = foo1({ x: undefined, y: undefined }); >z1 : any >foo1({ x: undefined, y: undefined }) : any >foo1 : (f1: { x: T; y: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ x: undefined, y: undefined } : { x: undefined; y: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : undefined diff --git a/tests/baselines/reference/undefinedAssignableToEveryType.types b/tests/baselines/reference/undefinedAssignableToEveryType.types index eb12eaf6ab553..5e6f0bb4562e2 100644 --- a/tests/baselines/reference/undefinedAssignableToEveryType.types +++ b/tests/baselines/reference/undefinedAssignableToEveryType.types @@ -139,7 +139,7 @@ var n: { foo: string } = undefined; var o: (x: T) => T = undefined; >o : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >undefined : undefined @@ -159,7 +159,7 @@ var q: String = undefined; function foo(x: T, y: U, z: V) { >foo : (x: T, y: U, z: V) => void -> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/undefinedInferentialTyping.types b/tests/baselines/reference/undefinedInferentialTyping.types index 793968e5dd5ca..f823e433dcc97 100644 --- a/tests/baselines/reference/undefinedInferentialTyping.types +++ b/tests/baselines/reference/undefinedInferentialTyping.types @@ -3,7 +3,7 @@ === undefinedInferentialTyping.ts === function f(arr: T[], elemnt: T): T { >f : (arr: T[], elemnt: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >arr : T[] > : ^^^ >elemnt : T @@ -18,7 +18,7 @@ var a = f([], 3); // should be number >f([], 3) : 3 > : ^ >f : (arr: T[], elemnt: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ >3 : 3 diff --git a/tests/baselines/reference/undefinedTypeArgument2.types b/tests/baselines/reference/undefinedTypeArgument2.types index 38e5cb0ec84b8..63d59d7330d85 100644 --- a/tests/baselines/reference/undefinedTypeArgument2.types +++ b/tests/baselines/reference/undefinedTypeArgument2.types @@ -5,7 +5,7 @@ interface Query { selectMany(selector: (item: T) => U[]): Query; >selectMany : { (selector: (item: T) => U[]): Query; (arraySelector: (item: T) => U_1[], resultSelector: (outer: T, inner: U_1) => R): Query; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >selector : (item: T) => U[] > : ^ ^^ ^^^^^ >item : T @@ -13,7 +13,7 @@ interface Query { selectMany(arraySelector: (item: T) => U[], resultSelector: (outer: T, inner: U) => R): Query; >selectMany : { (selector: (item: T) => U_1[]): Query; (arraySelector: (item: T) => U[], resultSelector: (outer: T, inner: U) => R): Query; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >arraySelector : (item: T) => U[] > : ^ ^^ ^^^^^ >item : T diff --git a/tests/baselines/reference/underscoreMapFirst.types b/tests/baselines/reference/underscoreMapFirst.types index ed76e069050a6..7cd8c5ec0709c 100644 --- a/tests/baselines/reference/underscoreMapFirst.types +++ b/tests/baselines/reference/underscoreMapFirst.types @@ -33,7 +33,7 @@ declare module _ { } export function pluck( >pluck : (list: Collection, propertyName: string) => any[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ list: Collection, >list : Collection @@ -45,7 +45,7 @@ declare module _ { export function map( >map : (list: List, iterator: ListIterator, context?: any) => TResult[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ list: List, >list : List @@ -60,7 +60,7 @@ declare module _ { export function first(array: List): T; >first : (array: List) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >array : List > : ^^^^^^^ } @@ -121,11 +121,11 @@ class MyView extends View { >_.pluck(data, "series") : any[] > : ^^^^^ >_.pluck : (list: _.Collection, propertyName: string) => any[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >_ : typeof _ > : ^^^^^^^^ >pluck : (list: _.Collection, propertyName: string) => any[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >data : IData[] > : ^^^^^^^ >"series" : "series" @@ -135,19 +135,19 @@ class MyView extends View { >_.map(allSeries, _.first) : ISeries[] > : ^^^^^^^^^ >_.map : (list: _.List, iterator: _.ListIterator, context?: any) => TResult[] -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >_ : typeof _ > : ^^^^^^^^ >map : (list: _.List, iterator: _.ListIterator, context?: any) => TResult[] -> : ^ ^^ ^^ ^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^ >allSeries : ISeries[][] > : ^^^^^^^^^^^ >_.first : (array: _.List) => T -> : ^ ^^ ^^^^^^^^ ^^^^^ +> : ^^^^ ^^^^^^^^ ^^^^^ >_ : typeof _ > : ^^^^^^^^ >first : (array: _.List) => T -> : ^ ^^ ^^^^^^^^ ^^^^^ +> : ^^^^ ^^^^^^^^ ^^^^^ } } diff --git a/tests/baselines/reference/underscoreTest1.types b/tests/baselines/reference/underscoreTest1.types index 7cd9b7565117f..03c83f6b6c854 100644 --- a/tests/baselines/reference/underscoreTest1.types +++ b/tests/baselines/reference/underscoreTest1.types @@ -20,11 +20,11 @@ _.each([1, 2, 3], (num) => alert(num.toString())); >_.each([1, 2, 3], (num) => alert(num.toString())) : void > : ^^^^ >_.each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -54,11 +54,11 @@ _.each({ one: 1, two: 2, three: 3 }, (value: number, key?: string) => alert(valu >_.each({ one: 1, two: 2, three: 3 }, (value: number, key?: string) => alert(value.toString())) : void > : ^^^^ >_.each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >{ one: 1, two: 2, three: 3 } : { one: number; two: number; three: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number @@ -96,11 +96,11 @@ _.map([1, 2, 3], (num) => num * 3); >_.map([1, 2, 3], (num) => num * 3) : number[] > : ^^^^^^^^ >_.map : { (list: T[], iterator: Iterator_, context?: any): U[]; (list: Dictionary, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >map : { (list: T[], iterator: Iterator_, context?: any): U[]; (list: Dictionary, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -124,11 +124,11 @@ _.map({ one: 1, two: 2, three: 3 }, (value: number, key?: string) => value * 3); >_.map({ one: 1, two: 2, three: 3 }, (value: number, key?: string) => value * 3) : number[] > : ^^^^^^^^ >_.map : { (list: T[], iterator: Iterator_, context?: any): U[]; (list: Dictionary, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >map : { (list: T[], iterator: Iterator_, context?: any): U[]; (list: Dictionary, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >{ one: 1, two: 2, three: 3 } : { one: number; two: number; three: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number @@ -162,11 +162,11 @@ var sum = _.reduce([1, 2, 3], (memo, num) => memo + num, 0); >_.reduce([1, 2, 3], (memo, num) => memo + num, 0) : number > : ^^^^^^ >_.reduce : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >reduce : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -220,11 +220,11 @@ var flat = _.reduceRight(list, (a, b) => a.concat(b), []); >_.reduceRight(list, (a, b) => a.concat(b), []) : number[] > : ^^^^^^^^ >_.reduceRight : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >reduceRight : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : number[][] > : ^^^^^^^^^^ >(a, b) => a.concat(b) : (a: number[], b: number[]) => number[] @@ -236,11 +236,11 @@ var flat = _.reduceRight(list, (a, b) => a.concat(b), []); >a.concat(b) : number[] > : ^^^^^^^^ >a.concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >a : number[] > : ^^^^^^^^ >concat : { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >b : number[] > : ^^^^^^^^ >[] : undefined[] @@ -252,11 +252,11 @@ var even = _.find([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0); >_.find([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0) : number > : ^^^^^^ >_.find : { (list: T[], iterator: Iterator_, context?: any): T; (list: Dictionary, iterator: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >find : { (list: T[], iterator: Iterator_, context?: any): T; (list: Dictionary, iterator: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3, 4, 5, 6] : number[] > : ^^^^^^^^ >1 : 1 @@ -292,11 +292,11 @@ var evens = _.filter([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0); >_.filter([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0) : number[] > : ^^^^^^^^ >_.filter : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >filter : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3, 4, 5, 6] : number[] > : ^^^^^^^^ >1 : 1 @@ -378,11 +378,11 @@ _.where(listOfPlays, { author: "Shakespeare", year: 1611 }); >_.where(listOfPlays, { author: "Shakespeare", year: 1611 }) : { title: string; author: string; year: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.where : { (list: T[], properties: Object): T[]; (list: Dictionary, properties: Object): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >where : { (list: T[], properties: Object): T[]; (list: Dictionary, properties: Object): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >listOfPlays : { title: string; author: string; year: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ author: "Shakespeare", year: 1611 } : { author: string; year: number; } @@ -402,11 +402,11 @@ var odds = _.reject([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0); >_.reject([1, 2, 3, 4, 5, 6], (num) => num % 2 == 0) : number[] > : ^^^^^^^^ >_.reject : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >reject : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3, 4, 5, 6] : number[] > : ^^^^^^^^ >1 : 1 @@ -440,11 +440,11 @@ _.all([true, 1, null, 'yes'], _.identity); >_.all([true, 1, null, 'yes'], _.identity) : boolean > : ^^^^^^^ >_.all : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >all : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >[true, 1, null, 'yes'] : (string | number | true)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >true : true @@ -454,21 +454,21 @@ _.all([true, 1, null, 'yes'], _.identity); >'yes' : "yes" > : ^^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ _.any([null, 0, 'yes', false]); >_.any([null, 0, 'yes', false]) : boolean > : ^^^^^^^ >_.any : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >any : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >[null, 0, 'yes', false] : (string | number | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : 0 @@ -482,11 +482,11 @@ _.contains([1, 2, 3], 3); >_.contains([1, 2, 3], 3) : boolean > : ^^^^^^^ >_.contains : { (list: T[], value: T): boolean; (list: Dictionary, value: T): boolean; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >contains : { (list: T[], value: T): boolean; (list: Dictionary, value: T): boolean; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -582,11 +582,11 @@ _.max(stooges, (stooge) => stooge.age); >_.max(stooges, (stooge) => stooge.age) : { name: string; age: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.max : { (list: T[], iterator?: Iterator_, context?: any): T; (list: Dictionary, iterator?: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >max : { (list: T[], iterator?: Iterator_, context?: any): T; (list: Dictionary, iterator?: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >stooges : { name: string; age: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(stooge) => stooge.age : (stooge: { name: string; age: number; }) => number @@ -620,11 +620,11 @@ _.min(numbers); >_.min(numbers) : number > : ^^^^^^ >_.min : { (list: T[], iterator?: Iterator_, context?: any): T; (list: Dictionary, iterator?: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >min : { (list: T[], iterator?: Iterator_, context?: any): T; (list: Dictionary, iterator?: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >numbers : number[] > : ^^^^^^^^ @@ -632,11 +632,11 @@ _.sortBy([1, 2, 3, 4, 5, 6], (num) => Math.sin(num)); >_.sortBy([1, 2, 3, 4, 5, 6], (num) => Math.sin(num)) : number[] > : ^^^^^^^^ >_.sortBy : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; (list: T[], propertyName: string): T[]; (list: Dictionary, propertyName: string): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >sortBy : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; (list: T[], propertyName: string): T[]; (list: Dictionary, propertyName: string): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[1, 2, 3, 4, 5, 6] : number[] > : ^^^^^^^^ >1 : 1 @@ -672,7 +672,7 @@ _([1.3, 2.1, 2.4]).groupBy((e: number, i?: number, list?: number[]) => Math.floo >_([1.3, 2.1, 2.4]).groupBy((e: number, i?: number, list?: number[]) => Math.floor(e)) : Dictionary > : ^^^^^^^^^^^^^^^^^^^^ >_([1.3, 2.1, 2.4]).groupBy : { (iterator?: Iterator_, context?: any): Dictionary; (propertyName: string): Dictionary; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ >_([1.3, 2.1, 2.4]) : Underscore.WrappedArray > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_ : Underscore.Static @@ -686,7 +686,7 @@ _([1.3, 2.1, 2.4]).groupBy((e: number, i?: number, list?: number[]) => Math.floo >2.4 : 2.4 > : ^^^ >groupBy : { (iterator?: Iterator_, context?: any): Dictionary; (propertyName: string): Dictionary; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^^ ^^^ +> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^^ >(e: number, i?: number, list?: number[]) => Math.floor(e) : (e: number, i?: number, list?: number[]) => number > : ^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^ >e : number @@ -710,11 +710,11 @@ _.groupBy([1.3, 2.1, 2.4], (num: number) => Math.floor(num)); >_.groupBy([1.3, 2.1, 2.4], (num: number) => Math.floor(num)) : Dictionary > : ^^^^^^^^^^^^^^^^^^^^ >_.groupBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >groupBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[1.3, 2.1, 2.4] : number[] > : ^^^^^^^^ >1.3 : 1.3 @@ -742,11 +742,11 @@ _.groupBy(['one', 'two', 'three'], 'length'); >_.groupBy(['one', 'two', 'three'], 'length') : Dictionary > : ^^^^^^^^^^^^^^^^^^^^ >_.groupBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >groupBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >['one', 'two', 'three'] : string[] > : ^^^^^^^^ >'one' : "one" @@ -762,11 +762,11 @@ _.countBy([1, 2, 3, 4, 5], (num) => num % 2 == 0 ? 'even' : 'odd'); >_.countBy([1, 2, 3, 4, 5], (num) => num % 2 == 0 ? 'even' : 'odd') : Dictionary > : ^^^^^^^^^^^^^^^^^^ >_.countBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >countBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[1, 2, 3, 4, 5] : number[] > : ^^^^^^^^ >1 : 1 @@ -804,11 +804,11 @@ _.shuffle([1, 2, 3, 4, 5, 6]); >_.shuffle([1, 2, 3, 4, 5, 6]) : number[] > : ^^^^^^^^ >_.shuffle : { (list: T[]): T[]; (list: Dictionary): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >shuffle : { (list: T[]): T[]; (list: Dictionary): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >[1, 2, 3, 4, 5, 6] : number[] > : ^^^^^^^^ >1 : 1 @@ -830,11 +830,11 @@ _.size({ one: 1, two: 2, three: 3 }); >_.size({ one: 1, two: 2, three: 3 }) : number > : ^^^^^^ >_.size : { (list: T[]): number; (list: Dictionary): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >size : { (list: T[]): number; (list: Dictionary): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >{ one: 1, two: 2, three: 3 } : { one: number; two: number; three: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : number @@ -856,11 +856,11 @@ _.first([5, 4, 3, 2, 1]); >_.first([5, 4, 3, 2, 1]) : number > : ^^^^^^ >_.first : { (list: T[]): T; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >first : { (list: T[]): T; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[5, 4, 3, 2, 1] : number[] > : ^^^^^^^^ >5 : 5 @@ -878,11 +878,11 @@ _.initial([5, 4, 3, 2, 1]); >_.initial([5, 4, 3, 2, 1]) : number > : ^^^^^^ >_.initial : { (list: T[]): T; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >initial : { (list: T[]): T; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[5, 4, 3, 2, 1] : number[] > : ^^^^^^^^ >5 : 5 @@ -900,11 +900,11 @@ _.last([5, 4, 3, 2, 1]); >_.last([5, 4, 3, 2, 1]) : number > : ^^^^^^ >_.last : { (list: T[]): T; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >last : { (list: T[]): T; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >[5, 4, 3, 2, 1] : number[] > : ^^^^^^^^ >5 : 5 @@ -922,11 +922,11 @@ _.rest([5, 4, 3, 2, 1]); >_.rest([5, 4, 3, 2, 1]) : number[] > : ^^^^^^^^ >_.rest : (list: T[], index?: number) => T[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >rest : (list: T[], index?: number) => T[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >[5, 4, 3, 2, 1] : number[] > : ^^^^^^^^ >5 : 5 @@ -944,11 +944,11 @@ _.compact([0, 1, false, 2, '', 3]); >_.compact([0, 1, false, 2, '', 3]) : (string | number | boolean)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.compact : (list: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >compact : (list: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[0, 1, false, 2, '', 3] : (string | number | false)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >0 : 0 @@ -968,11 +968,11 @@ _.flatten([1, 2, 3, 4]); >_.flatten([1, 2, 3, 4]) : unknown[] > : ^^^^^^^^^ >_.flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 3, 4] : number[] > : ^^^^^^^^ >1 : 1 @@ -988,11 +988,11 @@ _.flatten([1, [2]]); >_.flatten([1, [2]]) : unknown[] > : ^^^^^^^^^ >_.flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, [2]] : (number | number[])[] > : ^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -1007,11 +1007,11 @@ _.flatten([1, [2], [3, [[4]]]]); >_.flatten([1, [2], [3, [[4]]]]) : unknown[] > : ^^^^^^^^^ >_.flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, [2], [3, [[4]]]] : (number | (number | number[][])[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -1035,11 +1035,11 @@ _.flatten([1, [2], [3, [[4]]]], true); >_.flatten([1, [2], [3, [[4]]]], true) : unknown[] > : ^^^^^^^^^ >_.flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, [2], [3, [[4]]]] : (number | (number | number[][])[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -1065,11 +1065,11 @@ _.without([1, 2, 1, 0, 3, 1, 4], 0, 1); >_.without([1, 2, 1, 0, 3, 1, 4], 0, 1) : number[] > : ^^^^^^^^ >_.without : (list: T[], ...values: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >without : (list: T[], ...values: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >[1, 2, 1, 0, 3, 1, 4] : number[] > : ^^^^^^^^ >1 : 1 @@ -1095,11 +1095,11 @@ _.union([1, 2, 3], [101, 2, 1, 10], [2, 1]); >_.union([1, 2, 3], [101, 2, 1, 10], [2, 1]) : number[] > : ^^^^^^^^ >_.union : (...arrays: T[][]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >union : (...arrays: T[][]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -1129,11 +1129,11 @@ _.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]); >_.intersection([1, 2, 3], [101, 2, 1, 10], [2, 1]) : number[] > : ^^^^^^^^ >_.intersection : (...arrays: T[][]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >intersection : (...arrays: T[][]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -1163,11 +1163,11 @@ _.difference([1, 2, 3, 4, 5], [5, 2, 10]); >_.difference([1, 2, 3, 4, 5], [5, 2, 10]) : number[] > : ^^^^^^^^ >_.difference : (list: T[], ...others: T[][]) => T[] -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >difference : (list: T[], ...others: T[][]) => T[] -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >[1, 2, 3, 4, 5] : number[] > : ^^^^^^^^ >1 : 1 @@ -1193,11 +1193,11 @@ _.uniq([1, 2, 1, 3, 1, 4]); >_.uniq([1, 2, 1, 3, 1, 4]) : number[] > : ^^^^^^^^ >_.uniq : { (list: T[], isSorted?: boolean): T[]; (list: T[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >uniq : { (list: T[], isSorted?: boolean): T[]; (list: T[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >[1, 2, 1, 3, 1, 4] : number[] > : ^^^^^^^^ >1 : 1 @@ -1217,11 +1217,11 @@ _.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); >_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]) : Tuple3[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.zip : { (a0: T0[], a1: T1[]): Tuple2[]; (a0: T0[], a1: T1[], a2: T2[]): Tuple3[]; (a0: T0[], a1: T1[], a2: T2[], a3: T3[]): Tuple4[]; (...arrays: any[][]): any[][]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >zip : { (a0: T0[], a1: T1[]): Tuple2[]; (a0: T0[], a1: T1[], a2: T2[]): Tuple3[]; (a0: T0[], a1: T1[], a2: T2[], a3: T3[]): Tuple4[]; (...arrays: any[][]): any[][]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >['moe', 'larry', 'curly'] : string[] > : ^^^^^^^^ >'moe' : "moe" @@ -1307,11 +1307,11 @@ _.indexOf([1, 2, 3], 2); >_.indexOf([1, 2, 3], 2) : number > : ^^^^^^ >_.indexOf : (list: T[], value: T, isSorted?: boolean) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >indexOf : (list: T[], value: T, isSorted?: boolean) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -1327,11 +1327,11 @@ _.lastIndexOf([1, 2, 3, 1, 2, 3], 2); >_.lastIndexOf([1, 2, 3, 1, 2, 3], 2) : number > : ^^^^^^ >_.lastIndexOf : (list: T[], value: T, fromIndex?: number) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >lastIndexOf : (list: T[], value: T, fromIndex?: number) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >[1, 2, 3, 1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -1353,11 +1353,11 @@ _.sortedIndex([10, 20, 30, 40, 50], 35); >_.sortedIndex([10, 20, 30, 40, 50], 35) : number > : ^^^^^^ >_.sortedIndex : { (list: T[], obj: T, propertyName: string): number; (list: T[], obj: T, iterator?: Iterator_, context?: any): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >sortedIndex : { (list: T[], obj: T, propertyName: string): number; (list: T[], obj: T, iterator?: Iterator_, context?: any): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >[10, 20, 30, 40, 50] : number[] > : ^^^^^^^^ >10 : 10 @@ -1475,11 +1475,11 @@ var func2 = _.bind(func, { name: 'moe' }, 'hi'); >_.bind(func, { name: 'moe' }, 'hi') : Function > : ^^^^^^^^ >_.bind : { (func: T, object: any): T; (func: Function, object: any, ...args: any[]): Function; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >bind : { (func: T, object: any): T; (func: Function, object: any, ...args: any[]): Function; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >func : (greeting: any) => string > : ^ ^^^^^^^^^^^^^^^^ >{ name: 'moe' } : { name: string; } @@ -1554,11 +1554,11 @@ _.bindAll(buttonView); >_.bindAll(buttonView) : { label: string; onClick: () => void; onHover: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.bindAll : (object: T, ...methodNames: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >bindAll : (object: T, ...methodNames: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >buttonView : { label: string; onClick: () => void; onHover: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -1590,11 +1590,11 @@ var fibonacci = _.memoize(function (n) { >_.memoize(function (n) { return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);}) : (n: any) => any > : ^ ^^^^^^^^^^^^^ >_.memoize : (func: T, hashFunction?: Function) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >memoize : (func: T, hashFunction?: Function) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >function (n) { return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2);} : (n: any) => any > : ^ ^^^^^^^^^^^^^ >n : any @@ -1642,11 +1642,11 @@ var log = _.bind((message?: string, ...rest: string[]) => { }, Date); >_.bind((message?: string, ...rest: string[]) => { }, Date) : (message?: string, ...rest: string[]) => void > : ^ ^^^ ^^^^^ ^^ ^^^^^^^^^ >_.bind : { (func: T, object: any): T; (func: Function, object: any, ...args: any[]): Function; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >bind : { (func: T, object: any): T; (func: Function, object: any, ...args: any[]): Function; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >(message?: string, ...rest: string[]) => { } : (message?: string, ...rest: string[]) => void > : ^ ^^^ ^^^^^ ^^ ^^^^^^^^^ >message : string @@ -1708,11 +1708,11 @@ var throttled = _.throttle(updatePosition, 100); >_.throttle(updatePosition, 100) : () => void > : ^^^^^^^^^^ >_.throttle : (func: T, wait: number) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >throttle : (func: T, wait: number) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >updatePosition : () => void > : ^^^^^^^^^^ >100 : 100 @@ -1750,11 +1750,11 @@ var lazyLayout = _.debounce(calculateLayout, 300); >_.debounce(calculateLayout, 300) : () => void > : ^^^^^^^^^^ >_.debounce : (func: T, wait: number, immediate?: boolean) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >debounce : (func: T, wait: number, immediate?: boolean) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >calculateLayout : () => void > : ^^^^^^^^^^ >300 : 300 @@ -1792,11 +1792,11 @@ var initialize = _.once(createApplication); >_.once(createApplication) : () => void > : ^^^^^^^^^^ >_.once : (func: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >once : (func: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >createApplication : () => void > : ^^^^^^^^^^ @@ -1834,11 +1834,11 @@ var renderNotes = _.after(notes.length, render); >_.after(notes.length, render) : () => void > : ^^^^^^^^^^ >_.after : (count: number, func: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >after : (count: number, func: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >notes.length : number > : ^^^^^^ >notes : any[] @@ -1852,11 +1852,11 @@ _.each(notes, (note) => note.asyncSave({ success: renderNotes })); >_.each(notes, (note) => note.asyncSave({ success: renderNotes })) : void > : ^^^^ >_.each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >notes : any[] > : ^^^^^ >(note) => note.asyncSave({ success: renderNotes }) : (note: any) => any @@ -1900,11 +1900,11 @@ hello = _.wrap(hello, (func, arg) => { return "before, " + func(arg) + ", after" >_.wrap(hello, (func, arg) => { return "before, " + func(arg) + ", after"; }) : (name: any) => string > : ^ ^^^^^^^^^^^^^^^^ >_.wrap : (func: T, wrapper: (func: T, ...args: any[]) => any) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >wrap : (func: T, wrapper: (func: T, ...args: any[]) => any) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >hello : (name: any) => string > : ^ ^^^^^^^^^^^^^^^^ >(func, arg) => { return "before, " + func(arg) + ", after"; } : (func: (name: any) => string, arg: any) => string @@ -2102,11 +2102,11 @@ _.extend({ name: 'moe' }, { age: 50 }); >_.extend({ name: 'moe' }, { age: 50 }) : { name: string; } > : ^^^^^^^^^^^^^^^^^ >_.extend : (destination: T, ...sources: any[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >extend : (destination: T, ...sources: any[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >{ name: 'moe' } : { name: string; } > : ^^^^^^^^^^^^^^^^^ >name : string @@ -2124,11 +2124,11 @@ _.pick({ name: 'moe', age: 50, userid: 'moe1' }, 'name', 'age'); >_.pick({ name: 'moe', age: 50, userid: 'moe1' }, 'name', 'age') : { name: string; age: number; userid: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.pick : (object: T, ...keys: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >pick : (object: T, ...keys: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >{ name: 'moe', age: 50, userid: 'moe1' } : { name: string; age: number; userid: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -2152,11 +2152,11 @@ _.omit({ name: 'moe', age: 50, userid: 'moe1' }, 'userid'); >_.omit({ name: 'moe', age: 50, userid: 'moe1' }, 'userid') : { name: string; age: number; userid: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.omit : (object: T, ...keys: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >omit : (object: T, ...keys: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >{ name: 'moe', age: 50, userid: 'moe1' } : { name: string; age: number; userid: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >name : string @@ -2188,11 +2188,11 @@ _.defaults(iceCream, { flavor: "vanilla", sprinkles: "lots" }); >_.defaults(iceCream, { flavor: "vanilla", sprinkles: "lots" }) : { flavor: string; } > : ^^^^^^^^^^^^^^^^^^^ >_.defaults : (object: T, ...defaults: any[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >defaults : (object: T, ...defaults: any[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >iceCream : { flavor: string; } > : ^^^^^^^^^^^^^^^^^^^ >{ flavor: "vanilla", sprinkles: "lots" } : { flavor: string; sprinkles: string; } @@ -2210,11 +2210,11 @@ _.clone({ name: 'moe' }); >_.clone({ name: 'moe' }) : { name: string; } > : ^^^^^^^^^^^^^^^^^ >_.clone : (object: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >clone : (object: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ name: 'moe' } : { name: string; } > : ^^^^^^^^^^^^^^^^^ >name : string @@ -2226,7 +2226,7 @@ _.chain([1, 2, 3, 200]) >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) .tap(alert) .map(function (num) { return num * num }) .value() : number[] > : ^^^^^^^^ >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) .tap(alert) .map(function (num) { return num * num }) .value : () => number[] -> : ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) .tap(alert) .map(function (num) { return num * num }) : Underscore.ChainedArray > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) .tap(alert) .map : (iterator: Iterator_, context?: any) => Underscore.ChainedArray @@ -2234,19 +2234,19 @@ _.chain([1, 2, 3, 200]) >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) .tap(alert) : Underscore.ChainedArray > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) .tap : (interceptor: (object: number[]) => void) => Underscore.ChainedArray -> : ^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) : Underscore.ChainedArray > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.chain([1, 2, 3, 200]) .filter : (iterator: Iterator_, context?: any) => Underscore.ChainedArray -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.chain([1, 2, 3, 200]) : Underscore.ChainedArray > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.chain : { (list: T[]): Underscore.ChainedArray; (list: Dictionary): Underscore.ChainedDictionary; (obj: T): Underscore.ChainedObject; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >chain : { (list: T[]): Underscore.ChainedArray; (list: Dictionary): Underscore.ChainedDictionary; (obj: T): Underscore.ChainedObject; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ >[1, 2, 3, 200] : number[] > : ^^^^^^^^ >1 : 1 @@ -2260,7 +2260,7 @@ _.chain([1, 2, 3, 200]) .filter(function (num) { return num % 2 == 0; }) >filter : (iterator: Iterator_, context?: any) => Underscore.ChainedArray -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >function (num) { return num % 2 == 0; } : (num: number) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >num : number @@ -2278,7 +2278,7 @@ _.chain([1, 2, 3, 200]) .tap(alert) >tap : (interceptor: (object: number[]) => void) => Underscore.ChainedArray -> : ^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >alert : any > : ^^^ >alert : { (message?: any): void; (x: string): void; } @@ -2300,7 +2300,7 @@ _.chain([1, 2, 3, 200]) .value(); >value : () => number[] -> : ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ _.has({ a: 1, b: 2, c: 3 }, "b"); >_.has({ a: 1, b: 2, c: 3 }, "b") : boolean @@ -2380,11 +2380,11 @@ _.isEqual(moe, clone); >_.isEqual(moe, clone) : boolean > : ^^^^^^^ >_.isEqual : (object: T, other: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >isEqual : (object: T, other: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >moe : { name: string; luckyNumbers: number[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >clone : { name: string; luckyNumbers: number[]; } @@ -2728,11 +2728,11 @@ moe2 === _.identity(moe); >_.identity(moe) : { name: string; luckyNumbers: number[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >_.identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >moe : { name: string; luckyNumbers: number[]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2744,11 +2744,11 @@ _.times(3, function (n) { genie.grantWishNumber(n); }); >_.times(3, function (n) { genie.grantWishNumber(n); }) : void[] > : ^^^^^^ >_.times : (n: number, iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >_ : Underscore.Static > : ^^^^^^^^^^^^^^^^^ >times : (n: number, iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >3 : 3 > : ^ >function (n) { genie.grantWishNumber(n); } : (n: number) => void @@ -3411,7 +3411,7 @@ module Underscore { map(iterator: Iterator_, context?: any): U[]; >map : (iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -3419,7 +3419,7 @@ module Underscore { collect(iterator: Iterator_, context?: any): U[]; >collect : (iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -3427,7 +3427,7 @@ module Underscore { reduce(iterator: Reducer, initialValue?: T, context?: any): T; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -3437,7 +3437,7 @@ module Underscore { reduce(iterator: Reducer, initialValue: U, context?: any): U; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -3447,7 +3447,7 @@ module Underscore { foldl(iterator: Reducer, initialValue?: T, context?: any): T; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -3457,7 +3457,7 @@ module Underscore { foldl(iterator: Reducer, initialValue: U, context?: any): U; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -3467,7 +3467,7 @@ module Underscore { inject(iterator: Reducer, initialValue?: T, context?: any): T; >inject : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -3477,7 +3477,7 @@ module Underscore { inject(iterator: Reducer, initialValue: U, context?: any): U; >inject : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -3487,7 +3487,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue?: T, context?: any): T; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -3497,7 +3497,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue: U, context?: any): U; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -3507,7 +3507,7 @@ module Underscore { foldr(iterator: Reducer, initialValue?: T, context?: any): T; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -3517,7 +3517,7 @@ module Underscore { foldr(iterator: Reducer, initialValue: U, context?: any): U; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -3767,7 +3767,7 @@ module Underscore { flatten(shallow?: boolean): U[]; >flatten : (shallow?: boolean) => U[] -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >shallow : boolean > : ^^^^^^^ @@ -3797,13 +3797,13 @@ module Underscore { uniq(isSorted?: boolean): T[]; >uniq : { (isSorted?: boolean): T[]; (isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ uniq(isSorted: boolean, iterator: Iterator_, context?: any): U[]; >uniq : { (isSorted?: boolean): T[]; (isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ >iterator : Iterator_ @@ -3813,13 +3813,13 @@ module Underscore { unique(isSorted?: boolean): T[]; >unique : { (isSorted?: boolean): T[]; (isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ unique(isSorted: boolean, iterator: Iterator_, context?: any): U[]; >unique : { (isSorted?: boolean): T[]; (isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ >iterator : Iterator_ @@ -3968,7 +3968,7 @@ module Underscore { map(iterator: Iterator_, context?: any): U[]; >map : (iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -3976,7 +3976,7 @@ module Underscore { collect(iterator: Iterator_, context?: any): U[]; >collect : (iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -3984,7 +3984,7 @@ module Underscore { reduce(iterator: Reducer, initialValue?: T, context?: any): T; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -3994,7 +3994,7 @@ module Underscore { reduce(iterator: Reducer, initialValue: U, context?: any): U; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4004,7 +4004,7 @@ module Underscore { foldl(iterator: Reducer, initialValue?: T, context?: any): T; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4014,7 +4014,7 @@ module Underscore { foldl(iterator: Reducer, initialValue: U, context?: any): U; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4024,7 +4024,7 @@ module Underscore { inject(iterator: Reducer, initialValue?: T, context?: any): T; >inject : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4034,7 +4034,7 @@ module Underscore { inject(iterator: Reducer, initialValue: U, context?: any): U; >inject : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4044,7 +4044,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue?: T, context?: any): T; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4054,7 +4054,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue: U, context?: any): U; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4064,7 +4064,7 @@ module Underscore { foldr(iterator: Reducer, initialValue?: T, context?: any): T; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4074,7 +4074,7 @@ module Underscore { foldr(iterator: Reducer, initialValue: U, context?: any): U; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): T; (iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4420,7 +4420,7 @@ module Underscore { map(iterator: Iterator_, context?: any): ChainedArray; >map : (iterator: Iterator_, context?: any) => ChainedArray -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -4428,7 +4428,7 @@ module Underscore { collect(iterator: Iterator_, context?: any): ChainedArray; >collect : (iterator: Iterator_, context?: any) => ChainedArray -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -4436,7 +4436,7 @@ module Underscore { reduce(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4446,7 +4446,7 @@ module Underscore { reduce(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4456,7 +4456,7 @@ module Underscore { foldl(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4466,7 +4466,7 @@ module Underscore { foldl(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4476,7 +4476,7 @@ module Underscore { inject(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >inject : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4486,7 +4486,7 @@ module Underscore { inject(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >inject : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4496,7 +4496,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4506,7 +4506,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4516,7 +4516,7 @@ module Underscore { foldr(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -4526,7 +4526,7 @@ module Underscore { foldr(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -4777,7 +4777,7 @@ module Underscore { flatten(shallow?: boolean): ChainedArray; >flatten : (shallow?: boolean) => ChainedArray -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >shallow : boolean > : ^^^^^^^ @@ -4807,13 +4807,13 @@ module Underscore { uniq(isSorted?: boolean): ChainedArray; >uniq : { (isSorted?: boolean): ChainedArray; (isSorted: boolean, iterator: Iterator_, context?: any): ChainedArray; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ uniq(isSorted: boolean, iterator: Iterator_, context?: any): ChainedArray; >uniq : { (isSorted?: boolean): ChainedArray; (isSorted: boolean, iterator: Iterator_, context?: any): ChainedArray; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ >iterator : Iterator_ @@ -4823,13 +4823,13 @@ module Underscore { unique(isSorted?: boolean): ChainedArray; >unique : { (isSorted?: boolean): ChainedArray; (isSorted: boolean, iterator: Iterator_, context?: any): ChainedArray; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ unique(isSorted: boolean, iterator: Iterator_, context?: any): ChainedArray; >unique : { (isSorted?: boolean): ChainedArray; (isSorted: boolean, iterator: Iterator_, context?: any): ChainedArray; } -> : ^^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >isSorted : boolean > : ^^^^^^^ >iterator : Iterator_ @@ -5015,7 +5015,7 @@ module Underscore { map(iterator: Iterator_, context?: any): ChainedArray; >map : (iterator: Iterator_, context?: any) => ChainedArray -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -5023,7 +5023,7 @@ module Underscore { collect(iterator: Iterator_, context?: any): ChainedArray; >collect : (iterator: Iterator_, context?: any) => ChainedArray -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >iterator : Iterator_ > : ^^^^^^^^^^^^^^^ >context : any @@ -5031,7 +5031,7 @@ module Underscore { reduce(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -5041,7 +5041,7 @@ module Underscore { reduce(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >reduce : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -5051,7 +5051,7 @@ module Underscore { foldl(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -5061,7 +5061,7 @@ module Underscore { foldl(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >foldl : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -5071,7 +5071,7 @@ module Underscore { inject(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >inject : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -5081,7 +5081,7 @@ module Underscore { inject(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >inject : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -5091,7 +5091,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -5101,7 +5101,7 @@ module Underscore { reduceRight(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >reduceRight : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -5111,7 +5111,7 @@ module Underscore { foldr(iterator: Reducer, initialValue?: T, context?: any): ChainedObject; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : T @@ -5121,7 +5121,7 @@ module Underscore { foldr(iterator: Reducer, initialValue: U, context?: any): ChainedObject; >foldr : { (iterator: Reducer, initialValue?: T, context?: any): ChainedObject; (iterator: Reducer, initialValue: U, context?: any): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >iterator : Reducer > : ^^^^^^^^^^^^^ >initialValue : U @@ -5385,25 +5385,25 @@ module Underscore { chain(list: T[]): ChainedArray; >chain : { (list: T[]): ChainedArray; (list: Dictionary): ChainedDictionary; (obj: T_1): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ chain(list: Dictionary): ChainedDictionary; >chain : { (list: T_1[]): ChainedArray; (list: Dictionary): ChainedDictionary; (obj: T_1): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ chain(obj: T): ChainedObject; >chain : { (list: T_1[]): ChainedArray; (list: Dictionary): ChainedDictionary; (obj: T): ChainedObject; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >obj : T > : ^ each(list: T[], iterator: Iterator_, context?: any): void; >each : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5413,7 +5413,7 @@ module Underscore { each(list: Dictionary, iterator: Iterator_, context?: any): void; >each : { (list: T_1[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5423,7 +5423,7 @@ module Underscore { forEach(list: T[], iterator: Iterator_, context?: any): void; >forEach : { (list: T[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5433,7 +5433,7 @@ module Underscore { forEach(list: Dictionary, iterator: Iterator_, context?: any): void; >forEach : { (list: T_1[], iterator: Iterator_, context?: any): void; (list: Dictionary, iterator: Iterator_, context?: any): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5443,7 +5443,7 @@ module Underscore { map(list: T[], iterator: Iterator_, context?: any): U[]; >map : { (list: T[], iterator: Iterator_, context?: any): U[]; (list: Dictionary, iterator: Iterator_, context?: any): U_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5453,7 +5453,7 @@ module Underscore { map(list: Dictionary, iterator: Iterator_, context?: any): U[]; >map : { (list: T_1[], iterator: Iterator_, context?: any): U_1[]; (list: Dictionary, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5463,7 +5463,7 @@ module Underscore { collect(list: T[], iterator: Iterator_, context?: any): U[]; >collect : { (list: T[], iterator: Iterator_, context?: any): U[]; (list: Dictionary, iterator: Iterator_, context?: any): U_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5473,7 +5473,7 @@ module Underscore { collect(list: Dictionary, iterator: Iterator_, context?: any): U[]; >collect : { (list: T_1[], iterator: Iterator_, context?: any): U_1[]; (list: Dictionary, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5483,7 +5483,7 @@ module Underscore { reduce(list: T[], iterator: Reducer, initialValue?: T, context?: any): T; >reduce : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5495,7 +5495,7 @@ module Underscore { reduce(list: T[], iterator: Reducer, initialValue: U, context?: any): U; >reduce : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U_1, context?: any): U_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5507,7 +5507,7 @@ module Underscore { reduce(list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; >reduce : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5519,7 +5519,7 @@ module Underscore { reduce(list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; >reduce : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U_1, context?: any): U_1; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5531,7 +5531,7 @@ module Underscore { foldl(list: T[], iterator: Reducer, initialValue?: T, context?: any): T; >foldl : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5543,7 +5543,7 @@ module Underscore { foldl(list: T[], iterator: Reducer, initialValue: U, context?: any): U; >foldl : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U_1, context?: any): U_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5555,7 +5555,7 @@ module Underscore { foldl(list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; >foldl : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5567,7 +5567,7 @@ module Underscore { foldl(list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; >foldl : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U_1, context?: any): U_1; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5579,7 +5579,7 @@ module Underscore { inject(list: T[], iterator: Reducer, initialValue?: T, context?: any): T; >inject : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5591,7 +5591,7 @@ module Underscore { inject(list: T[], iterator: Reducer, initialValue: U, context?: any): U; >inject : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U_1, context?: any): U_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5603,7 +5603,7 @@ module Underscore { inject(list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; >inject : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5615,7 +5615,7 @@ module Underscore { inject(list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; >inject : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U_1, context?: any): U_1; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5627,7 +5627,7 @@ module Underscore { reduceRight(list: T[], iterator: Reducer, initialValue?: T, context?: any): T; >reduceRight : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5639,7 +5639,7 @@ module Underscore { reduceRight(list: T[], iterator: Reducer, initialValue: U, context?: any): U; >reduceRight : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U_1, context?: any): U_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5651,7 +5651,7 @@ module Underscore { reduceRight(list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; >reduceRight : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5663,7 +5663,7 @@ module Underscore { reduceRight(list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; >reduceRight : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U_1, context?: any): U_1; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5675,7 +5675,7 @@ module Underscore { foldr(list: T[], iterator: Reducer, initialValue?: T, context?: any): T; >foldr : { (list: T[], iterator: Reducer, initialValue?: T, context?: any): T; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5687,7 +5687,7 @@ module Underscore { foldr(list: T[], iterator: Reducer, initialValue: U, context?: any): U; >foldr : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U_1, context?: any): U_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Reducer @@ -5699,7 +5699,7 @@ module Underscore { foldr(list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; >foldr : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U, context?: any): U; (list: Dictionary, iterator: Reducer, initialValue?: T, context?: any): T; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5711,7 +5711,7 @@ module Underscore { foldr(list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; >foldr : { (list: T_1[], iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: T_1[], iterator: Reducer, initialValue: U_1, context?: any): U_1; (list: Dictionary, iterator: Reducer, initialValue?: T_1, context?: any): T_1; (list: Dictionary, iterator: Reducer, initialValue: U, context?: any): U; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Reducer @@ -5723,7 +5723,7 @@ module Underscore { find(list: T[], iterator: Iterator_, context?: any): T; >find : { (list: T[], iterator: Iterator_, context?: any): T; (list: Dictionary, iterator: Iterator_, context?: any): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5733,7 +5733,7 @@ module Underscore { find(list: Dictionary, iterator: Iterator_, context?: any): T; >find : { (list: T_1[], iterator: Iterator_, context?: any): T_1; (list: Dictionary, iterator: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5743,7 +5743,7 @@ module Underscore { detect(list: T[], iterator: Iterator_, context?: any): T; >detect : { (list: T[], iterator: Iterator_, context?: any): T; (list: Dictionary, iterator: Iterator_, context?: any): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5753,7 +5753,7 @@ module Underscore { detect(list: Dictionary, iterator: Iterator_, context?: any): T; >detect : { (list: T_1[], iterator: Iterator_, context?: any): T_1; (list: Dictionary, iterator: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5763,7 +5763,7 @@ module Underscore { filter(list: T[], iterator: Iterator_, context?: any): T[]; >filter : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5773,7 +5773,7 @@ module Underscore { filter(list: Dictionary, iterator: Iterator_, context?: any): T[]; >filter : { (list: T_1[], iterator: Iterator_, context?: any): T_1[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5783,7 +5783,7 @@ module Underscore { select(list: T[], iterator: Iterator_, context?: any): T[]; >select : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5793,7 +5793,7 @@ module Underscore { select(list: Dictionary, iterator: Iterator_, context?: any): T[]; >select : { (list: T_1[], iterator: Iterator_, context?: any): T_1[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5803,7 +5803,7 @@ module Underscore { where(list: T[], properties: Object): T[]; >where : { (list: T[], properties: Object): T[]; (list: Dictionary, properties: Object): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >properties : Object @@ -5811,7 +5811,7 @@ module Underscore { where(list: Dictionary, properties: Object): T[]; >where : { (list: T_1[], properties: Object): T_1[]; (list: Dictionary, properties: Object): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >properties : Object @@ -5819,7 +5819,7 @@ module Underscore { findWhere(list: T[], properties: Object): T; >findWhere : { (list: T[], properties: Object): T; (list: Dictionary, properties: Object): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >properties : Object @@ -5827,7 +5827,7 @@ module Underscore { findWhere(list: Dictionary, properties: Object): T; >findWhere : { (list: T_1[], properties: Object): T_1; (list: Dictionary, properties: Object): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >properties : Object @@ -5835,7 +5835,7 @@ module Underscore { reject(list: T[], iterator: Iterator_, context?: any): T[]; >reject : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5845,7 +5845,7 @@ module Underscore { reject(list: Dictionary, iterator: Iterator_, context?: any): T[]; >reject : { (list: T_1[], iterator: Iterator_, context?: any): T_1[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5855,7 +5855,7 @@ module Underscore { every(list: T[], iterator?: Iterator_, context?: any): boolean; >every : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5865,7 +5865,7 @@ module Underscore { every(list: Dictionary, iterator?: Iterator_, context?: any): boolean; >every : { (list: T_1[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5875,7 +5875,7 @@ module Underscore { all(list: T[], iterator?: Iterator_, context?: any): boolean; >all : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5885,7 +5885,7 @@ module Underscore { all(list: Dictionary, iterator?: Iterator_, context?: any): boolean; >all : { (list: T_1[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5895,7 +5895,7 @@ module Underscore { some(list: T[], iterator?: Iterator_, context?: any): boolean; >some : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5905,7 +5905,7 @@ module Underscore { some(list: Dictionary, iterator?: Iterator_, context?: any): boolean; >some : { (list: T_1[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5915,7 +5915,7 @@ module Underscore { any(list: T[], iterator?: Iterator_, context?: any): boolean; >any : { (list: T[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -5925,7 +5925,7 @@ module Underscore { any(list: Dictionary, iterator?: Iterator_, context?: any): boolean; >any : { (list: T_1[], iterator?: Iterator_, context?: any): boolean; (list: Dictionary, iterator?: Iterator_, context?: any): boolean; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -5935,7 +5935,7 @@ module Underscore { contains(list: T[], value: T): boolean; >contains : { (list: T[], value: T): boolean; (list: Dictionary, value: T_1): boolean; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >value : T @@ -5943,7 +5943,7 @@ module Underscore { contains(list: Dictionary, value: T): boolean; >contains : { (list: T_1[], value: T_1): boolean; (list: Dictionary, value: T): boolean; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >value : T @@ -5951,7 +5951,7 @@ module Underscore { include(list: T[], value: T): boolean; >include : { (list: T[], value: T): boolean; (list: Dictionary, value: T_1): boolean; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >value : T @@ -5959,7 +5959,7 @@ module Underscore { include(list: Dictionary, value: T): boolean; >include : { (list: T_1[], value: T_1): boolean; (list: Dictionary, value: T): boolean; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >value : T @@ -6003,7 +6003,7 @@ module Underscore { max(list: T[], iterator?: Iterator_, context?: any): T; >max : { (list: T[], iterator?: Iterator_, context?: any): T; (list: Dictionary, iterator?: Iterator_, context?: any): T_1; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -6013,7 +6013,7 @@ module Underscore { max(list: Dictionary, iterator?: Iterator_, context?: any): T; >max : { (list: T_1[], iterator?: Iterator_, context?: any): T_1; (list: Dictionary, iterator?: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -6023,7 +6023,7 @@ module Underscore { min(list: T[], iterator?: Iterator_, context?: any): T; >min : { (list: T[], iterator?: Iterator_, context?: any): T; (list: Dictionary, iterator?: Iterator_, context?: any): T_1; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -6033,7 +6033,7 @@ module Underscore { min(list: Dictionary, iterator?: Iterator_, context?: any): T; >min : { (list: T_1[], iterator?: Iterator_, context?: any): T_1; (list: Dictionary, iterator?: Iterator_, context?: any): T; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -6043,7 +6043,7 @@ module Underscore { sortBy(list: T[], iterator: Iterator_, context?: any): T[]; >sortBy : { (list: T[], iterator: Iterator_, context?: any): T[]; (list: Dictionary, iterator: Iterator_, context?: any): T_1[]; (list: T_1[], propertyName: string): T_1[]; (list: Dictionary, propertyName: string): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -6053,7 +6053,7 @@ module Underscore { sortBy(list: Dictionary, iterator: Iterator_, context?: any): T[]; >sortBy : { (list: T_1[], iterator: Iterator_, context?: any): T_1[]; (list: Dictionary, iterator: Iterator_, context?: any): T[]; (list: T_1[], propertyName: string): T_1[]; (list: Dictionary, propertyName: string): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -6063,7 +6063,7 @@ module Underscore { sortBy(list: T[], propertyName: string): T[]; >sortBy : { (list: T_1[], iterator: Iterator_, context?: any): T_1[]; (list: Dictionary, iterator: Iterator_, context?: any): T_1[]; (list: T[], propertyName: string): T[]; (list: Dictionary, propertyName: string): T_1[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >propertyName : string @@ -6071,7 +6071,7 @@ module Underscore { sortBy(list: Dictionary, propertyName: string): T[]; >sortBy : { (list: T_1[], iterator: Iterator_, context?: any): T_1[]; (list: Dictionary, iterator: Iterator_, context?: any): T_1[]; (list: T_1[], propertyName: string): T_1[]; (list: Dictionary, propertyName: string): T[]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >propertyName : string @@ -6079,7 +6079,7 @@ module Underscore { groupBy(list: T[], iterator?: Iterator_, context?: any): Dictionary; >groupBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T_1[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -6089,7 +6089,7 @@ module Underscore { groupBy(list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; >groupBy : { (list: T_1[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T_1[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -6099,7 +6099,7 @@ module Underscore { groupBy(list: T[], propertyName: string): Dictionary; >groupBy : { (list: T_1[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >propertyName : string @@ -6107,7 +6107,7 @@ module Underscore { groupBy(list: Dictionary, propertyName: string): Dictionary; >groupBy : { (list: T_1[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T_1[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >propertyName : string @@ -6115,7 +6115,7 @@ module Underscore { countBy(list: T[], iterator?: Iterator_, context?: any): Dictionary; >countBy : { (list: T[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T_1[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >iterator : Iterator_ @@ -6125,7 +6125,7 @@ module Underscore { countBy(list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; >countBy : { (list: T_1[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T_1[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >iterator : Iterator_ @@ -6135,7 +6135,7 @@ module Underscore { countBy(list: T[], propertyName: string): Dictionary; >countBy : { (list: T_1[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >propertyName : string @@ -6143,7 +6143,7 @@ module Underscore { countBy(list: Dictionary, propertyName: string): Dictionary; >countBy : { (list: T_1[], iterator?: Iterator_, context?: any): Dictionary; (list: Dictionary, iterator?: Iterator_, context?: any): Dictionary; (list: T_1[], propertyName: string): Dictionary; (list: Dictionary, propertyName: string): Dictionary; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ >propertyName : string @@ -6151,49 +6151,49 @@ module Underscore { shuffle(list: T[]): T[]; >shuffle : { (list: T[]): T[]; (list: Dictionary): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ shuffle(list: Dictionary): T[]; >shuffle : { (list: T_1[]): T_1[]; (list: Dictionary): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ toArray(list: T[]): T[]; >toArray : { (list: T[]): T[]; (list: Dictionary): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ toArray(list: Dictionary): T[]; >toArray : { (list: T_1[]): T_1[]; (list: Dictionary): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ size(list: T[]): number; >size : { (list: T[]): number; (list: Dictionary): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ size(list: Dictionary): number; >size : { (list: T_1[]): number; (list: Dictionary): number; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >list : Dictionary > : ^^^^^^^^^^^^^ first(list: T[]): T; >first : { (list: T[]): T; (list: T_1[], count: number): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ first(list: T[], count: number): T[]; >first : { (list: T_1[]): T_1; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >count : number @@ -6201,13 +6201,13 @@ module Underscore { head(list: T[]): T; >head : { (list: T[]): T; (list: T_1[], count: number): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ head(list: T[], count: number): T[]; >head : { (list: T_1[]): T_1; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >count : number @@ -6215,13 +6215,13 @@ module Underscore { take(list: T[]): T; >take : { (list: T[]): T; (list: T_1[], count: number): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ take(list: T[], count: number): T[]; >take : { (list: T_1[]): T_1; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >count : number @@ -6229,13 +6229,13 @@ module Underscore { initial(list: T[]): T; >initial : { (list: T[]): T; (list: T_1[], count: number): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ initial(list: T[], count: number): T[]; >initial : { (list: T_1[]): T_1; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >count : number @@ -6243,13 +6243,13 @@ module Underscore { last(list: T[]): T; >last : { (list: T[]): T; (list: T_1[], count: number): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ last(list: T[], count: number): T[]; >last : { (list: T_1[]): T_1; (list: T[], count: number): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >list : T[] > : ^^^ >count : number @@ -6257,7 +6257,7 @@ module Underscore { rest(list: T[], index?: number): T[]; >rest : (list: T[], index?: number) => T[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >list : T[] > : ^^^ >index : number @@ -6265,19 +6265,19 @@ module Underscore { compact(list: T[]): T[]; >compact : (list: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >list : T[] > : ^^^ flatten(list: T[][]): T[]; >flatten : { (list: T[][]): T[]; (array: any[], shallow?: boolean): T_1[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[][] > : ^^^^^ flatten(array: any[], shallow?: boolean): T[]; >flatten : { (list: T_1[][]): T_1[]; (array: any[], shallow?: boolean): T[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >array : any[] > : ^^^^^ >shallow : boolean @@ -6285,7 +6285,7 @@ module Underscore { without(list: T[], ...values: T[]): T[]; >without : (list: T[], ...values: T[]) => T[] -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >list : T[] > : ^^^ >values : T[] @@ -6293,19 +6293,19 @@ module Underscore { union(...arrays: T[][]): T[]; >union : (...arrays: T[][]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >arrays : T[][] > : ^^^^^ intersection(...arrays: T[][]): T[]; >intersection : (...arrays: T[][]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >arrays : T[][] > : ^^^^^ difference(list: T[], ...others: T[][]): T[]; >difference : (list: T[], ...others: T[][]) => T[] -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >list : T[] > : ^^^ >others : T[][] @@ -6313,7 +6313,7 @@ module Underscore { uniq(list: T[], isSorted?: boolean): T[]; >uniq : { (list: T[], isSorted?: boolean): T[]; (list: T_1[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >isSorted : boolean @@ -6321,7 +6321,7 @@ module Underscore { uniq(list: T[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; >uniq : { (list: T_1[], isSorted?: boolean): T_1[]; (list: T[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >isSorted : boolean @@ -6333,7 +6333,7 @@ module Underscore { unique(list: T[], isSorted?: boolean): T[]; >unique : { (list: T[], isSorted?: boolean): T[]; (list: T_1[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >isSorted : boolean @@ -6341,7 +6341,7 @@ module Underscore { unique(list: T[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; >unique : { (list: T_1[], isSorted?: boolean): T_1[]; (list: T[], isSorted: boolean, iterator: Iterator_, context?: any): U[]; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >isSorted : boolean @@ -6353,7 +6353,7 @@ module Underscore { zip(a0: T0[], a1: T1[]): Tuple2[]; >zip : { (a0: T0[], a1: T1[]): Tuple2[]; (a0: T0_1[], a1: T1_1[], a2: T2[]): Tuple3[]; (a0: T0_1[], a1: T1_1[], a2: T2[], a3: T3[]): Tuple4[]; (...arrays: any[][]): any[][]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a0 : T0[] > : ^^^^ >a1 : T1[] @@ -6361,7 +6361,7 @@ module Underscore { zip(a0: T0[], a1: T1[], a2: T2[]): Tuple3[]; >zip : { (a0: T0_1[], a1: T1_1[]): Tuple2[]; (a0: T0[], a1: T1[], a2: T2[]): Tuple3[]; (a0: T0_1[], a1: T1_1[], a2: T2_1[], a3: T3[]): Tuple4[]; (...arrays: any[][]): any[][]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a0 : T0[] > : ^^^^ >a1 : T1[] @@ -6371,7 +6371,7 @@ module Underscore { zip(a0: T0[], a1: T1[], a2: T2[], a3: T3[]): Tuple4[]; >zip : { (a0: T0_1[], a1: T1_1[]): Tuple2[]; (a0: T0_1[], a1: T1_1[], a2: T2_1[]): Tuple3[]; (a0: T0[], a1: T1[], a2: T2[], a3: T3[]): Tuple4[]; (...arrays: any[][]): any[][]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >a0 : T0[] > : ^^^^ >a1 : T1[] @@ -6383,7 +6383,7 @@ module Underscore { zip(...arrays: any[][]): any[][]; >zip : { (a0: T0[], a1: T1[]): Tuple2[]; (a0: T0[], a1: T1[], a2: T2[]): Tuple3[]; (a0: T0[], a1: T1[], a2: T2[], a3: T3[]): Tuple4[]; (...arrays: any[][]): any[][]; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >arrays : any[][] > : ^^^^^^^ @@ -6403,7 +6403,7 @@ module Underscore { indexOf(list: T[], value: T, isSorted?: boolean): number; >indexOf : (list: T[], value: T, isSorted?: boolean) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >list : T[] > : ^^^ >value : T @@ -6413,7 +6413,7 @@ module Underscore { lastIndexOf(list: T[], value: T, fromIndex?: number): number; >lastIndexOf : (list: T[], value: T, fromIndex?: number) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >list : T[] > : ^^^ >value : T @@ -6423,7 +6423,7 @@ module Underscore { sortedIndex(list: T[], obj: T, propertyName: string): number; >sortedIndex : { (list: T[], obj: T, propertyName: string): number; (list: T_1[], obj: T_1, iterator?: Iterator_, context?: any): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >obj : T @@ -6433,7 +6433,7 @@ module Underscore { sortedIndex(list: T[], obj: T, iterator?: Iterator_, context?: any): number; >sortedIndex : { (list: T_1[], obj: T_1, propertyName: string): number; (list: T[], obj: T, iterator?: Iterator_, context?: any): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >list : T[] > : ^^^ >obj : T @@ -6461,7 +6461,7 @@ module Underscore { bind(func: T, object: any): T; >bind : { (func: T, object: any): T; (func: Function, object: any, ...args: any[]): Function; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >func : T > : ^ >object : any @@ -6469,7 +6469,7 @@ module Underscore { bind(func: Function, object: any, ...args: any[]): Function; >bind : { (func: T, object: any): T; (func: Function, object: any, ...args: any[]): Function; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >func : Function > : ^^^^^^^^ >object : any @@ -6479,7 +6479,7 @@ module Underscore { bindAll(object: T, ...methodNames: string[]): T; >bindAll : (object: T, ...methodNames: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >object : T > : ^ >methodNames : string[] @@ -6495,7 +6495,7 @@ module Underscore { memoize(func: T, hashFunction?: Function): T; >memoize : (func: T, hashFunction?: Function) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ >func : T > : ^ >hashFunction : Function @@ -6521,7 +6521,7 @@ module Underscore { throttle(func: T, wait: number): T; >throttle : (func: T, wait: number) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >func : T > : ^ >wait : number @@ -6529,7 +6529,7 @@ module Underscore { debounce(func: T, wait: number, immediate?: boolean): T; >debounce : (func: T, wait: number, immediate?: boolean) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >func : T > : ^ >wait : number @@ -6539,13 +6539,13 @@ module Underscore { once(func: T): T; >once : (func: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >func : T > : ^ after(count: number, func: T): T; >after : (count: number, func: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >count : number > : ^^^^^^ >func : T @@ -6553,7 +6553,7 @@ module Underscore { wrap(func: T, wrapper: (func: T, ...args: any[]) => any): T; >wrap : (func: T, wrapper: (func: T, ...args: any[]) => any) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >func : T > : ^ >wrapper : (func: T, ...args: any[]) => any @@ -6607,7 +6607,7 @@ module Underscore { extend(destination: T, ...sources: any[]): T; >extend : (destination: T, ...sources: any[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >destination : T > : ^ >sources : any[] @@ -6615,7 +6615,7 @@ module Underscore { pick(object: T, ...keys: string[]): T; >pick : (object: T, ...keys: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >object : T > : ^ >keys : string[] @@ -6623,7 +6623,7 @@ module Underscore { omit(object: T, ...keys: string[]): T; >omit : (object: T, ...keys: string[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >object : T > : ^ >keys : string[] @@ -6631,7 +6631,7 @@ module Underscore { defaults(object: T, ...defaults: any[]): T; >defaults : (object: T, ...defaults: any[]) => T -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >object : T > : ^ >defaults : any[] @@ -6639,13 +6639,13 @@ module Underscore { clone(object: T): T; >clone : (object: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >object : T > : ^ tap(object: T, interceptor: (object: T) => void): T; >tap : (object: T, interceptor: (object: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >object : T > : ^ >interceptor : (object: T) => void @@ -6663,7 +6663,7 @@ module Underscore { isEqual(object: T, other: T): boolean; >isEqual : (object: T, other: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >object : T > : ^ >other : T @@ -6765,13 +6765,13 @@ module Underscore { identity(value: T): T; >identity : (value: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ times(n: number, iterator: Iterator_, context?: any): U[]; >times : (n: number, iterator: Iterator_, context?: any) => U[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >n : number > : ^^^^^^ >iterator : Iterator_ diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 73d4c2e8baf5f..5c8216a9e26d9 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -17,7 +17,7 @@ var y: Y = undefined; function destructure( >destructure : (something: a | Y, haveValue: (value: a) => r, haveY: (value: Y) => r) => r -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ something: a | Y, >something : Y | a @@ -91,7 +91,7 @@ var result = destructure(value, text => 'string', y => 'other one'); // text: st >destructure(value, text => 'string', y => 'other one') : string > : ^^^^^^ >destructure : (something: a | Y, haveValue: (value: a) => r, haveY: (value: Y) => r) => r -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : string | Y > : ^^^^^^^^^^ >text => 'string' : (text: string) => string @@ -111,7 +111,7 @@ var result = destructure(value, text => 'string', y => 'other one'); // text: st function isVoid(value: void | a): value is void { >isVoid : (value: void | a) => value is void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : void | a > : ^^^^^^^^ @@ -122,7 +122,7 @@ function isVoid(value: void | a): value is void { function isNonVoid(value: void | a) : value is a { >isNonVoid : (value: void | a) => value is a -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : void | a > : ^^^^^^^^ @@ -133,7 +133,7 @@ function isNonVoid(value: void | a) : value is a { function foo1(value: void|a): void { >foo1 : (value: void | a) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : void | a > : ^^^^^^^^ @@ -141,7 +141,7 @@ function foo1(value: void|a): void { >isVoid(value) : boolean > : ^^^^^^^ >isVoid : (value: void | a_1) => value is void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >value : void | a > : ^^^^^^^^ @@ -158,7 +158,7 @@ function foo1(value: void|a): void { function baz1(value: void|a): void { >baz1 : (value: void | a) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : void | a > : ^^^^^^^^ @@ -166,7 +166,7 @@ function baz1(value: void|a): void { >isNonVoid(value) : boolean > : ^^^^^^^ >isNonVoid : (value: void | a_1) => value is a_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >value : void | a > : ^^^^^^^^ @@ -189,7 +189,7 @@ type Maybe = T | void; function get(x: U | void): U { >get : (x: U | void) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : void | U > : ^^^^^^^^ @@ -208,7 +208,7 @@ get(foo).toUpperCase(); // Ok >get(foo) : string > : ^^^^^^ >get : (x: U | void) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : Maybe > : ^^^^^^^^^^^^^ >toUpperCase : () => string @@ -236,7 +236,7 @@ interface Pig { declare function pigify(y: T & Bear): T & Pig; >pigify : (y: T & Bear) => T & Pig -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : T & Bear > : ^^^^^^^^ @@ -250,7 +250,7 @@ pigify(mbp).oinks; // OK, mbp is treated as Pig >pigify(mbp) : Man & Pig > : ^^^^^^^^^ >pigify : (y: T & Bear) => T & Pig -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >mbp : Man & Bear > : ^^^^^^^^^^ >oinks : boolean @@ -262,7 +262,7 @@ pigify(mbp).walks; // Ok, mbp is treated as Man >pigify(mbp) : Man & Pig > : ^^^^^^^^^ >pigify : (y: T & Bear) => T & Pig -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >mbp : Man & Bear > : ^^^^^^^^^^ >walks : boolean @@ -288,11 +288,11 @@ const createTestAsync = (): Promise => Promise.resolve().then(() => ({ na >Promise.resolve() : Promise > : ^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >then : (onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >() => ({ name: 'test' }) : () => { name: "test"; } @@ -323,13 +323,13 @@ const createTest = (): ITest => { declare function f1(x: T | U): T | U; >f1 : (x: T | U) => T | U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T | U > : ^^^^^ declare function f2(x: T, y: U): T | U; >f2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -341,7 +341,7 @@ let x1: string = f1('a'); >f1('a') : "a" > : ^^^ >f1 : (x: T | U) => T | U -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >'a' : "a" > : ^^^ @@ -351,7 +351,7 @@ let x2: string = f2('a', 'b'); >f2('a', 'b') : "a" | "b" > : ^^^^^^^^^ >f2 : (x: T, y: U) => T | U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >'a' : "a" > : ^^^ >'b' : "b" @@ -367,9 +367,9 @@ const func = () => {}; const assign = (a: T, b: U) => Object.assign(a, b); >assign : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >(a: T, b: U) => Object.assign(a, b) : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >a : T > : ^ >b : U @@ -377,11 +377,11 @@ const assign = (a: T, b: U) => Object.assign(a, b); >Object.assign(a, b) : T & U > : ^^^^^ >Object.assign : { (target: T_1, source: U_1): T_1 & U_1; (target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; (target: T_1, source1: U_1, source2: V, source3: W): T_1 & U_1 & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >assign : { (target: T_1, source: U_1): T_1 & U_1; (target: T_1, source1: U_1, source2: V): T_1 & U_1 & V; (target: T_1, source1: U_1, source2: V, source3: W): T_1 & U_1 & V & W; (target: object, ...sources: any[]): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^ ^^ ^^^ ^^^ >a : T > : ^ >b : U @@ -394,7 +394,7 @@ const res: (() => void) & { func: any } = assign(() => {}, { func }); >assign(() => {}, { func }) : (() => void) & { func: () => void; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >assign : (a: T, b: U) => T & U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ >() => {} : () => void > : ^^^^^^^^^^ >{ func } : { func: () => void; } diff --git a/tests/baselines/reference/unionAndIntersectionInference2.types b/tests/baselines/reference/unionAndIntersectionInference2.types index f01926e990a79..88d471349a49d 100644 --- a/tests/baselines/reference/unionAndIntersectionInference2.types +++ b/tests/baselines/reference/unionAndIntersectionInference2.types @@ -3,7 +3,7 @@ === unionAndIntersectionInference2.ts === declare function f1(x: T | string): T; >f1 : (x: T | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | T > : ^^^^^^^^^^ @@ -33,7 +33,7 @@ f1(a1); // string >f1(a1) : string > : ^^^^^^ >f1 : (x: T | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a1 : string > : ^^^^^^ @@ -41,7 +41,7 @@ f1(b1); // string[] >f1(b1) : string[] > : ^^^^^^^^ >f1 : (x: T | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b1 : string | string[] > : ^^^^^^^^^^^^^^^^^ @@ -49,7 +49,7 @@ f1(c1); // string[] >f1(c1) : string[] > : ^^^^^^^^ >f1 : (x: T | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c1 : string | string[] > : ^^^^^^^^^^^^^^^^^ @@ -57,7 +57,7 @@ f1(d1); // { name: string } >f1(d1) : { name: string; } > : ^^^^^^^^ ^^^ >f1 : (x: T | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >d1 : string | { name: string; } > : ^^^^^^^^^^^^^^^^^ ^^^ @@ -65,13 +65,13 @@ f1(e1); // number | boolean >f1(e1) : number | boolean > : ^^^^^^^^^^^^^^^^ >f1 : (x: T | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >e1 : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ declare function f2(x: T & { name: string }): T; >f2 : (x: T & { name: string; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T & { name: string; } > : ^^^^^^^^^^^^ ^^^ >name : string @@ -107,7 +107,7 @@ f2(a2); // string >f2(a2) : string > : ^^^^^^ >f2 : (x: T & { name: string; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a2 : string & { name: string; } > : ^^^^^^^^^^^^^^^^^ ^^^ @@ -115,7 +115,7 @@ f2(b2); // string[] >f2(b2) : string[] > : ^^^^^^^^ >f2 : (x: T & { name: string; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : { name: string; } & string[] > : ^^^^^^^^ ^^^^^^^^^^^^^^ @@ -123,7 +123,7 @@ f2(c2); // never >f2(c2) : never > : ^^^^^ >f2 : (x: T & { name: string; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c2 : never > : ^^^^^ @@ -131,7 +131,7 @@ f2(d2); // never >f2(d2) : never > : ^^^^^ >f2 : (x: T & { name: string; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >d2 : never > : ^^^^^ diff --git a/tests/baselines/reference/unionAndIntersectionInference3.types b/tests/baselines/reference/unionAndIntersectionInference3.types index 04e874d083688..978a4c7e47057 100644 --- a/tests/baselines/reference/unionAndIntersectionInference3.types +++ b/tests/baselines/reference/unionAndIntersectionInference3.types @@ -13,7 +13,7 @@ type Maybe = T | undefined; declare function concatMaybe(...args: (Maybe | Maybe[])[]): T[]; >concatMaybe : (...args: (Maybe | Maybe[])[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >args : (Maybe | Maybe[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -21,7 +21,7 @@ concatMaybe([1, 2, 3], 4); >concatMaybe([1, 2, 3], 4) : number[] > : ^^^^^^^^ >concatMaybe : (...args: (Maybe | Maybe[])[]) => T[] -> : ^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -37,11 +37,11 @@ concatMaybe([1, 2, 3], 4); const g: (com: () => Iterator | AsyncIterator) => Promise = async (com: () => Iterator | AsyncIterator): Promise => { >g : (com: () => Iterator | AsyncIterator) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >com : () => Iterator | AsyncIterator > : ^^^^^^ >async (com: () => Iterator | AsyncIterator): Promise => { throw com;} : (com: () => Iterator | AsyncIterator) => Promise -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >com : () => Iterator | AsyncIterator > : ^^^^^^ @@ -69,31 +69,31 @@ interface Bar1 { declare let f1: (x: Foo1 | Bar1) => Promise; >f1 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Foo1 | Bar1 > : ^^^^^^^^^^^^^^^^^ declare let f2: (x: Foo1 | Bar1) => Promise; >f2 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Foo1 | Bar1 > : ^^^^^^^^^^^^^^^^^ f1 = f2; >f1 = f2 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f1 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f2 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ f2 = f1; >f2 = f1 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f2 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f1 : (x: Foo1 | Bar1) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type Foo2 = { >Foo2 : Foo2 @@ -119,43 +119,43 @@ type Bar2 = { declare let g1: (x: Foo2 | Bar2) => Promise; >g1 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Foo2 | Bar2 > : ^^^^^^^^^^^^^^^^^ declare let g2: (x: Foo2 | Bar2) => Promise; >g2 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Foo2 | Bar2 > : ^^^^^^^^^^^^^^^^^ g1 = g2; >g1 = g2 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g1 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g2 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ g2 = g1; >g2 = g1 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g2 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g1 : (x: Foo2 | Bar2) => Promise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ // Repro from #32572 declare function foo1(obj: string[] & Iterable): T; >foo1 : (obj: string[] & Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : string[] & Iterable > : ^^^^^^^^^^^^^^^^^^^^^^ declare function foo2(obj: string[] & T): T; >foo2 : (obj: string[] & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : string[] & T > : ^^^^^^^^^^^^ @@ -175,7 +175,7 @@ let x1 = foo1(sa); // string >foo1(sa) : string > : ^^^^^^ >foo1 : (obj: string[] & Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sa : string[] > : ^^^^^^^^ @@ -185,7 +185,7 @@ let y1 = foo1(sx); // string >foo1(sx) : string > : ^^^^^^ >foo1 : (obj: string[] & Iterable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sx : string[] & { extra: number; } > : ^^^^^^^^^^^^^^^^^^^^ ^^^ @@ -195,7 +195,7 @@ let x2 = foo2(sa); // unknown >foo2(sa) : unknown > : ^^^^^^^ >foo2 : (obj: string[] & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sa : string[] > : ^^^^^^^^ @@ -205,7 +205,7 @@ let y2 = foo2(sx); // { extra: number } >foo2(sx) : { extra: number; } > : ^^^^^^^^^ ^^^ >foo2 : (obj: string[] & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sx : string[] & { extra: number; } > : ^^^^^^^^^^^^^^^^^^^^ ^^^ @@ -239,7 +239,7 @@ export interface RouteComponentProps { route: string } declare function withRouter< >withRouter :

>(component: C & ComponentType

) => ComponentClass> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ P extends RouteComponentProps, C extends ComponentType

@@ -262,7 +262,7 @@ withRouter(MyComponent); >withRouter(MyComponent) : ComponentClass> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >withRouter :

>(component: C & ComponentType

) => ComponentClass> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >MyComponent : ComponentType > : ^^^^^^^^^^^^^^^^^^^^ @@ -279,7 +279,7 @@ type AB = { a: T } | { b: T }; // T & AB normalizes to T & { a: U } | T & { b: U } below declare function foo(obj: T & AB): [T, U]; >foo : (obj: T & AB) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >obj : T & AB > : ^^^^^^^^^ @@ -293,7 +293,7 @@ let z = foo(ab); // [AB, string] >foo(ab) : [{ a: string; } | { b: string; }, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (obj: T & AB) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >ab : AB > : ^^^^^^^^^^ @@ -301,7 +301,7 @@ let z = foo(ab); // [AB, string] declare let a: () => (T extends true ? true : false) & boolean; >a : () => (T extends true ? true : false) & boolean -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >true : true > : ^^^^ >true : true @@ -311,7 +311,7 @@ declare let a: () => (T extends true ? true : false) & boolean; declare let b: () => (T extends true ? true : false) & boolean; >b : () => (T extends true ? true : false) & boolean -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >true : true > : ^^^^ >true : true @@ -321,9 +321,9 @@ declare let b: () => (T extends true ? true : false) & boolean; a = b; >a = b : () => (T extends true ? true : false) & boolean -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >a : () => (T extends true ? true : false) & boolean -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >b : () => (T extends true ? true : false) & boolean -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/unionCallMixedTypeParameterPresence.types b/tests/baselines/reference/unionCallMixedTypeParameterPresence.types index 5e8d3877a064c..d41f7bf126cda 100644 --- a/tests/baselines/reference/unionCallMixedTypeParameterPresence.types +++ b/tests/baselines/reference/unionCallMixedTypeParameterPresence.types @@ -6,7 +6,7 @@ interface Err { f(a: (err: T) => U): Err; >f : (a: (err: T) => U) => Err -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (err: T) => U > : ^ ^^ ^^^^^ >err : T diff --git a/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types b/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types index 3e4420441fcbc..b9bf70d74224a 100644 --- a/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types +++ b/tests/baselines/reference/unionExcessPropertyCheckNoApparentPropTypeMismatchErrors.types @@ -14,7 +14,7 @@ interface INumberDictionary { declare function forEach(from: IStringDictionary | INumberDictionary, callback: (entry: { key: any; value: T; }, remove: () => void) => any); >forEach : (from: IStringDictionary | INumberDictionary, callback: (entry: { key: any; value: T; }, remove: () => void) => any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >from : IStringDictionary | INumberDictionary > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >callback : (entry: { key: any; value: T; }, remove: () => void) => any @@ -36,7 +36,7 @@ let count = 0; forEach({ toString: 123 }, () => count++); >forEach({ toString: 123 }, () => count++) : any >forEach : (from: IStringDictionary | INumberDictionary, callback: (entry: { key: any; value: T; }, remove: () => void) => any) => any -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^ >{ toString: 123 } : { toString: number; } > : ^^^^^^^^^^^^^^^^^^^^^ >toString : number diff --git a/tests/baselines/reference/unionOfClassCalls.types b/tests/baselines/reference/unionOfClassCalls.types index f49f576b5f0fc..105d49c088618 100644 --- a/tests/baselines/reference/unionOfClassCalls.types +++ b/tests/baselines/reference/unionOfClassCalls.types @@ -12,7 +12,7 @@ declare class Test { get(k: K): T[K]; >get : (k: K) => T[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >k : K > : ^ } @@ -97,11 +97,11 @@ arr.reduce((acc: Array, a: number | string, index: number) => { >arr.reduce((acc: Array, a: number | string, index: number) => { return []}, []) : never[] > : ^^^^^^^ >arr.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } | { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >arr : number[] | string[] > : ^^^^^^^^^^^^^^^^^^^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } | { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(acc: Array, a: number | string, index: number) => { return []} : (acc: Array, a: number | string, index: number) => never[] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >acc : string[] @@ -167,11 +167,11 @@ arr1.reduce((acc: number[], a: number, index: number) => { >arr1.reduce((acc: number[], a: number, index: number) => { return [a]}, []) : number[] > : ^^^^^^^^ >arr1.reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >arr1 : number[] > : ^^^^^^^^ >reduce : { (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; (callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(acc: number[], a: number, index: number) => { return [a]} : (acc: number[], a: number, index: number) => number[] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^ >acc : number[] @@ -238,11 +238,11 @@ arr2.reduce((acc: string[], a: string, index: number) => { >arr2.reduce((acc: string[], a: string, index: number) => { return []}, []) : never[] > : ^^^^^^^ >arr2.reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >arr2 : string[] > : ^^^^^^^^ >reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(acc: string[], a: string, index: number) => { return []} : (acc: string[], a: string, index: number) => never[] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >acc : string[] diff --git a/tests/baselines/reference/unionOfEnumInference.types b/tests/baselines/reference/unionOfEnumInference.types index 86b82431ce7b7..4e40ee2fe73ea 100644 --- a/tests/baselines/reference/unionOfEnumInference.types +++ b/tests/baselines/reference/unionOfEnumInference.types @@ -21,7 +21,7 @@ interface Interface { function foo(x: Interface) { } >foo : (x: Interface) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : Interface > : ^^^^^^^^^^^^ @@ -41,7 +41,7 @@ function bar(x: Interface | Interface) { >foo(x) : void > : ^^^^ >foo : (x: Interface) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : Interface | Interface > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/unionReductionWithStringMappingAndIdenticalBaseTypeExistsNoCrash.types b/tests/baselines/reference/unionReductionWithStringMappingAndIdenticalBaseTypeExistsNoCrash.types index f1b8eb41c4af9..3769ca48c16d3 100644 --- a/tests/baselines/reference/unionReductionWithStringMappingAndIdenticalBaseTypeExistsNoCrash.types +++ b/tests/baselines/reference/unionReductionWithStringMappingAndIdenticalBaseTypeExistsNoCrash.types @@ -169,7 +169,7 @@ import React from 'react' declare function upperFirst(str: T): Capitalize >upperFirst : (str: T) => Capitalize -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >str : T > : ^ @@ -183,7 +183,7 @@ const displayEnum = (value: string) => upperFirst(value.toLowerCase()) >upperFirst(value.toLowerCase()) : Capitalize > : ^^^^^^^^^^^^^^^^^^ >upperFirst : (str: T) => Capitalize -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value.toLowerCase() : string > : ^^^^^^ >value.toLowerCase : () => string diff --git a/tests/baselines/reference/unionSignaturesWithThisParameter.types b/tests/baselines/reference/unionSignaturesWithThisParameter.types index 8904534bcadde..411441da0fdfc 100644 --- a/tests/baselines/reference/unionSignaturesWithThisParameter.types +++ b/tests/baselines/reference/unionSignaturesWithThisParameter.types @@ -5,7 +5,7 @@ function x(ctor: { >x : (ctor: { (this: {}, v: T): void; new (v: T): void; } | { (v: T): void; new (v: T): void; }, t: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >ctor : { (this: {}, v: T): void; new (v: T): void; } | { (v: T): void; new (v: T): void; } > : ^^^ ^^ ^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^^ ^^^^^^^ ^^ ^^^ ^^^ diff --git a/tests/baselines/reference/unionTypeInference.types b/tests/baselines/reference/unionTypeInference.types index 50820ec02758c..654ab80158ed0 100644 --- a/tests/baselines/reference/unionTypeInference.types +++ b/tests/baselines/reference/unionTypeInference.types @@ -15,7 +15,7 @@ declare const sn: string | number; declare function f1(x: T, y: string | T): T; >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : string | T @@ -27,7 +27,7 @@ const a1 = f1(1, 2); // 1 | 2 >f1(1, 2) : 1 | 2 > : ^^^^^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -39,7 +39,7 @@ const a2 = f1(1, "hello"); // 1 >f1(1, "hello") : 1 > : ^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >"hello" : "hello" @@ -51,7 +51,7 @@ const a3 = f1(1, sn); // number >f1(1, sn) : number > : ^^^^^^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >sn : string | number @@ -63,7 +63,7 @@ const a4 = f1(undefined, "abc"); // undefined >f1(undefined, "abc") : undefined > : ^^^^^^^^^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >"abc" : "abc" @@ -75,7 +75,7 @@ const a5 = f1("foo", "bar"); // "foo" >f1("foo", "bar") : "foo" > : ^^^^^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >"foo" : "foo" > : ^^^^^ >"bar" : "bar" @@ -87,7 +87,7 @@ const a6 = f1(true, false); // boolean >f1(true, false) : boolean > : ^^^^^^^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >true : true > : ^^^^ >false : false @@ -99,7 +99,7 @@ const a7 = f1("hello", 1); // Error >f1("hello", 1) : "hello" > : ^^^^^^^ >f1 : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ >1 : 1 @@ -107,7 +107,7 @@ const a7 = f1("hello", 1); // Error declare function f2(value: [string, T]): T; >f2 : (value: [string, T]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : [string, T] > : ^^^^^^^^^^^ @@ -117,7 +117,7 @@ var b1 = f2(["string", true]); // boolean >f2(["string", true]) : boolean > : ^^^^^^^ >f2 : (value: [string, T]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >["string", true] : [string, true] > : ^^^^^^^^^^^^^^ >"string" : "string" @@ -127,7 +127,7 @@ var b1 = f2(["string", true]); // boolean declare function f3(x: string | false | T): T; >f3 : (x: string | false | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | false | T > : ^^^^^^^^^^^^^^^^^^ >false : false @@ -139,7 +139,7 @@ const c1 = f3(5); // 5 >f3(5) : 5 > : ^ >f3 : (x: string | false | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >5 : 5 > : ^ @@ -149,7 +149,7 @@ const c2 = f3(sn); // number >f3(sn) : number > : ^^^^^^ >f3 : (x: string | false | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sn : string | number > : ^^^^^^^^^^^^^^^ @@ -159,7 +159,7 @@ const c3 = f3(true); // true >f3(true) : true > : ^^^^ >f3 : (x: string | false | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >true : true > : ^^^^ @@ -169,7 +169,7 @@ const c4 = f3(b); // true >f3(b) : true > : ^^^^ >f3 : (x: string | false | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b : boolean > : ^^^^^^^ @@ -179,13 +179,13 @@ const c5 = f3("abc"); // never >f3("abc") : "abc" > : ^^^^^ >f3 : (x: string | false | T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"abc" : "abc" > : ^^^^^ declare function f4(x: string & T): T; >f4 : (x: string & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string & T > : ^^^^^^^^^^ @@ -195,7 +195,7 @@ const d1 = f4("abc"); >f4("abc") : "abc" > : ^^^^^ >f4 : (x: string & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >"abc" : "abc" > : ^^^^^ @@ -205,7 +205,7 @@ const d2 = f4(s); >f4(s) : unknown > : ^^^^^^^ >f4 : (x: string & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >s : string > : ^^^^^^ @@ -215,14 +215,14 @@ const d3 = f4(42); // Error >f4(42) : 42 > : ^^ >f4 : (x: string & T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >42 : 42 > : ^^ export interface Foo { then(f: (x: T) => U | Foo, g: U): Foo; >then : (f: (x: T) => U | Foo, g: U) => Foo -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f : (x: T) => U | Foo > : ^ ^^ ^^^^^ >x : T @@ -233,7 +233,7 @@ export interface Foo { export interface Bar { then(f: (x: T) => S | Bar, g: S): Bar; >then : (f: (x: T) => S | Bar, g: S) => Bar -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f : (x: T) => S | Bar > : ^ ^^ ^^^^^ >x : T @@ -263,7 +263,7 @@ function qux(p1: Foo, p2: Bar) { declare function foo(x: T | Promise): void; >foo : (x: T | Promise) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T | Promise > : ^^^^^^^^^^^^^^ @@ -279,13 +279,13 @@ foo(x); >foo(x) : void > : ^^^^ >foo : (x: T | Promise) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : false | Promise > : ^^^^^^^^^^^^^^^^^^^^^ declare function bar(x: T, y: string | T): T; >bar : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : string | T @@ -297,7 +297,7 @@ const y = bar(1, 2); >bar(1, 2) : 1 | 2 > : ^^^^^ >bar : (x: T, y: string | T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -329,7 +329,7 @@ type DeepPromised = async function fun(deepPromised: DeepPromised) { >fun : (deepPromised: DeepPromised) => Promise -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >deepPromised : DeepPromised > : ^^^^^^^^^^^^^^^ @@ -347,11 +347,11 @@ async function fun(deepPromised: DeepPromised) { >Object.values(deepPromisedWithIndexer) : ({} | ({ [containsPromises]?: true; } & {}) | Promise<{ [containsPromises]?: true; } & {}> | null | undefined)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.values : { (o: { [s: string]: T_1; } | ArrayLike): T_1[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T_1; } | ArrayLike): T_1[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >deepPromisedWithIndexer : DeepPromised<{ [name: string]: {} | null | undefined; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -373,7 +373,7 @@ async function fun(deepPromised: DeepPromised) { >fun(awaitedValue) : Promise > : ^^^^^^^^^^^^^ >fun : (deepPromised: DeepPromised) => Promise -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >awaitedValue : {} | ({ [containsPromises]?: true; } & {}) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ } @@ -387,7 +387,7 @@ type Deep = { [K in keyof T]: T[K] | Deep }; declare function baz(dp: Deep): T; >baz : (dp: Deep) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >dp : Deep > : ^^^^^^^ @@ -401,7 +401,7 @@ baz(xx); >baz(xx) : { a: string | undefined; } > : ^^^^^ ^^^ >baz : (dp: Deep) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >xx : { a: string | undefined; } > : ^^^^^ ^^^ diff --git a/tests/baselines/reference/unionTypeMembers.types b/tests/baselines/reference/unionTypeMembers.types index f7f64cc525415..5c4f4bd1a24b2 100644 --- a/tests/baselines/reference/unionTypeMembers.types +++ b/tests/baselines/reference/unionTypeMembers.types @@ -36,7 +36,7 @@ interface I1 { commonMethodWithOwnTypeParameter(a: U): U; >commonMethodWithOwnTypeParameter : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ @@ -86,7 +86,7 @@ interface I2 { commonMethodWithOwnTypeParameter(a: U): U; >commonMethodWithOwnTypeParameter : (a: U) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : U > : ^ @@ -205,11 +205,11 @@ num = x.commonMethodWithTypeParameter(num); >x.commonMethodWithTypeParameter(num) : number > : ^^^^^^ >x.commonMethodWithTypeParameter : ((a: number) => number) | ((a: number) => number) -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^ >x : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ >commonMethodWithTypeParameter : ((a: number) => number) | ((a: number) => number) -> : ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^ ^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^ >num : number > : ^^^^^^ @@ -221,11 +221,11 @@ num = x.commonMethodWithOwnTypeParameter(num); >x.commonMethodWithOwnTypeParameter(num) : number > : ^^^^^^ >x.commonMethodWithOwnTypeParameter : ((a: U) => U) | ((a: U) => U) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >x : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ >commonMethodWithOwnTypeParameter : ((a: U) => U) | ((a: U) => U) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >num : number > : ^^^^^^ @@ -237,11 +237,11 @@ str = x.commonMethodWithOwnTypeParameter(str); >x.commonMethodWithOwnTypeParameter(str) : string > : ^^^^^^ >x.commonMethodWithOwnTypeParameter : ((a: U) => U) | ((a: U) => U) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >x : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ >commonMethodWithOwnTypeParameter : ((a: U) => U) | ((a: U) => U) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >str : string > : ^^^^^^ @@ -253,11 +253,11 @@ strOrNum = x.commonMethodWithOwnTypeParameter(strOrNum); >x.commonMethodWithOwnTypeParameter(strOrNum) : string | number > : ^^^^^^^^^^^^^^^ >x.commonMethodWithOwnTypeParameter : ((a: U) => U) | ((a: U) => U) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >x : I1 | I2 > : ^^^^^^^^^^^^^^^^^^^^^^^ >commonMethodWithOwnTypeParameter : ((a: U) => U) | ((a: U) => U) -> : ^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ ^ +> : ^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ ^ >strOrNum : string | number > : ^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/unionTypeParameterInference.types b/tests/baselines/reference/unionTypeParameterInference.types index cf118728f5c9b..2ebc8fb08fa44 100644 --- a/tests/baselines/reference/unionTypeParameterInference.types +++ b/tests/baselines/reference/unionTypeParameterInference.types @@ -9,13 +9,13 @@ interface Foo { prop: T; } declare function lift(value: U | Foo): Foo; >lift : (value: U | Foo) => Foo -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : U | Foo > : ^^^^^^^^^^ function unlift(value: U | Foo): U { >unlift : (value: U | Foo) => U -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : U | Foo > : ^^^^^^^^^^ @@ -25,7 +25,7 @@ function unlift(value: U | Foo): U { >lift(value) : Foo > : ^^^^^^ >lift : (value: U_1 | Foo) => Foo -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >value : U | Foo > : ^^^^^^^^^^ >prop : U diff --git a/tests/baselines/reference/unionTypesAssignability.types b/tests/baselines/reference/unionTypesAssignability.types index c78d908f13979..63163c0bb2511 100644 --- a/tests/baselines/reference/unionTypesAssignability.types +++ b/tests/baselines/reference/unionTypesAssignability.types @@ -361,7 +361,7 @@ unionNumberString = undefined; // type parameters function foo(t: T, u: U) { >foo : (t: T, u: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/unionWithIndexSignature.types b/tests/baselines/reference/unionWithIndexSignature.types index 0513117ec8eb4..e33bd31b9a280 100644 --- a/tests/baselines/reference/unionWithIndexSignature.types +++ b/tests/baselines/reference/unionWithIndexSignature.types @@ -22,7 +22,7 @@ interface StrList { export function foo(arr: T & (NumList | StrList)) { >foo : (arr: T & (NumList | StrList)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arr : T & (NumList | StrList) > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -68,7 +68,7 @@ export function isTypedArray(a: {}): a is Int32Array | Uint8Array { export function flatten(arr: T) { >flatten : (arr: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arr : T > : ^ diff --git a/tests/baselines/reference/uniqueSymbolAssignmentOnGlobalAugmentationSuceeds.types b/tests/baselines/reference/uniqueSymbolAssignmentOnGlobalAugmentationSuceeds.types index ad49bb2971c17..7a2770f10eae8 100644 --- a/tests/baselines/reference/uniqueSymbolAssignmentOnGlobalAugmentationSuceeds.types +++ b/tests/baselines/reference/uniqueSymbolAssignmentOnGlobalAugmentationSuceeds.types @@ -26,7 +26,7 @@ declare global { export function foo(p: Promise) { >foo : (p: Promise) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >p : Promise > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/uniqueSymbols.types b/tests/baselines/reference/uniqueSymbols.types index 1ee2fbcaff4e2..99e62886bb8aa 100644 --- a/tests/baselines/reference/uniqueSymbols.types +++ b/tests/baselines/reference/uniqueSymbols.types @@ -554,11 +554,11 @@ const constInitToLReadonlyNestedType = l.nested.readonlyNestedType; >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ @@ -584,21 +584,21 @@ const constInitToLReadonlyNestedTypeWithTypeQuery: typeof l.nested.readonlyNeste >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ @@ -618,11 +618,11 @@ const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNest >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ @@ -633,11 +633,11 @@ const promiseForConstCall = Promise.resolve(constCall); >Promise.resolve(constCall) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >constCall : unique symbol > : ^^^^^^^^^^^^^ @@ -678,7 +678,7 @@ declare const o: { [s]: "a", [N.s]: "b" }; declare function f(x: T): T; >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -709,7 +709,7 @@ f(s); >f(s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >s : unique symbol > : ^^^^^^^^^^^^^ @@ -717,7 +717,7 @@ f(N.s); >f(N.s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N.s : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N @@ -729,7 +729,7 @@ f(N["s"]); >f(N["s"]) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N["s"] : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N @@ -1021,7 +1021,7 @@ f(s); >f(s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >s : unique symbol > : ^^^^^^^^^^^^^ >s : unique symbol @@ -1031,7 +1031,7 @@ f(N.s); >f(N.s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N.s : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N @@ -1049,7 +1049,7 @@ f(N["s"]); >f(N["s"]) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N.s : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N diff --git a/tests/baselines/reference/uniqueSymbolsDeclarations.types b/tests/baselines/reference/uniqueSymbolsDeclarations.types index c8bd68e1b3b63..b0624aa209c04 100644 --- a/tests/baselines/reference/uniqueSymbolsDeclarations.types +++ b/tests/baselines/reference/uniqueSymbolsDeclarations.types @@ -545,11 +545,11 @@ const constInitToLReadonlyNestedType = l.nested.readonlyNestedType; >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ @@ -575,21 +575,21 @@ const constInitToLReadonlyNestedTypeWithTypeQuery: typeof l.nested.readonlyNeste >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ @@ -609,11 +609,11 @@ const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNest >l.nested.readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ >l.nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >l : L > : ^ >nested : { readonly readonlyNestedType: unique symbol; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >readonlyNestedType : unique symbol > : ^^^^^^^^^^^^^ @@ -624,11 +624,11 @@ const promiseForConstCall = Promise.resolve(constCall); >Promise.resolve(constCall) : Promise > : ^^^^^^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >constCall : unique symbol > : ^^^^^^^^^^^^^ @@ -669,7 +669,7 @@ declare const o: { [s]: "a", [N.s]: "b" }; declare function f(x: T): T; >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -700,7 +700,7 @@ f(s); >f(s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >s : unique symbol > : ^^^^^^^^^^^^^ @@ -708,7 +708,7 @@ f(N.s); >f(N.s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N.s : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N @@ -720,7 +720,7 @@ f(N["s"]); >f(N["s"]) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N["s"] : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N @@ -1012,7 +1012,7 @@ f(s); >f(s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >s : unique symbol > : ^^^^^^^^^^^^^ >s : unique symbol @@ -1022,7 +1022,7 @@ f(N.s); >f(N.s) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N.s : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N @@ -1040,7 +1040,7 @@ f(N["s"]); >f(N["s"]) : unique symbol > : ^^^^^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >N.s : unique symbol > : ^^^^^^^^^^^^^ >N : typeof N diff --git a/tests/baselines/reference/unknownControlFlow.types b/tests/baselines/reference/unknownControlFlow.types index d43cd380d7d50..b456d456c5651 100644 --- a/tests/baselines/reference/unknownControlFlow.types +++ b/tests/baselines/reference/unknownControlFlow.types @@ -126,7 +126,7 @@ function f10(x: unknown) { function f11(x: T) { >f11 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -162,7 +162,7 @@ function f11(x: T) { function f12(x: T) { >f12 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -278,7 +278,7 @@ function f20(x: unknown) { function f21(x: T) { >f21 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -373,7 +373,7 @@ function f21(x: T) { function f22(x: T) { >f22 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -468,7 +468,7 @@ function f22(x: T) { function f23(x: T | undefined | null) { >f23 : (x: T | undefined | null) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T | null | undefined > : ^^^^^^^^^^^^^^^^^^^^ @@ -542,7 +542,7 @@ function f30(x: {}) { function f31(x: T) { >f31 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -600,7 +600,7 @@ function f31(x: T) { function f32(x: T) { >f32 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -622,7 +622,7 @@ function f32(x: T) { function possiblyNull(x: T) { >possiblyNull : (x: T) => T | null -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ @@ -641,7 +641,7 @@ function possiblyNull(x: T) { function possiblyUndefined(x: T) { >possiblyUndefined : (x: T) => T | undefined -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -662,7 +662,7 @@ function possiblyUndefined(x: T) { function possiblyNullOrUndefined(x: T) { >possiblyNullOrUndefined : (x: T) => T | null | undefined -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -670,18 +670,18 @@ function possiblyNullOrUndefined(x: T) { >possiblyUndefined(possiblyNull(x)) : T | null | undefined > : ^^^^^^^^^^^^^^^^^^^^ >possiblyUndefined : (x: T_1) => T_1 | undefined -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >possiblyNull(x) : T | null > : ^^^^^^^^ >possiblyNull : (x: T_1) => T_1 | null -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^ >x : T > : ^ } function ensureNotNull(x: T) { >ensureNotNull : (x: T) => T & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -702,7 +702,7 @@ function ensureNotNull(x: T) { function ensureNotUndefined(x: T) { >ensureNotUndefined : (x: T) => T & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -725,7 +725,7 @@ function ensureNotUndefined(x: T) { function ensureNotNullOrUndefined(x: T) { >ensureNotNullOrUndefined : (x: T) => T & {} -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ @@ -733,11 +733,11 @@ function ensureNotNullOrUndefined(x: T) { >ensureNotUndefined(ensureNotNull(x)) : T & {} > : ^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >ensureNotNull(x) : T & ({} | undefined) > : ^^^^^^^^^^^^^^^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ } @@ -756,7 +756,7 @@ function f40(a: string | undefined, b: number | null | undefined) { >ensureNotNullOrUndefined(a) : string > : ^^^^^^ >ensureNotNullOrUndefined : (x: T) => T & {} -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >a : string | undefined > : ^^^^^^^^^^^^^^^^^^ @@ -766,7 +766,7 @@ function f40(a: string | undefined, b: number | null | undefined) { >ensureNotNullOrUndefined(b) : number > : ^^^^^^ >ensureNotNullOrUndefined : (x: T) => T & {} -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >b : number | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -777,7 +777,7 @@ type QQ = NonNullable>>; function f41(a: T) { >f41 : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ @@ -787,11 +787,11 @@ function f41(a: T) { >ensureNotUndefined(ensureNotNull(a)) : T & {} > : ^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >ensureNotNull(a) : T & ({} | undefined) > : ^^^^^^^^^^^^^^^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -801,11 +801,11 @@ function f41(a: T) { >ensureNotNull(ensureNotUndefined(a)) : T & {} > : ^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ensureNotUndefined(a) : T & ({} | null) > : ^^^^^^^^^^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -815,11 +815,11 @@ function f41(a: T) { >ensureNotNull(ensureNotNull(a)) : (T & undefined) | (T & {}) > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ensureNotNull(a) : T & ({} | undefined) > : ^^^^^^^^^^^^^^^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -829,11 +829,11 @@ function f41(a: T) { >ensureNotUndefined(ensureNotUndefined(a)) : (T & {}) | (T & null) > : ^^^^^^^^^^^^^^^^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >ensureNotUndefined(a) : T & ({} | null) > : ^^^^^^^^^^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -843,11 +843,11 @@ function f41(a: T) { >ensureNotNullOrUndefined(ensureNotNullOrUndefined(a)) : T & {} > : ^^^^^^ >ensureNotNullOrUndefined : (x: T_1) => T_1 & {} -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^ >ensureNotNullOrUndefined(a) : T & {} > : ^^^^^^ >ensureNotNullOrUndefined : (x: T_1) => T_1 & {} -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^ >a : T > : ^ @@ -857,11 +857,11 @@ function f41(a: T) { >ensureNotNull(possiblyNullOrUndefined(a)) : (T & {}) | undefined > : ^^^^^^^^^^^^^^^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >possiblyNullOrUndefined(a) : T | null | undefined > : ^^^^^^^^^^^^^^^^^^^^ >possiblyNullOrUndefined : (x: T_1) => T_1 | null | undefined -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -871,11 +871,11 @@ function f41(a: T) { >ensureNotUndefined(possiblyNullOrUndefined(a)) : (T & {}) | null > : ^^^^^^^^^^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >possiblyNullOrUndefined(a) : T | null | undefined > : ^^^^^^^^^^^^^^^^^^^^ >possiblyNullOrUndefined : (x: T_1) => T_1 | null | undefined -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -885,11 +885,11 @@ function f41(a: T) { >ensureNotNull(possiblyUndefined(a)) : (T & {}) | undefined > : ^^^^^^^^^^^^^^^^^^^^ >ensureNotNull : (x: T_1) => T_1 & ({} | undefined) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >possiblyUndefined(a) : T | undefined > : ^^^^^^^^^^^^^ >possiblyUndefined : (x: T_1) => T_1 | undefined -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >a : T > : ^ @@ -899,11 +899,11 @@ function f41(a: T) { >ensureNotUndefined(possiblyNull(a)) : (T & {}) | null > : ^^^^^^^^^^^^^^^ >ensureNotUndefined : (x: T_1) => T_1 & ({} | null) -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >possiblyNull(a) : T | null > : ^^^^^^^^ >possiblyNull : (x: T_1) => T_1 | null -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^^ >a : T > : ^ } @@ -912,7 +912,7 @@ function f41(a: T) { function deepEquals(a: T, b: T): boolean { >deepEquals : (a: T, b: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : T @@ -1027,7 +1027,7 @@ function deepEquals(a: T, b: T): boolean { function foo(x: T | null) { >foo : (x: T | null) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T | null > : ^^^^^^^^ @@ -1055,7 +1055,7 @@ function foo(x: T | null) { function ff1(t: T, k: keyof T) { >ff1 : (t: T, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >k : keyof T @@ -1072,7 +1072,7 @@ function ff1(t: T, k: keyof T) { function ff2(t: T & {}, k: keyof T) { >ff2 : (t: T & {}, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T & {} > : ^^^^^^ >k : keyof T @@ -1089,7 +1089,7 @@ function ff2(t: T & {}, k: keyof T) { function ff3(t: T, k: keyof (T & {})) { >ff3 : (t: T, k: keyof (T & {})) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >k : keyof (T & {}) @@ -1106,7 +1106,7 @@ function ff3(t: T, k: keyof (T & {})) { function ff4(t: T & {}, k: keyof (T & {})) { >ff4 : (t: T & {}, k: keyof (T & {})) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T & {} > : ^^^^^^ >k : keyof (T & {}) @@ -1125,7 +1125,7 @@ ff1(null, 'foo'); // Error >ff1(null, 'foo') : void > : ^^^^ >ff1 : (t: T, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'foo' : "foo" > : ^^^^^ @@ -1133,7 +1133,7 @@ ff2(null, 'foo'); // Error >ff2(null, 'foo') : void > : ^^^^ >ff2 : (t: T & {}, k: keyof T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'foo' : "foo" > : ^^^^^ @@ -1141,7 +1141,7 @@ ff3(null, 'foo'); >ff3(null, 'foo') : void > : ^^^^ >ff3 : (t: T, k: keyof (T & {})) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'foo' : "foo" > : ^^^^^ @@ -1149,7 +1149,7 @@ ff4(null, 'foo'); // Error >ff4(null, 'foo') : void > : ^^^^ >ff4 : (t: T & {}, k: keyof (T & {})) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >'foo' : "foo" > : ^^^^^ @@ -1173,7 +1173,7 @@ type Bar = NonNullable[string]; function fx0(value: T & ({} | null)) { >fx0 : (value: T & ({} | null)) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >value : T & ({} | null) > : ^^^^^^^^^^^^^^^ @@ -1198,7 +1198,7 @@ function fx0(value: T & ({} | null)) { function fx1(value: T & ({} | null)) { >fx1 : (value: T & ({} | null)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T & ({} | null) > : ^^^^^^^^^^^^^^^ @@ -1223,7 +1223,7 @@ function fx1(value: T & ({} | null)) { function fx2(value: T & ({} | null)) { >fx2 : (value: T & ({} | null)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T > : ^ @@ -1248,7 +1248,7 @@ function fx2(value: T & ({} | null)) { function fx3(value: T & ({} | null)) { >fx3 : (value: T & ({} | null)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T & {} > : ^^^^^^ @@ -1273,7 +1273,7 @@ function fx3(value: T & ({} | null)) { function fx4(value: T & ({} | null)) { >fx4 : (value: T & ({} | null)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T > : ^ @@ -1298,7 +1298,7 @@ function fx4(value: T & ({} | null)) { function fx5(value: T & ({} | null)) { >fx5 : (value: T & ({} | null)) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >value : T & ({} | null) > : ^^^^^^^^^^^^^^^ @@ -1407,7 +1407,7 @@ function SendBlob(encoding: unknown) { function doSomething1(value: T): T { >doSomething1 : (value: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ @@ -1526,7 +1526,7 @@ type AB = "A" | "B"; function x(x: T_AB & undefined, y: any) { >x : (x: T_AB & undefined, y: any) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : never > : ^^^^^ >y : any diff --git a/tests/baselines/reference/unknownLikeUnionObjectFlagsNotPropagated.types b/tests/baselines/reference/unknownLikeUnionObjectFlagsNotPropagated.types index d039ec69b225d..8328690533c9f 100644 --- a/tests/baselines/reference/unknownLikeUnionObjectFlagsNotPropagated.types +++ b/tests/baselines/reference/unknownLikeUnionObjectFlagsNotPropagated.types @@ -35,11 +35,11 @@ async function myUnusedFunction() { >Promise.resolve(['hello', 'world']) : Promise > : ^^^^^^^^^^^^^^^^^ >Promise.resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >resolve : { (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; } -> : ^^^^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >['hello', 'world'] : string[] > : ^^^^^^^^ >'hello' : "hello" @@ -55,11 +55,11 @@ async function myUnusedFunction() { >Promise.all([fetch1]) : Promise<[string[]]> > : ^^^^^^^^^^^^^^^^^^^ >Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >Promise : PromiseConstructor > : ^^^^^^^^^^^^^^^^^^ >all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >[fetch1] : [Promise] > : ^^^^^^^^^^^^^^^^^^^ >fetch1 : Promise diff --git a/tests/baselines/reference/unknownSymbolInGenericReturnType.types b/tests/baselines/reference/unknownSymbolInGenericReturnType.types index 8e4e5b61c9a70..16f42134bed03 100644 --- a/tests/baselines/reference/unknownSymbolInGenericReturnType.types +++ b/tests/baselines/reference/unknownSymbolInGenericReturnType.types @@ -7,7 +7,7 @@ class Linq { public static select(values: T[], func: (v: T) => A): any[] { >select : (values: T[], func: (v: T) => A) => any[] -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >values : T[] > : ^^^ >func : (v: T) => A diff --git a/tests/baselines/reference/unknownSymbolOffContextualType1.types b/tests/baselines/reference/unknownSymbolOffContextualType1.types index 4f6e458555988..ab33f488376f2 100644 --- a/tests/baselines/reference/unknownSymbolOffContextualType1.types +++ b/tests/baselines/reference/unknownSymbolOffContextualType1.types @@ -110,11 +110,11 @@ function getMaxWidth(elementNames: string[]) { >widths.reduce(function (a, b) { return a > b ? a : b; }) : any > : ^^^ >widths.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >widths : any[] > : ^^^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >function (a, b) { return a > b ? a : b; } : (a: any, b: any) => any > : ^ ^^^^^^^ ^^^^^^^^^^^^^ >a : any diff --git a/tests/baselines/reference/unknownType1.types b/tests/baselines/reference/unknownType1.types index 46be92d81bcea..7d5519e6fb8e9 100644 --- a/tests/baselines/reference/unknownType1.types +++ b/tests/baselines/reference/unknownType1.types @@ -345,7 +345,7 @@ type T52 = T50; // {} function f21(pAny: any, pNever: never, pT: T) { >f21 : (pAny: any, pNever: never, pT: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >pAny : any > : ^^^ >pNever : never @@ -485,7 +485,7 @@ function f22(x: unknown) { function f23(x: T) { >f23 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -678,7 +678,7 @@ class C1 { function f30(t: T, u: U) { >f30 : (t: T, u: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U @@ -721,7 +721,7 @@ type Test2 = IsDefinitelyDefined; // false function oops(arg: T): {} { >oops : (arg: T) => {} -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/unspecializedConstraints.types b/tests/baselines/reference/unspecializedConstraints.types index a62b1b5ebd180..c3bef7f611a96 100644 --- a/tests/baselines/reference/unspecializedConstraints.types +++ b/tests/baselines/reference/unspecializedConstraints.types @@ -237,7 +237,7 @@ module ts { >setEquals(this.getSignatures(), that.getSignatures()) : boolean > : ^^^^^^^ >setEquals : >(a: T[], b: T[]) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >this.getSignatures() : Signature[] > : ^^^^^^^^^^^ >this.getSignatures : () => Signature[] @@ -540,7 +540,7 @@ module ts { >arrayEquals(this.parameters, other.parameters) : boolean > : ^^^^^^^ >arrayEquals : >(a: T[], b: T[]) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >this.parameters : Parameter[] > : ^^^^^^^^^^^ >this : this @@ -558,7 +558,7 @@ module ts { >arrayEquals(this.typeParameters, other.typeParameters) : boolean > : ^^^^^^^ >arrayEquals : >(a: T[], b: T[]) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >this.typeParameters : TypeParameter[] > : ^^^^^^^^^^^^^^^ >this : this @@ -732,7 +732,7 @@ module ts { function getProperty(map: Map, key: string): T { >getProperty : (map: Map, key: string) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >map : Map > : ^^^^^^ >key : string @@ -767,7 +767,7 @@ module ts { function hasProperty(map: Map, key: string): boolean { >hasProperty : (map: Map, key: string) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >map : Map > : ^^^^^^ >key : string @@ -790,7 +790,7 @@ module ts { function arrayContains>(a: T[], item: T): boolean { >arrayContains : >(a: T[], item: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >item : T @@ -847,7 +847,7 @@ module ts { function arrayEquals>(a: T[], b: T[]): boolean { >arrayEquals : >(a: T[], b: T[]) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >b : T[] @@ -924,7 +924,7 @@ module ts { function setEquals>(a: T[], b: T[]): boolean { >setEquals : >(a: T[], b: T[]) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >a : T[] > : ^^^ >b : T[] @@ -976,7 +976,7 @@ module ts { >arrayContains(b, a[i]) : boolean > : ^^^^^^^ >arrayContains : >(a: T_1[], item: T_1) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >b : T[] > : ^^^ >a[i] : T diff --git a/tests/baselines/reference/unusedLocalsAndParametersDeferred.types b/tests/baselines/reference/unusedLocalsAndParametersDeferred.types index 56617e8755cd8..641c0e4f95163 100644 --- a/tests/baselines/reference/unusedLocalsAndParametersDeferred.types +++ b/tests/baselines/reference/unusedLocalsAndParametersDeferred.types @@ -5,7 +5,7 @@ export { }; function defered(a: () => T): T { >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : () => T > : ^^^^^^ @@ -26,7 +26,7 @@ function f(a) { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -55,7 +55,7 @@ var fexp = function (a) { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -84,7 +84,7 @@ var farrow = (a) => { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -118,7 +118,7 @@ class C { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -138,7 +138,7 @@ class C { >defered(() => { v; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { v; } : () => void > : ^^^^^^^^^^ @@ -155,7 +155,7 @@ class C { >defered(() => { prop1; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { prop1; } : () => void > : ^^^^^^^^^^ @@ -190,7 +190,7 @@ var E = class { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -210,7 +210,7 @@ var E = class { >defered(() => { v; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { v; } : () => void > : ^^^^^^^^^^ @@ -227,7 +227,7 @@ var E = class { >defered(() => { prop2; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { prop2; } : () => void > : ^^^^^^^^^^ @@ -260,7 +260,7 @@ var o = { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -280,7 +280,7 @@ var o = { >defered(() => { v; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { v; } : () => void > : ^^^^^^^^^^ @@ -297,7 +297,7 @@ var o = { >defered(() => { prop1; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { prop1; } : () => void > : ^^^^^^^^^^ @@ -322,7 +322,7 @@ for (let i in o) { >defered(() => { i; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { i; } : () => void > : ^^^^^^^^^^ @@ -350,7 +350,7 @@ for (let i of [1,2,3]) { >defered(() => { i; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { i; } : () => void > : ^^^^^^^^^^ @@ -382,7 +382,7 @@ for (let i = 0; i < 10; i++) { >defered(() => { i; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { i; } : () => void > : ^^^^^^^^^^ @@ -415,7 +415,7 @@ if (condition) { >defered(() => { c; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { c; } : () => void > : ^^^^^^^^^^ @@ -438,7 +438,7 @@ try { >defered(() => { a; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { a; } : () => void > : ^^^^^^^^^^ @@ -461,7 +461,7 @@ catch (e) { >defered(() => { c; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { c; } : () => void > : ^^^^^^^^^^ @@ -482,7 +482,7 @@ finally { >defered(() => { c; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { c; } : () => void > : ^^^^^^^^^^ @@ -506,7 +506,7 @@ namespace N { >defered(() => { x; }) : void > : ^^^^ >defered : (a: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { x; } : () => void > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/unusedLocalsAndParametersOverloadSignatures.types b/tests/baselines/reference/unusedLocalsAndParametersOverloadSignatures.types index ae37fc58cf3ad..ecd1a99970c66 100644 --- a/tests/baselines/reference/unusedLocalsAndParametersOverloadSignatures.types +++ b/tests/baselines/reference/unusedLocalsAndParametersOverloadSignatures.types @@ -86,7 +86,7 @@ export class C { export function genericFunc(details: number, message: T, ...args: any[]): void; >genericFunc : (details: number, message: T, ...args: any[]) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >details : number > : ^^^^^^ >message : T @@ -96,7 +96,7 @@ export function genericFunc(details: number, message: T, ...args: any[]): voi export function genericFunc(details: number, message: any): any { >genericFunc : (details: number, message: T, ...args: any[]) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >details : number > : ^^^^^^ >message : any diff --git a/tests/baselines/reference/unusedTypeParameterInLambda3.types b/tests/baselines/reference/unusedTypeParameterInLambda3.types index f28c97a4e81ab..3542ab722093e 100644 --- a/tests/baselines/reference/unusedTypeParameterInLambda3.types +++ b/tests/baselines/reference/unusedTypeParameterInLambda3.types @@ -12,7 +12,7 @@ class A { var y: new (a:T)=>void; >y : new (a: T) => void -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/unusedTypeParameters4.types b/tests/baselines/reference/unusedTypeParameters4.types index 0944f6df15b38..aca3d3c36a589 100644 --- a/tests/baselines/reference/unusedTypeParameters4.types +++ b/tests/baselines/reference/unusedTypeParameters4.types @@ -3,7 +3,7 @@ === unusedTypeParameters4.ts === var x: { >x : new (a: T) => void -> : ^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ new (a: T): void; >a : T diff --git a/tests/baselines/reference/unusedTypeParameters5.types b/tests/baselines/reference/unusedTypeParameters5.types index 3f2a10eb5c8fc..9f10f157b613b 100644 --- a/tests/baselines/reference/unusedTypeParameters5.types +++ b/tests/baselines/reference/unusedTypeParameters5.types @@ -12,7 +12,7 @@ class A { var x: { >x : new (a: T) => A -> : ^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^^^^ new (a: T): A; >a : T diff --git a/tests/baselines/reference/useObjectValuesAndEntries1.types b/tests/baselines/reference/useObjectValuesAndEntries1.types index 5056e95ab3900..a8edd77d7753c 100644 --- a/tests/baselines/reference/useObjectValuesAndEntries1.types +++ b/tests/baselines/reference/useObjectValuesAndEntries1.types @@ -21,11 +21,11 @@ for (var x of Object.values(o)) { >Object.values(o) : number[] > : ^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -42,11 +42,11 @@ var entries = Object.entries(o); // [string, number][] >Object.entries(o) : [string, number][] > : ^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -56,11 +56,11 @@ var values = Object.values(o); // number[] >Object.values(o) : number[] > : ^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -70,11 +70,11 @@ var entries1 = Object.entries(1); // [string, any][] >Object.entries(1) : [string, any][] > : ^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -84,11 +84,11 @@ var values1 = Object.values(1); // any[] >Object.values(1) : any[] > : ^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ @@ -98,11 +98,11 @@ var entries2 = Object.entries({ a: true, b: 2 }); // [string, number|boolean][ >Object.entries({ a: true, b: 2 }) : [string, number | boolean][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >{ a: true, b: 2 } : { a: true; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >a : true @@ -120,11 +120,11 @@ var values2 = Object.values({ a: true, b: 2 }); // (number|boolean)[] >Object.values({ a: true, b: 2 }) : (number | boolean)[] > : ^^^^^^^^^^^^^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >{ a: true, b: 2 } : { a: true; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^ >a : true @@ -142,11 +142,11 @@ var entries3 = Object.entries({}); // [string, {}][] >Object.entries({}) : [string, unknown][] > : ^^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ @@ -156,11 +156,11 @@ var values3 = Object.values({}); // {}[] >Object.values({}) : unknown[] > : ^^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >{} : {} > : ^^ @@ -182,11 +182,11 @@ var entries4 = Object.entries(a); // [string, string][] >Object.entries(a) : [string, string][] > : ^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a : string[] > : ^^^^^^^^ @@ -196,11 +196,11 @@ var values4 = Object.values(a); // string[] >Object.values(a) : string[] > : ^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a : string[] > : ^^^^^^^^ @@ -218,11 +218,11 @@ var entries5 = Object.entries(E); // [string, any][] >Object.entries(E) : [string, string | E][] > : ^^^^^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >E : typeof E > : ^^^^^^^^ @@ -232,11 +232,11 @@ var values5 = Object.values(E); // any[] >Object.values(E) : (string | E)[] > : ^^^^^^^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >E : typeof E > : ^^^^^^^^ @@ -253,11 +253,11 @@ var entries6 = Object.entries(i); // [string, any][] >Object.entries(i) : [string, any][] > : ^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >i : I > : ^ @@ -267,11 +267,11 @@ var values6 = Object.values(i); // any[] >Object.values(i) : any[] > : ^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >i : I > : ^ diff --git a/tests/baselines/reference/useObjectValuesAndEntries4.types b/tests/baselines/reference/useObjectValuesAndEntries4.types index b8fbb29184654..a4405b59cb376 100644 --- a/tests/baselines/reference/useObjectValuesAndEntries4.types +++ b/tests/baselines/reference/useObjectValuesAndEntries4.types @@ -21,11 +21,11 @@ for (var x of Object.values(o)) { >Object.values(o) : number[] > : ^^^^^^^^ >Object.values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >values : { (o: { [s: string]: T; } | ArrayLike): T[]; (o: {}): any[]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -42,11 +42,11 @@ var entries = Object.entries(o); >Object.entries(o) : [string, number][] > : ^^^^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T; } | ArrayLike): [string, T][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >o : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/usePromiseFinally.types b/tests/baselines/reference/usePromiseFinally.types index d592af2a378b9..16f531cc049da 100644 --- a/tests/baselines/reference/usePromiseFinally.types +++ b/tests/baselines/reference/usePromiseFinally.types @@ -7,7 +7,7 @@ let promise1 = new Promise(function(resolve, reject) {}) >new Promise(function(resolve, reject) {}) .finally(function() {}) : Promise > : ^^^^^^^^^^^^^^^^ >new Promise(function(resolve, reject) {}) .finally : (onfinally?: () => void) => Promise -> : ^ ^^^^^^^^^ ^^^^^ ^^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^ >new Promise(function(resolve, reject) {}) : Promise > : ^^^^^^^^^^^^^^^^ >Promise : PromiseConstructor @@ -21,7 +21,7 @@ let promise1 = new Promise(function(resolve, reject) {}) .finally(function() {}); >finally : (onfinally?: () => void) => Promise -> : ^ ^^^^^^^^^ ^^^^^ ^^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^ >function() {} : () => void > : ^^^^^^^^^^ diff --git a/tests/baselines/reference/validNullAssignments.types b/tests/baselines/reference/validNullAssignments.types index 5e01c486a8f57..38718e74f99c0 100644 --- a/tests/baselines/reference/validNullAssignments.types +++ b/tests/baselines/reference/validNullAssignments.types @@ -109,7 +109,7 @@ var h: { f(): void } = null; function i(a: T) { >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/validUndefinedAssignments.types b/tests/baselines/reference/validUndefinedAssignments.types index dbe01371a43f8..598dc04fb7805 100644 --- a/tests/baselines/reference/validUndefinedAssignments.types +++ b/tests/baselines/reference/validUndefinedAssignments.types @@ -76,7 +76,7 @@ var h: { f(): void } = x; function i(a: T) { >i : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types b/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types index 84378ca4c9aab..ed177e9b835c0 100644 --- a/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types +++ b/tests/baselines/reference/variableDeclaratorResolvedDuringContextualTyping.types @@ -144,7 +144,7 @@ module WinJS { public then(success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; >then : { (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => TPromise, error?: (err: any) => U_1, progress?: ProgressCallback): TPromise; (success?: (value: V) => U_1, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => U_1, error?: (err: any) => U_1, progress?: ProgressCallback): TPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: V) => TPromise > : ^ ^^ ^^^^^ >value : V @@ -158,7 +158,7 @@ module WinJS { public then(success?: (value: V) => TPromise, error?: (err: any) => U, progress?: ProgressCallback): TPromise; >then : { (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => TPromise, error?: (err: any) => U, progress?: ProgressCallback): TPromise; (success?: (value: V) => U_1, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => U_1, error?: (err: any) => U_1, progress?: ProgressCallback): TPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: V) => TPromise > : ^ ^^ ^^^^^ >value : V @@ -172,7 +172,7 @@ module WinJS { public then(success?: (value: V) => U, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; >then : { (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => TPromise, error?: (err: any) => U_1, progress?: ProgressCallback): TPromise; (success?: (value: V) => U, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => U_1, error?: (err: any) => U_1, progress?: ProgressCallback): TPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: V) => U > : ^ ^^ ^^^^^ >value : V @@ -186,7 +186,7 @@ module WinJS { public then(success?: (value: V) => U, error?: (err: any) => U, progress?: ProgressCallback): TPromise; >then : { (success?: (value: V) => TPromise, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => TPromise, error?: (err: any) => U_1, progress?: ProgressCallback): TPromise; (success?: (value: V) => U_1, error?: (err: any) => TPromise, progress?: ProgressCallback): TPromise; (success?: (value: V) => U, error?: (err: any) => U, progress?: ProgressCallback): TPromise; } -> : ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^^ ^^ ^^^ ^^ ^^^ ^^^ ^^^ >success : (value: V) => U > : ^ ^^ ^^^^^ >value : V @@ -218,7 +218,7 @@ module WinJS { public static as(value: ValueType): TPromise; >as : (value: ValueType) => TPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >value : ValueType > : ^^^^^^^^^ @@ -230,19 +230,19 @@ module WinJS { public static join(promises: TPromise[]): TPromise; >join : (promises: TPromise[]) => TPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >promises : TPromise[] > : ^^^^^^^^^^^^^^^^^^^^^ public static any(promises: TPromise[]): TPromise; >any : (promises: TPromise[]) => TPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >promises : TPromise[] > : ^^^^^^^^^^^^^^^^^^^^^ public static wrapError(error: any): TPromise; >wrapError : (error: any) => TPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >error : any > : ^^^ } @@ -499,7 +499,7 @@ class FileService { >WinJS.TPromise.as(result) : WinJS.TPromise > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >WinJS.TPromise.as : (value: ValueType) => WinJS.TPromise -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >WinJS.TPromise : typeof WinJS.TPromise > : ^^^^^^^^^^^^^^^^^^^^^ >WinJS : typeof WinJS @@ -507,7 +507,7 @@ class FileService { >TPromise : typeof WinJS.TPromise > : ^^^^^^^^^^^^^^^^^^^^^ >as : (value: ValueType) => WinJS.TPromise -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ >Files : any > : ^^^ >result : IUploadResult diff --git a/tests/baselines/reference/variadicTuples1.types b/tests/baselines/reference/variadicTuples1.types index d7d04ad2e53ab..8b726a3c79dca 100644 --- a/tests/baselines/reference/variadicTuples1.types +++ b/tests/baselines/reference/variadicTuples1.types @@ -57,7 +57,7 @@ type TN7 = TV1; function tup2(t: [...T], u: [...U]) { >tup2 : (t: [...T], u: [...U]) => readonly [1, ...T, 2, ...U, 3] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >t : [...T] > : ^^^^^^ >u : [...U] @@ -90,7 +90,7 @@ const t2 = tup2(['hello'], [10, true]); >tup2(['hello'], [10, true]) : readonly [1, string, 2, number, boolean, 3] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >tup2 : (t: [...T], u: [...U]) => readonly [1, ...T, 2, ...U, 3] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >['hello'] : [string] > : ^^^^^^^^ >'hello' : "hello" @@ -104,7 +104,7 @@ const t2 = tup2(['hello'], [10, true]); function concat(t: [...T], u: [...U]): [...T, ...U] { >concat : (t: [...T], u: [...U]) => [...T, ...U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : [...T] > : ^^^^^^ >u : [...U] @@ -133,7 +133,7 @@ const tc1 = concat([], []); >concat([], []) : [] > : ^^ >concat : (t: [...T], u: [...U]) => [...T, ...U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >[] : [] > : ^^ >[] : [] @@ -145,7 +145,7 @@ const tc2 = concat(['hello'], [42]); >concat(['hello'], [42]) : [string, number] > : ^^^^^^^^^^^^^^^^ >concat : (t: [...T], u: [...U]) => [...T, ...U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >['hello'] : [string] > : ^^^^^^^^ >'hello' : "hello" @@ -161,7 +161,7 @@ const tc3 = concat([1, 2, 3], sa); >concat([1, 2, 3], sa) : [number, number, number, ...string[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >concat : (t: [...T], u: [...U]) => [...T, ...U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >[1, 2, 3] : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -179,7 +179,7 @@ const tc4 = concat(sa, [1, 2, 3]); // Ideally would be [...string[], number, nu >concat(sa, [1, 2, 3]) : [...string[], number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >concat : (t: [...T], u: [...U]) => [...T, ...U] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >sa : string[] > : ^^^^^^^^ >[1, 2, 3] : [number, number, number] @@ -193,7 +193,7 @@ const tc4 = concat(sa, [1, 2, 3]); // Ideally would be [...string[], number, nu function concat2(t: T, u: U) { >concat2 : (t: T, u: U) => (T[number] | U[number])[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >t : T > : ^ >u : U @@ -218,7 +218,7 @@ const tc5 = concat2([1, 2, 3] as const, [4, 5, 6] as const); // (1 | 2 | 3 | 4 >concat2([1, 2, 3] as const, [4, 5, 6] as const) : (2 | 4 | 1 | 3 | 6 | 5)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >concat2 : (t: T, u: U) => (T[number] | U[number])[] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[1, 2, 3] as const : readonly [1, 2, 3] > : ^^^^^^^^^^^^^^^^^^ >[1, 2, 3] : readonly [1, 2, 3] @@ -363,7 +363,7 @@ function foo2(t1: [number, string], t2: [boolean], a1: number[]) { declare function foo3(x: number, ...args: [...T, number]): T; >foo3 : (x: number, ...args: [...T, number]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >x : number > : ^^^^^^ >args : [...T, number] @@ -371,7 +371,7 @@ declare function foo3(x: number, ...args: [...T, number]): function foo4(u: U) { >foo4 : (u: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >u : U > : ^ @@ -379,7 +379,7 @@ function foo4(u: U) { >foo3(1, 2) : [] > : ^^ >foo3 : (x: number, ...args: [...T, number]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -389,7 +389,7 @@ function foo4(u: U) { >foo3(1, 'hello', true, 2) : [string, boolean] > : ^^^^^^^^^^^^^^^^^ >foo3 : (x: number, ...args: [...T, number]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >'hello' : "hello" @@ -403,7 +403,7 @@ function foo4(u: U) { >foo3(1, ...u, 'hi', 2) : [...U, string] > : ^^^^^^^^^^^^^^ >foo3 : (x: number, ...args: [...T, number]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >...u : unknown @@ -419,7 +419,7 @@ function foo4(u: U) { >foo3(1) : unknown[] > : ^^^^^^^^^ >foo3 : (x: number, ...args: [...T, number]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ } @@ -428,25 +428,25 @@ function foo4(u: U) { declare function ft1(t: T): T; >ft1 : (t: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >t : T > : ^ declare function ft2(t: T): readonly [...T]; >ft2 : (t: T) => readonly [...T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >t : T > : ^ declare function ft3(t: [...T]): T; >ft3 : (t: [...T]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >t : [...T] > : ^^^^^^ declare function ft4(t: [...T]): readonly [...T]; >ft4 : (t: [...T]) => readonly [...T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >t : [...T] > : ^^^^^^ @@ -454,7 +454,7 @@ ft1(['hello', 42]); // (string | number)[] >ft1(['hello', 42]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >ft1 : (t: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >['hello', 42] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >'hello' : "hello" @@ -466,7 +466,7 @@ ft2(['hello', 42]); // readonly (string | number)[] >ft2(['hello', 42]) : readonly (string | number)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ft2 : (t: T) => readonly [...T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >['hello', 42] : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >'hello' : "hello" @@ -478,7 +478,7 @@ ft3(['hello', 42]); // [string, number] >ft3(['hello', 42]) : [string, number] > : ^^^^^^^^^^^^^^^^ >ft3 : (t: [...T]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >['hello', 42] : [string, number] > : ^^^^^^^^^^^^^^^^ >'hello' : "hello" @@ -490,7 +490,7 @@ ft4(['hello', 42]); // readonly [string, number] >ft4(['hello', 42]) : readonly [string, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >ft4 : (t: [...T]) => readonly [...T] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >['hello', 42] : [string, number] > : ^^^^^^^^^^^^^^^^ >'hello' : "hello" @@ -502,7 +502,7 @@ ft4(['hello', 42]); // readonly [string, number] function f0(t: [string, ...T], n: number) { >f0 : (t: [string, ...T], n: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : [string, ...T] > : ^^^^^^^^^^^^^^ >n : number @@ -551,7 +551,7 @@ function f0(t: [string, ...T], n: number) { function f1(t: [string, ...T, number], n: number) { >f1 : (t: [string, ...T, number], n: number) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : [string, ...T, number] > : ^^^^^^^^^^^^^^^^^^^^^^ >n : number @@ -602,7 +602,7 @@ function f1(t: [string, ...T, number], n: number) { function f2(t: [string, ...T]) { >f2 : (t: [string, ...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : [string, ...T] > : ^^^^^^^^^^^^^^ @@ -633,7 +633,7 @@ function f2(t: [string, ...T]) { function f3(t: [string, ...T, number]) { >f3 : (t: [string, ...T, number]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : [string, ...T, number] > : ^^^^^^^^^^^^^^^^^^^^^^ @@ -684,7 +684,7 @@ type TP2 = Partial<[string, ...T, ...number[]]>; // [strin declare function fm1(t: Arrayify<[string, number, ...T]>): T; >fm1 : (t: Arrayify<[string, number, ...T]>) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >t : [string[], number[], ...Arrayify] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -694,7 +694,7 @@ let tm1 = fm1([['abc'], [42], [true], ['def']]); // [boolean, string] >fm1([['abc'], [42], [true], ['def']]) : [boolean, string] > : ^^^^^^^^^^^^^^^^^ >fm1 : (t: Arrayify<[string, number, ...T]>) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[['abc'], [42], [true], ['def']] : [string[], number[], true[], string[]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >['abc'] : string[] @@ -718,7 +718,7 @@ let tm1 = fm1([['abc'], [42], [true], ['def']]); // [boolean, string] declare function fx1(a: string, ...args: T): T; >fx1 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >a : string > : ^^^^^^ >args : T @@ -726,7 +726,7 @@ declare function fx1(a: string, ...args: T): T; function gx1(u: U, v: V) { >gx1 : (u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >u : U > : ^ >v : V @@ -736,7 +736,7 @@ function gx1(u: U, v: V) { >fx1('abc') : [] > : ^^ >fx1 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ @@ -744,7 +744,7 @@ function gx1(u: U, v: V) { >fx1('abc', ...u) : U > : ^ >fx1 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...u : unknown @@ -756,7 +756,7 @@ function gx1(u: U, v: V) { >fx1('abc', ...v) : [...V] > : ^^^^^^ >fx1 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...v : unknown @@ -768,7 +768,7 @@ function gx1(u: U, v: V) { >fx1('abc', ...u) : U > : ^ >fx1 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...u : unknown @@ -780,7 +780,7 @@ function gx1(u: U, v: V) { >fx1('abc', ...v) : V > : ^ >fx1 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...v : unknown @@ -791,7 +791,7 @@ function gx1(u: U, v: V) { declare function fx2(a: string, ...args: T): T; >fx2 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >a : string > : ^^^^^^ >args : T @@ -799,7 +799,7 @@ declare function fx2(a: string, ...args: T): T; function gx2(u: U, v: V) { >gx2 : (u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >u : U > : ^ >v : V @@ -809,7 +809,7 @@ function gx2(u: U, v: V) { >fx2('abc') : [] > : ^^ >fx2 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ @@ -817,7 +817,7 @@ function gx2(u: U, v: V) { >fx2('abc', ...u) : U > : ^ >fx2 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...u : unknown @@ -829,7 +829,7 @@ function gx2(u: U, v: V) { >fx2('abc', ...v) : [...V] > : ^^^^^^ >fx2 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...v : unknown @@ -841,7 +841,7 @@ function gx2(u: U, v: V) { >fx2('abc', ...u) : U > : ^ >fx2 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...u : unknown @@ -853,7 +853,7 @@ function gx2(u: U, v: V) { >fx2('abc', ...v) : V > : ^ >fx2 : (a: string, ...args: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >'abc' : "abc" > : ^^^^^ >...v : unknown @@ -866,7 +866,7 @@ function gx2(u: U, v: V) { function f10(x: [string, ...unknown[]], y: [string, ...T], z: [string, ...U]) { >f10 : (x: [string, ...unknown[]], y: [string, ...T], z: [string, ...U]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : [string, ...unknown[]] > : ^^^^^^^^^^^^^^^^^^^^^^ >y : [string, ...T] @@ -928,7 +928,7 @@ function f10(x: [string, ...unknown[]], y: [str function f11(t: T, m: [...T], r: readonly [...T]) { >f11 : (t: T, m: [...T], r: readonly [...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >m : [...T] @@ -987,7 +987,7 @@ function f11(t: T, m: [...T], r: readonly [...T]) { function f12(t: T, m: [...T], r: readonly [...T]) { >f12 : (t: T, m: [...T], r: readonly [...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >m : [...T] @@ -1046,7 +1046,7 @@ function f12(t: T, m: [...T], r: readonly [...T]) function f13(t0: T, t1: [...T], t2: [...U]) { >f13 : (t0: T, t1: [...T], t2: [...U]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t0 : T > : ^ >t1 : [...T] @@ -1105,7 +1105,7 @@ function f13(t0: T, t1: [...T], t2: [...U]) { function f14(t0: T, t1: [...T], t2: [...U]) { >f14 : (t0: T, t1: [...T], t2: [...U]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t0 : T > : ^ >t1 : [...T] @@ -1164,7 +1164,7 @@ function f14(t0: T, t1: [...T], t2: [. function f15(k0: keyof T, k1: keyof [...T], k2: keyof [...U], k3: keyof [1, 2, ...T]) { >f15 : (k0: keyof T, k1: keyof [...T], k2: keyof [...U], k3: keyof [1, 2, ...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >k0 : keyof T > : ^^^^^^^ >k1 : keyof [...T] @@ -1251,7 +1251,7 @@ function f15(k0: keyof T, k1: keyof [...T], k2: function ft16(x: [unknown, unknown], y: [...T, ...T]) { >ft16 : (x: [unknown, unknown], y: [...T, ...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >y : [...T, ...T] @@ -1268,7 +1268,7 @@ function ft16(x: [unknown, unknown], y: [...T, ...T]) { function ft17(x: [unknown, unknown], y: [...T, ...T]) { >ft17 : (x: [unknown, unknown], y: [...T, ...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >y : [...T, ...T] @@ -1285,7 +1285,7 @@ function ft17(x: [unknown, unknown], y: [...T, ...T]) function ft18(x: [unknown, unknown], y: [...T, ...T]) { >ft18 : (x: [unknown, unknown], y: [...T, ...T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >y : [...T, ...T] @@ -1601,7 +1601,7 @@ type R36 = DropLast; function curry(f: (...args: [...T, ...U]) => R, ...a: T) { >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >f : (...args: [...T, ...U]) => R > : ^^^^ ^^ ^^^^^ >args : [...T, ...U] @@ -1650,7 +1650,7 @@ const c0 = curry(fn1); // (a: number, b: string, c: boolean, d: string[]) => nu >curry(fn1) : (a: number, b: string, c: boolean, d: string[]) => number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn1 : (a: number, b: string, c: boolean, d: string[]) => number > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ @@ -1660,7 +1660,7 @@ const c1 = curry(fn1, 1); // (b: string, c: boolean, d: string[]) => number >curry(fn1, 1) : (b: string, c: boolean, d: string[]) => number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn1 : (a: number, b: string, c: boolean, d: string[]) => number > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1672,7 +1672,7 @@ const c2 = curry(fn1, 1, 'abc'); // (c: boolean, d: string[]) => number >curry(fn1, 1, 'abc') : (c: boolean, d: string[]) => number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn1 : (a: number, b: string, c: boolean, d: string[]) => number > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1686,7 +1686,7 @@ const c3 = curry(fn1, 1, 'abc', true); // (d: string[]) => number >curry(fn1, 1, 'abc', true) : (d: string[]) => number > : ^^^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn1 : (a: number, b: string, c: boolean, d: string[]) => number > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1702,7 +1702,7 @@ const c4 = curry(fn1, 1, 'abc', true, ['x', 'y']); // () => number >curry(fn1, 1, 'abc', true, ['x', 'y']) : () => number > : ^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn1 : (a: number, b: string, c: boolean, d: string[]) => number > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1738,7 +1738,7 @@ const c10 = curry(fn2); // (x: number, b: boolean, ...args: string[]) => number >curry(fn2) : (x: number, b: boolean, ...args: string[]) => number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn2 : (x: number, b: boolean, ...args: string[]) => number > : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^ @@ -1748,7 +1748,7 @@ const c11 = curry(fn2, 1); // (b: boolean, ...args: string[]) => number >curry(fn2, 1) : (b: boolean, ...args: string[]) => number > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn2 : (x: number, b: boolean, ...args: string[]) => number > : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1760,7 +1760,7 @@ const c12 = curry(fn2, 1, true); // (...args: string[]) => number >curry(fn2, 1, true) : (...b: string[]) => number > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn2 : (x: number, b: boolean, ...args: string[]) => number > : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1774,7 +1774,7 @@ const c13 = curry(fn2, 1, true, 'abc', 'def'); // (...args: string[]) => number >curry(fn2, 1, true, 'abc', 'def') : (...b: string[]) => number > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn2 : (x: number, b: boolean, ...args: string[]) => number > : ^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^^^ >1 : 1 @@ -1802,7 +1802,7 @@ const c20 = curry(fn3); // (...args: string[]) => number >curry(fn3) : (...b: string[]) => number > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn3 : (...args: string[]) => number > : ^^^^ ^^ ^^^^^^^^^^^ @@ -1812,7 +1812,7 @@ const c21 = curry(fn3, 'abc', 'def'); // (...args: string[]) => number >curry(fn3, 'abc', 'def') : (...b: string[]) => number > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn3 : (...args: string[]) => number > : ^^^^ ^^ ^^^^^^^^^^^ >'abc' : "abc" @@ -1826,7 +1826,7 @@ const c22 = curry(fn3, ...sa); // (...args: string[]) => number >curry(fn3, ...sa) : (...b: string[]) => number > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^ >curry : (f: (...args: [...T, ...U]) => R, ...a: T) => (...b: U) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >fn3 : (...args: string[]) => number > : ^^^^ ^^ ^^^^^^^^^^^ >...sa : string @@ -1838,7 +1838,7 @@ const c22 = curry(fn3, ...sa); // (...args: string[]) => number function curry2(f: (...args: [...T, ...U]) => R, t: [...T], u: [...U]) { >curry2 : (f: (...args: [...T, ...U]) => R, t: [...T], u: [...U]) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >f : (...args: [...T, ...U]) => R > : ^^^^ ^^ ^^^^^ >args : [...T, ...U] @@ -1877,7 +1877,7 @@ curry2(fn10, ['hello', 42], [true]); >curry2(fn10, ['hello', 42], [true]) : string[] > : ^^^^^^^^ >curry2 : (f: (...args: [...T, ...U]) => R, t: [...T], u: [...U]) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >fn10 : (a: string, b: number, c: boolean) => string[] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >['hello', 42] : [string, number] @@ -1895,7 +1895,7 @@ curry2(fn10, ['hello'], [42, true]); >curry2(fn10, ['hello'], [42, true]) : string[] > : ^^^^^^^^ >curry2 : (f: (...args: [...T, ...U]) => R, t: [...T], u: [...U]) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ >fn10 : (a: string, b: number, c: boolean) => string[] > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >['hello'] : [string] @@ -1913,7 +1913,7 @@ curry2(fn10, ['hello'], [42, true]); declare function ft(t1: [...T], t2: [...T, number?]): T; >ft : (t1: [...T], t2: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t1 : [...T] > : ^^^^^^ >t2 : [...T, (number | undefined)?] @@ -1923,7 +1923,7 @@ ft([1, 2, 3], [1, 2, 3]); >ft([1, 2, 3], [1, 2, 3]) : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >ft : (t1: [...T], t2: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >[1, 2, 3] : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -1945,7 +1945,7 @@ ft([1, 2], [1, 2, 3]); >ft([1, 2], [1, 2, 3]) : [number, number] > : ^^^^^^^^^^^^^^^^ >ft : (t1: [...T], t2: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >[1, 2] : [number, number] > : ^^^^^^^^^^^^^^^^ >1 : 1 @@ -1965,7 +1965,7 @@ ft(['a', 'b'], ['c', 'd']) >ft(['a', 'b'], ['c', 'd']) : [string, string] > : ^^^^^^^^^^^^^^^^ >ft : (t1: [...T], t2: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >['a', 'b'] : [string, string] > : ^^^^^^^^^^^^^^^^ >'a' : "a" @@ -1983,7 +1983,7 @@ ft(['a', 'b'], ['c', 'd', 42]) >ft(['a', 'b'], ['c', 'd', 42]) : [string, string] > : ^^^^^^^^^^^^^^^^ >ft : (t1: [...T], t2: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >['a', 'b'] : [string, string] > : ^^^^^^^^^^^^^^^^ >'a' : "a" @@ -2003,7 +2003,7 @@ ft(['a', 'b'], ['c', 'd', 42]) declare function call(...args: [...T, (...args: T) => R]): [T, R]; >call : (...args: [...T, (...args: T) => R]) => [T, R] -> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >args : [...T, (...args: T) => R] > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >args : T @@ -2013,7 +2013,7 @@ call('hello', 32, (a, b) => 42); >call('hello', 32, (a, b) => 42) : [[string, number], number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >call : (...args: [...T, (...args: T) => R]) => [T, R] -> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >'hello' : "hello" > : ^^^^^^^ >32 : 32 @@ -2031,7 +2031,7 @@ call(...sa, (...x) => 42); >call(...sa, (...x) => 42) : [string[], number] > : ^^^^^^^^^^^^^^^^^^ >call : (...args: [...T, (...args: T) => R]) => [T, R] -> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^^^^ >...sa : string > : ^^^^^^ >sa : string[] @@ -2047,13 +2047,13 @@ call(...sa, (...x) => 42); declare function f20(args: [...T, number?]): T; >f20 : (args: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ >args : [...T, (number | undefined)?] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function f21(args: [...U, number?]) { >f21 : (args: [...U, number?]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >args : [...U, (number | undefined)?] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2063,7 +2063,7 @@ function f21(args: [...U, number?]) { >f20(args) : U > : ^ >f20 : (args: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ >args : [...U, (number | undefined)?] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -2073,7 +2073,7 @@ function f21(args: [...U, number?]) { >f20(["foo", "bar"]) : [string] > : ^^^^^^^^ >f20 : (args: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ >["foo", "bar"] : [string, string] > : ^^^^^^^^^^^^^^^^ >"foo" : "foo" @@ -2087,7 +2087,7 @@ function f21(args: [...U, number?]) { >f20(["foo", 42]) : [string] > : ^^^^^^^^ >f20 : (args: [...T, number?]) => T -> : ^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ ^^ ^^^^^ >["foo", 42] : [string, number] > : ^^^^^^^^^^^^^^^^ >"foo" : "foo" @@ -2098,19 +2098,19 @@ function f21(args: [...U, number?]) { declare function f22(args: [...T, number]): T; >f22 : { (args: [...T, number]): T; (args: [...T_1]): T_1; } -> : ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >args : [...T, number] > : ^^^^^^^^^^^^^^ declare function f22(args: [...T]): T; >f22 : { (args: [...T_1, number]): T_1; (args: [...T]): T; } -> : ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >args : [...T] > : ^^^^^^ function f23(args: [...U, number]) { >f23 : (args: [...U, number]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >args : [...U, number] > : ^^^^^^^^^^^^^^ @@ -2120,7 +2120,7 @@ function f23(args: [...U, number]) { >f22(args) : U > : ^ >f22 : { (args: [...T, number]): T; (args: [...T]): T; } -> : ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >args : [...U, number] > : ^^^^^^^^^^^^^^ @@ -2130,7 +2130,7 @@ function f23(args: [...U, number]) { >f22(["foo", "bar"]) : [string, string] > : ^^^^^^^^^^^^^^^^ >f22 : { (args: [...T, number]): T; (args: [...T]): T; } -> : ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >["foo", "bar"] : [string, string] > : ^^^^^^^^^^^^^^^^ >"foo" : "foo" @@ -2144,7 +2144,7 @@ function f23(args: [...U, number]) { >f22(["foo", 42]) : [string] > : ^^^^^^^^ >f22 : { (args: [...T, number]): T; (args: [...T]): T; } -> : ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^ ^^ ^^^ ^^^ >["foo", 42] : [string, number] > : ^^^^^^^^^^^^^^^^ >"foo" : "foo" @@ -2164,7 +2164,7 @@ interface Desc { bind(this: Desc<[...T, ...U], R>, ...args: T): Desc<[...U], R>; >bind : (this: Desc<[...T, ...U], R>, ...args: T) => Desc<[...U], R> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >this : Desc<[...T, ...U], R> > : ^^^^^^^^^^^^^^^^^^^^^ >args : T @@ -2181,11 +2181,11 @@ const b = a.bind("", 1); // Desc<[boolean], object> >a.bind("", 1) : Desc<[boolean], object> > : ^^^^^^^^^^^^^^^^^^^^^^^ >a.bind : (this: Desc<[...T, ...U], R>, ...args: T) => Desc<[...U], R> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >a : Desc<[string, number, boolean], object> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >bind : (this: Desc<[...T, ...U], R>, ...args: T) => Desc<[...U], R> -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ ^^ ^^^^^ >"" : "" > : ^^ >1 : 1 @@ -2219,7 +2219,7 @@ declare function getOrgUser(id: string, orgId: number, options?: { y?: number, z function callApi(method: (...args: [...T, object]) => U) { >callApi : (method: (...args: [...T, object]) => U) => (...args_0: T) => U -> : ^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >method : (...args: [...T, object]) => U > : ^^^^ ^^ ^^^^^ >args : [...T, object] @@ -2246,7 +2246,7 @@ callApi(getUser); >callApi(getUser) : (id: string) => string > : ^^^^^^^^^^^^^^^^^^^^^^ >callApi : (method: (...args: [...T, object]) => U) => (...args_0: T) => U -> : ^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >getUser : (id: string, options?: { x?: string; }) => string > : ^ ^^ ^^ ^^^ ^^^^^ @@ -2254,7 +2254,7 @@ callApi(getOrgUser); >callApi(getOrgUser) : (id: string, orgId: number) => void > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >callApi : (method: (...args: [...T, object]) => U) => (...args_0: T) => U -> : ^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >getOrgUser : (id: string, orgId: number, options?: { y?: number; z?: boolean; }) => void > : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ diff --git a/tests/baselines/reference/variadicTuples2.types b/tests/baselines/reference/variadicTuples2.types index 8a0ea1daf5118..cf36d628c24e9 100644 --- a/tests/baselines/reference/variadicTuples2.types +++ b/tests/baselines/reference/variadicTuples2.types @@ -451,7 +451,7 @@ ft2(0, 'abc', 'def', true); // Error function ft3(x: [number, ...T], y: [number, number], z: [number, ...number[]]) { >ft3 : (x: [number, ...T], y: [number, number], z: [number, ...number[]]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : [number, ...T] > : ^^^^^^^^^^^^^^ >y : [number, number] @@ -507,7 +507,7 @@ let tt4: [number, ...number[]] = tt3 // Error function pipe(...args: [...T, (...values: T) => void]) { >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >args : [...T, (...values: T) => void] > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >values : T @@ -545,11 +545,11 @@ function pipe(...args: [...T, (...values: T) => vo >args.slice(0, -1) : (((...values: T) => void) | T[number])[] > : ^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^ >args.slice : (start?: number, end?: number) => (((...values: T) => void) | T[number])[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^ ^ ^^^^^^^^^^ >args : [...T, (...values: T) => void] > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >slice : (start?: number, end?: number) => (((...values: T) => void) | T[number])[] -> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^ ^^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^^^^ ^ ^^^^^^^^^^ >0 : 0 > : ^ >-1 : -1 @@ -572,7 +572,7 @@ pipe("foo", 123, true, (a, b, c) => { >pipe("foo", 123, true, (a, b, c) => { a; // string b; // number c; // boolean}) : void > : ^^^^ >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >"foo" : "foo" > : ^^^^^ >123 : 123 @@ -606,7 +606,7 @@ pipe("foo", 123, true, (...x) => { >pipe("foo", 123, true, (...x) => { x; // [string, number, boolean]}) : void > : ^^^^ >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >"foo" : "foo" > : ^^^^^ >123 : 123 @@ -632,7 +632,7 @@ pipe(...sa, (...x) => { >pipe(...sa, (...x) => { x; // string[]}) : void > : ^^^^ >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >...sa : string > : ^^^^^^ >sa : string[] @@ -652,7 +652,7 @@ pipe(1, ...sa, 2, (...x) => { >pipe(1, ...sa, 2, (...x) => { x; // [number, ...string[], number] let qq = x[x.length - 1]; let ww = x[0]}) : void > : ^^^^ >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >...sa : string @@ -704,7 +704,7 @@ pipe(1, 2, 3, 4); // Error >pipe(1, 2, 3, 4) : void > : ^^^^ >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >1 : 1 > : ^ >2 : 2 @@ -718,7 +718,7 @@ pipe(...sa); // Error >pipe(...sa) : void > : ^^^^ >pipe : (...args: [...T, (...values: T) => void]) => void -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ >...sa : string > : ^^^^^^ >sa : string[] @@ -726,7 +726,7 @@ pipe(...sa); // Error declare function fn1(t: [...unknown[], T, U]): [T, U]; >fn1 : (t: [...unknown[], T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >t : [...unknown[], T, U] > : ^^^^^^^^^^^^^^^^^^^^ @@ -734,7 +734,7 @@ fn1([]); // Error >fn1([]) : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >fn1 : (t: [...unknown[], T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[] : [] > : ^^ @@ -742,7 +742,7 @@ fn1([1]); // Error >fn1([1]) : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >fn1 : (t: [...unknown[], T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 @@ -752,7 +752,7 @@ fn1([1, 'abc']); // [number, string] >fn1([1, 'abc']) : [number, string] > : ^^^^^^^^^^^^^^^^ >fn1 : (t: [...unknown[], T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 'abc'] : [number, string] > : ^^^^^^^^^^^^^^^^ >1 : 1 @@ -764,7 +764,7 @@ fn1([1, 'abc', true]); // [string, boolean] >fn1([1, 'abc', true]) : [string, boolean] > : ^^^^^^^^^^^^^^^^^ >fn1 : (t: [...unknown[], T, U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 'abc', true] : [number, string, true] > : ^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -776,7 +776,7 @@ fn1([1, 'abc', true]); // [string, boolean] declare function fn2(t: [T, ...unknown[], U]): [T, U]; >fn2 : (t: [T, ...unknown[], U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >t : [T, ...unknown[], U] > : ^^^^^^^^^^^^^^^^^^^^ @@ -784,7 +784,7 @@ fn2([]); // Error >fn2([]) : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >fn2 : (t: [T, ...unknown[], U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[] : [] > : ^^ @@ -792,7 +792,7 @@ fn2([1]); // Error >fn2([1]) : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >fn2 : (t: [T, ...unknown[], U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 @@ -802,7 +802,7 @@ fn2([1, 'abc']); // [number, string] >fn2([1, 'abc']) : [number, string] > : ^^^^^^^^^^^^^^^^ >fn2 : (t: [T, ...unknown[], U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 'abc'] : [number, string] > : ^^^^^^^^^^^^^^^^ >1 : 1 @@ -814,7 +814,7 @@ fn2([1, 'abc', true]); // [number, boolean] >fn2([1, 'abc', true]) : [number, boolean] > : ^^^^^^^^^^^^^^^^^ >fn2 : (t: [T, ...unknown[], U]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 'abc', true] : [number, string, true] > : ^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -828,7 +828,7 @@ fn2([1, 'abc', true]); // [number, boolean] declare function foo(...stringsAndNumber: readonly [...S, number]): [...S, number]; >foo : (...stringsAndNumber: readonly [...S, number]) => [...S, number] -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >stringsAndNumber : readonly [...S, number] > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -838,7 +838,7 @@ const a1 = foo('blah1', 1); >foo('blah1', 1) : ["blah1", number] > : ^^^^^^^^^^^^^^^^^ >foo : (...stringsAndNumber: readonly [...S, number]) => [...S, number] -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >'blah1' : "blah1" > : ^^^^^^^ >1 : 1 @@ -850,7 +850,7 @@ const b1 = foo('blah1', 'blah2', 1); >foo('blah1', 'blah2', 1) : ["blah1", "blah2", number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (...stringsAndNumber: readonly [...S, number]) => [...S, number] -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >'blah1' : "blah1" > : ^^^^^^^ >'blah2' : "blah2" @@ -864,7 +864,7 @@ const c1 = foo(1); // Error >foo(1) : [string, ...string[], number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (...stringsAndNumber: readonly [...S, number]) => [...S, number] -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ @@ -874,7 +874,7 @@ const d1 = foo(1, 2); // Error >foo(1, 2) : [string, ...string[], number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (...stringsAndNumber: readonly [...S, number]) => [...S, number] -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >1 : 1 > : ^ >2 : 2 @@ -886,7 +886,7 @@ const e1 = foo('blah1', 'blah2', 1, 2, 3); // Error >foo('blah1', 'blah2', 1, 2, 3) : [string, ...string[], number] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (...stringsAndNumber: readonly [...S, number]) => [...S, number] -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >'blah1' : "blah1" > : ^^^^^^^ >'blah2' : "blah2" diff --git a/tests/baselines/reference/varianceAnnotations.types b/tests/baselines/reference/varianceAnnotations.types index 149ddc169d21e..55df397c75655 100644 --- a/tests/baselines/reference/varianceAnnotations.types +++ b/tests/baselines/reference/varianceAnnotations.types @@ -276,13 +276,13 @@ type T23 = T; // Error declare function f1(x: T): void; // Error >f1 : (x: T) => void -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ declare function f2(): T; // Error >f2 : () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ class C { >C : C @@ -354,7 +354,7 @@ interface Child extends Parent { function fn(inp: Child) { >fn : (inp: Child) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >inp : Child > : ^^^^^^^^^^^^^^^^^ @@ -429,7 +429,7 @@ interface ActionObject { declare function createMachine(action: ActionObject): StateNode; >createMachine : (action: ActionObject) => StateNode -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >type : string > : ^^^^^^ >action : ActionObject @@ -437,7 +437,7 @@ declare function createMachine(action: ActionOb declare function interpret(machine: StateNode): void; >interpret : (machine: StateNode) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >machine : StateNode > : ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -447,7 +447,7 @@ const machine = createMachine({} as any); >createMachine({} as any) : StateNode > : ^^^^^^^^^^^^^^^^^^^ >createMachine : (action: ActionObject) => StateNode -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{} as any : any > : ^^^ >{} : {} @@ -457,7 +457,7 @@ interpret(machine); >interpret(machine) : void > : ^^^^ >interpret : (machine: StateNode) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >machine : StateNode > : ^^^^^^^^^^^^^^^^^^^ @@ -473,7 +473,7 @@ createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq); // Erro >createMachine<{ type: "PLAY"; value: number } | { type: "RESET" }>(qq) : StateNode > : ^^^^^^^^^^^^^^^^^^^ >createMachine : (action: ActionObject) => StateNode -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >type : "PLAY" > : ^^^^^^ >value : number @@ -513,7 +513,7 @@ let OuterC = class C { foo(): C { >foo : () => C -> : ^^^^^^^^^^ +> : ^^^^^^^ ^ return this; >this : this diff --git a/tests/baselines/reference/varianceMeasurement.types b/tests/baselines/reference/varianceMeasurement.types index 1c0c91e75a4f9..d8d9f5fa1d7af 100644 --- a/tests/baselines/reference/varianceMeasurement.types +++ b/tests/baselines/reference/varianceMeasurement.types @@ -150,7 +150,7 @@ interface Fn { then(next: Fn): Fn; >then : (next: Fn) => Fn -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >next : Fn > : ^^^^^^^^ } diff --git a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types index e27a694abd66d..6645507d860ec 100644 --- a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types +++ b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types @@ -30,7 +30,7 @@ class Left { /** The given function is applied if this is a `Right` */ map(f: (a: A) => B): Either { >map : (f: (a: A) => B) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -43,7 +43,7 @@ class Left { } ap(fab: Either B>): Either { >ap : (fab: Either B>) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fab : Either B> > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >a : A @@ -78,7 +78,7 @@ class Right { map(f: (a: A) => B): Either { >map : (f: (a: A) => B) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -102,7 +102,7 @@ class Right { } ap(fab: Either B>): Either { >ap : (fab: Either B>) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fab : Either B> > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >a : A @@ -205,7 +205,7 @@ const tmp1: MyInfo = null!; function tmp2(n: N) {} >tmp2 : (n: N) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : N > : ^ @@ -213,7 +213,7 @@ tmp2(tmp1); // uncommenting this line removes a type error from a completely unr >tmp2(tmp1) : void > : ^^^^ >tmp2 : (n: N) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >tmp1 : MyInfo > : ^^^^^^ diff --git a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types index 3cd12d54b9578..3826d92f03881 100644 --- a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types +++ b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types @@ -30,7 +30,7 @@ class Left { /** The given function is applied if this is a `Right` */ map(f: (a: A) => B): Either { >map : (f: (a: A) => B) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -43,7 +43,7 @@ class Left { } ap(fab: Either B>): Either { >ap : (fab: Either B>) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fab : Either B> > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >a : A @@ -78,7 +78,7 @@ class Right { map(f: (a: A) => B): Either { >map : (f: (a: A) => B) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (a: A) => B > : ^ ^^ ^^^^^ >a : A @@ -102,7 +102,7 @@ class Right { } ap(fab: Either B>): Either { >ap : (fab: Either B>) => Either -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fab : Either B> > : ^^^^^^^^^^^ ^^ ^^^^^ ^ >a : A @@ -205,7 +205,7 @@ const tmp1: MyInfo = null!; function tmp2(n: N) {} >tmp2 : (n: N) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : N > : ^ diff --git a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types index f8fde7949d719..1a2235500681c 100644 --- a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types +++ b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types @@ -32,7 +32,7 @@ type P2 = { data: X }; interface I { fn(p1: P1>, p2: P2>): void; >fn : (p1: P1>, p2: P2>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >p1 : P1> > : ^^^^^^^^^^^^^^ >p2 : P2> diff --git a/tests/baselines/reference/visibilityOfTypeParameters.types b/tests/baselines/reference/visibilityOfTypeParameters.types index 47df1b98a5569..84a8208d7ffe5 100644 --- a/tests/baselines/reference/visibilityOfTypeParameters.types +++ b/tests/baselines/reference/visibilityOfTypeParameters.types @@ -7,7 +7,7 @@ export class MyClass { protected myMethod(val: T): T { >myMethod : (val: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >val : T > : ^ diff --git a/tests/baselines/reference/voidReturnIndexUnionInference.types b/tests/baselines/reference/voidReturnIndexUnionInference.types index 995383b34b5db..ca022e67cdafd 100644 --- a/tests/baselines/reference/voidReturnIndexUnionInference.types +++ b/tests/baselines/reference/voidReturnIndexUnionInference.types @@ -4,7 +4,7 @@ // repro from https://github.com/Microsoft/TypeScript/issues/25274 export function safeInvoke( >safeInvoke : (func: ((arg1: A1) => R) | null | undefined, arg1: A1) => R | undefined -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ func: ((arg1: A1) => R) | null | undefined, >func : ((arg1: A1) => R) | null | undefined @@ -52,7 +52,7 @@ interface Props { function bad

(props: Readonly

) { >bad :

(props: Readonly

) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >props : Readonly

> : ^^^^^^^^^^^ @@ -60,7 +60,7 @@ function bad

(props: Readonly

) { >safeInvoke(props.onFoo, "blah") : boolean | undefined > : ^^^^^^^^^^^^^^^^^^^ >safeInvoke : (func: ((arg1: A1) => R) | null | undefined, arg1: A1) => R | undefined -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >props.onFoo : ((value: string) => boolean) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >props : Readonly

@@ -76,7 +76,7 @@ function bad

(props: Readonly

) { >safeInvoke(props.onBar, "blah") : void | undefined > : ^^^^^^^^^^^^^^^^ >safeInvoke : (func: ((arg1: A1) => R) | null | undefined, arg1: A1) => R | undefined -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >props.onBar : ((value: string) => void) | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ >props : Readonly

diff --git a/tests/baselines/reference/voidUndefinedReduction.types b/tests/baselines/reference/voidUndefinedReduction.types index b1f9ed6009be1..713535a055977 100644 --- a/tests/baselines/reference/voidUndefinedReduction.types +++ b/tests/baselines/reference/voidUndefinedReduction.types @@ -5,7 +5,7 @@ function isDefined(value: T | undefined | null | void): value is T { >isDefined : (value: T | undefined | null | void) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : void | T | null | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -32,7 +32,7 @@ if (isDefined(foo)) { >isDefined(foo) : boolean > : ^^^^^^^ >isDefined : (value: T | undefined | null | void) => value is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >foo : string | undefined > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/vueLikeDataAndPropsInference.types b/tests/baselines/reference/vueLikeDataAndPropsInference.types index f71eba5d8bf66..107641cd28a22 100644 --- a/tests/baselines/reference/vueLikeDataAndPropsInference.types +++ b/tests/baselines/reference/vueLikeDataAndPropsInference.types @@ -57,13 +57,13 @@ type ThisTypedOptions = declare function test(fn: ThisTypedOptions): void; >test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : ThisTypedOptions > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function test(fn: Options): void; >test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : Options<(this: Instance) => object, {}> > : ^^^^^^^^^ ^^ ^^^^^ ^^^^^ @@ -71,7 +71,7 @@ test({ >test({ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }}) : void > : ^^^^ >test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >{ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }} : { props: { foo: string; }; data(this: Readonly<{ foo: string; }> & Instance): { bar: boolean; }; watch: { foo(newVal: string, oldVal: string): void; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ diff --git a/tests/baselines/reference/vueLikeDataAndPropsInference2.types b/tests/baselines/reference/vueLikeDataAndPropsInference2.types index 206646398de17..0476dcf5554da 100644 --- a/tests/baselines/reference/vueLikeDataAndPropsInference2.types +++ b/tests/baselines/reference/vueLikeDataAndPropsInference2.types @@ -58,13 +58,13 @@ type ThisTypedOptions = declare function test(fn: ThisTypedOptions): void; >test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : ThisTypedOptions > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function test(fn: Options): void; >test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >fn : Options object), PropsDefinition>> > : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -72,7 +72,7 @@ test({ >test({ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }}) : void > : ^^^^ >test : { (fn: ThisTypedOptions): void; (fn: Options): void; } -> : ^^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >{ props: { foo: '' }, data(): { bar: boolean } { return { bar: true } }, watch: { foo(newVal: string, oldVal: string): void { this.bar = false } }} : { props: { foo: string; }; data(this: Readonly<{ foo: string; }> & Instance): { bar: boolean; }; watch: { foo(newVal: string, oldVal: string): void; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ diff --git a/tests/baselines/reference/widenToAny1.types b/tests/baselines/reference/widenToAny1.types index ff6671a28ca8c..5f0920957ed8f 100644 --- a/tests/baselines/reference/widenToAny1.types +++ b/tests/baselines/reference/widenToAny1.types @@ -3,7 +3,7 @@ === widenToAny1.ts === function foo1(f1: { x: T; y: T }): T { >foo1 : (f1: { x: T; y: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f1 : { x: T; y: T; } > : ^^^^^ ^^^^^ ^^^ >x : T @@ -21,7 +21,7 @@ var z1: number = foo1({ x: undefined, y: "def" }); // Best common type is any >foo1({ x: undefined, y: "def" }) : string > : ^^^^^^ >foo1 : (f1: { x: T; y: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ x: undefined, y: "def" } : { x: undefined; y: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : undefined diff --git a/tests/baselines/reference/widenToAny2.types b/tests/baselines/reference/widenToAny2.types index f8db97cc759ab..4f22d24ea9a97 100644 --- a/tests/baselines/reference/widenToAny2.types +++ b/tests/baselines/reference/widenToAny2.types @@ -3,7 +3,7 @@ === widenToAny2.ts === function foo3(x: T[]): T { >foo3 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -17,7 +17,7 @@ var z3:number = foo3([undefined, "def"]); // Type is any, but should be string >foo3([undefined, "def"]) : string > : ^^^^^^ >foo3 : (x: T[]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[undefined, "def"] : string[] > : ^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/wideningTuples1.types b/tests/baselines/reference/wideningTuples1.types index a4f773a23dda8..1f42253b21b05 100644 --- a/tests/baselines/reference/wideningTuples1.types +++ b/tests/baselines/reference/wideningTuples1.types @@ -3,7 +3,7 @@ === wideningTuples1.ts === declare function foo(x: T): T; >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -13,7 +13,7 @@ var y = foo([undefined]); >foo([undefined]) : [any] > : ^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[undefined] : [undefined] > : ^^^^^^^^^^^ >undefined : undefined diff --git a/tests/baselines/reference/wideningWithTopLevelTypeParameter.types b/tests/baselines/reference/wideningWithTopLevelTypeParameter.types index 7ace3f1022539..7b1446832a9ec 100644 --- a/tests/baselines/reference/wideningWithTopLevelTypeParameter.types +++ b/tests/baselines/reference/wideningWithTopLevelTypeParameter.types @@ -19,31 +19,31 @@ type C4 = T extends unknown ? T | undefined : never; declare function f0(x: T): [T]; >f0 : (x: T) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function f1(x: C1): [T]; >f1 : (x: C1) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : C1 > : ^^^^^ declare function f2(x: C1>): [T]; >f2 : (x: C1>) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : C1> > : ^^^^^^^^^ declare function f3(x: C1>>): [T]; >f3 : (x: C1>>) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : C1>> > : ^^^^^^^^^^^^^ declare function f4(x: C1>>>): [T]; >f4 : (x: C1>>>) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : C1>>> > : ^^^^^^^^^^^^^^^^^ @@ -53,7 +53,7 @@ const c0 = f0(7); // [number] >f0(7) : [number] > : ^^^^^^^^ >f0 : (x: T) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >7 : 7 > : ^ @@ -63,7 +63,7 @@ const c1 = f1(7); // [number] >f1(7) : [number] > : ^^^^^^^^ >f1 : (x: C1) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >7 : 7 > : ^ @@ -73,7 +73,7 @@ const c2 = f2(7); // [number] >f2(7) : [number] > : ^^^^^^^^ >f2 : (x: C1>) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >7 : 7 > : ^ @@ -83,7 +83,7 @@ const c3 = f3(7); // [number] >f3(7) : [number] > : ^^^^^^^^ >f3 : (x: C1>>) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >7 : 7 > : ^ @@ -93,7 +93,7 @@ const c4 = f4(7); // [7] since we have an internal nesting limit of 3 >f4(7) : [7] > : ^^^ >f4 : (x: C1>>>) => [T] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >7 : 7 > : ^ diff --git a/tests/baselines/reference/wrappedAndRecursiveConstraints.types b/tests/baselines/reference/wrappedAndRecursiveConstraints.types index 0e88675e39040..7e63624bdffcd 100644 --- a/tests/baselines/reference/wrappedAndRecursiveConstraints.types +++ b/tests/baselines/reference/wrappedAndRecursiveConstraints.types @@ -13,7 +13,7 @@ class C { foo(x: U) { >foo : (x: U) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : U > : ^ diff --git a/tests/baselines/reference/wrappedAndRecursiveConstraints3.types b/tests/baselines/reference/wrappedAndRecursiveConstraints3.types index b5689bd187095..e4ef9de61c568 100644 --- a/tests/baselines/reference/wrappedAndRecursiveConstraints3.types +++ b/tests/baselines/reference/wrappedAndRecursiveConstraints3.types @@ -15,13 +15,13 @@ class C { foo(x: U) { >foo : (x: U) => (x: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : U > : ^ function bar(x: V) { >bar : (x: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : V > : ^ @@ -31,7 +31,7 @@ class C { } return bar; >bar : (x: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ } } diff --git a/tests/baselines/reference/wrappedAndRecursiveConstraints4.types b/tests/baselines/reference/wrappedAndRecursiveConstraints4.types index 46b697b3b8fb6..ddab8cc355cb0 100644 --- a/tests/baselines/reference/wrappedAndRecursiveConstraints4.types +++ b/tests/baselines/reference/wrappedAndRecursiveConstraints4.types @@ -13,13 +13,13 @@ class C { foo(x: U) { >foo : (x: U) => (x: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : U > : ^ function bar(x: V) { >bar : (x: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >x : V > : ^ @@ -29,7 +29,7 @@ class C { } return bar; >bar : (x: V) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ } }

> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >React : any diff --git a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types index 09c38866b4d64..0fa929475c197 100644 --- a/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types +++ b/tests/baselines/reference/reactReduxLikeDeferredInferenceAllowsAssignment.types @@ -176,7 +176,7 @@ type InferableComponentEnhancerWithProps = < declare const connect: { >connect : (mapStateToProps: null | undefined, mapDispatchToProps: TDispatchProps) => InferableComponentEnhancerWithProps, TOwnProps> -> : ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ( mapStateToProps: null | undefined, @@ -352,9 +352,9 @@ const Test1 = connect( >connect( null, mapDispatchToProps)(TestComponent) : ConnectedComponentClass> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >connect( null, mapDispatchToProps) : InferableComponentEnhancerWithProps<{ simpleAction: (payload: boolean) => { type: string; payload: boolean; }; thunkAction: (param1: number, param2: string) => Promise; }, {}> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ >connect : (mapStateToProps: null | undefined, mapDispatchToProps: TDispatchProps) => InferableComponentEnhancerWithProps, TOwnProps> -> : ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ null, mapDispatchToProps diff --git a/tests/baselines/reference/recursiveClassBaseType.types b/tests/baselines/reference/recursiveClassBaseType.types index ed89ef813ceb4..d233dfc40fef0 100644 --- a/tests/baselines/reference/recursiveClassBaseType.types +++ b/tests/baselines/reference/recursiveClassBaseType.types @@ -5,13 +5,13 @@ declare const p: (fn: () => T) => T; >p : (fn: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fn : () => T > : ^^^^^^ declare const Base: (val: T) => { new(): T }; >Base : (val: T) => { new (): T; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >val : T > : ^ @@ -21,7 +21,7 @@ class C extends Base({ x: p(() => []) }) { } >Base({ x: p(() => []) }) : { x: C[]; } > : ^^^^^^^^^^^ >Base : (val: T) => { new (): T; } -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ x: p(() => []) } : { x: C[]; } > : ^^^^^^^^^^^ >x : C[] @@ -29,7 +29,7 @@ class C extends Base({ x: p(() => []) }) { } >p(() => []) : C[] > : ^^^ >p : (fn: () => T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => [] : () => never[] > : ^^^^^^^^^^^^^ >[] : never[] diff --git a/tests/baselines/reference/recursiveConditionalTypes.types b/tests/baselines/reference/recursiveConditionalTypes.types index a82cbcb06a8ed..3c5417d14dda8 100644 --- a/tests/baselines/reference/recursiveConditionalTypes.types +++ b/tests/baselines/reference/recursiveConditionalTypes.types @@ -22,7 +22,7 @@ type MyPromise = { then(f: ((value: T) => U | PromiseLike) | null | undefined): MyPromise; >then : (f: ((value: T) => U | PromiseLike) | null | undefined) => MyPromise -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : ((value: T) => U | PromiseLike) | null | undefined > : ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ >value : T @@ -47,7 +47,7 @@ type P2 = __Awaited>; // Error function f11(tx: T, ta: __Awaited, ux: U, ua: __Awaited) { >f11 : (tx: T, ta: __Awaited, ux: U, ua: __Awaited) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >tx : T > : ^ >ta : __Awaited @@ -156,7 +156,7 @@ type TT5 = TupleOf; // Depth error function f22(tn: TupleOf, tm: TupleOf) { >f22 : (tn: TupleOf, tm: TupleOf) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >tn : TupleOf > : ^^^^^^^^^^^^^^^^^^ >tm : TupleOf @@ -181,7 +181,7 @@ function f22(tn: TupleOf, tm: TupleOf< declare function f23(t: TupleOf): T; >f23 : (t: TupleOf) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >t : [T, T, T] > : ^^^^^^^^^ @@ -189,7 +189,7 @@ f23(['a', 'b', 'c']); // string >f23(['a', 'b', 'c']) : string > : ^^^^^^ >f23 : (t: TupleOf) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >['a', 'b', 'c'] : [string, string, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >'a' : "a" @@ -215,7 +215,7 @@ type InfBox = Box>; declare function unbox(box: RecBox): T >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >box : RecBox > : ^^^^^^^^^ @@ -271,7 +271,7 @@ unbox(b1); // string >unbox(b1) : string > : ^^^^^^ >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b1 : Box>>>>> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -279,7 +279,7 @@ unbox(b2); // string >unbox(b2) : string > : ^^^^^^ >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b2 : T6 > : ^^ @@ -287,7 +287,7 @@ unbox(b3); // InfBox >unbox(b3) : InfBox > : ^^^^^^^^^^^^^^ >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b3 : InfBox > : ^^^^^^^^^^^^^^ @@ -295,7 +295,7 @@ unbox({ value: { value: { value: { value: { value: { value: 5 }}}}}}); // numbe >unbox({ value: { value: { value: { value: { value: { value: 5 }}}}}}) : number > : ^^^^^^ >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ value: { value: { value: { value: { value: { value: 5 }}}}}} : { value: { value: { value: { value: { value: { value: number; }; }; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : { value: { value: { value: { value: { value: number; }; }; }; }; } @@ -327,7 +327,7 @@ unbox(b4); // { value: { value: typeof b4 }} >unbox(b4) : { value: { value: typeof b4; }; } > : ^^^^^^^^^ ^^^ >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >b4 : { value: { value: { value: typeof b4; }; }; } > : ^^^^^^^^^ ^^^ @@ -335,7 +335,7 @@ unbox({ value: { value: { get value() { return this; } }}}); // { readonly valu >unbox({ value: { value: { get value() { return this; } }}}) : { readonly value: { readonly value: any; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unbox : (box: RecBox) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ value: { value: { get value() { return this; } }}} : { value: { value: { readonly value: { readonly value: any; }; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : { value: { readonly value: { readonly value: any; }; }; } @@ -367,7 +367,7 @@ type Box2 = { value: T }; declare function foo(x: Box1>): T; >foo : (x: Box1>) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Box1> > : ^^^^^^^^^^^^^ @@ -379,7 +379,7 @@ foo(z); // string >foo(z) : string > : ^^^^^^ >foo : (x: Box1>) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >z : Box2> > : ^^^^^^^^^^^^^^^^^^ @@ -405,7 +405,7 @@ type Unpack2 = T extends (infer U)[] ? Unpack2 : T; function f20(x: Unpack1, y: Unpack2) { >f20 : (x: Unpack1, y: Unpack2) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Unpack1 > : ^^^^^^^^^^ >y : Unpack2 @@ -431,7 +431,7 @@ function f20(x: Unpack1, y: Unpack2) { >f20(y, x) : void > : ^^^^ >f20 : (x: Unpack1, y: Unpack2) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >y : Unpack2 > : ^^^^^^^^^^ >x : Unpack1 @@ -448,7 +448,7 @@ type Grow2 = T['length'] extends N ? T : function f21(x: Grow1<[], T>, y: Grow2<[], T>) { >f21 : (x: Grow1<[], T>, y: Grow2<[], T>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : Grow1<[], T> > : ^^^^^^^^^^^^ >y : Grow2<[], T> @@ -458,7 +458,7 @@ function f21(x: Grow1<[], T>, y: Grow2<[], T>) { >f21(y, x) : void > : ^^^^ >f21 : (x: Grow1<[], T>, y: Grow2<[], T>) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >y : Grow2<[], T> > : ^^^^^^^^^^^^ >x : Grow1<[], T> @@ -548,7 +548,7 @@ type Enumerate = number extends N function foo2(value: T): Enumerate { >foo2 : (value: T) => Enumerate -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >value : T > : ^ diff --git a/tests/baselines/reference/recursiveGenericMethodCall.types b/tests/baselines/reference/recursiveGenericMethodCall.types index 93d6a45828b9a..7972dbe5b1ee2 100644 --- a/tests/baselines/reference/recursiveGenericMethodCall.types +++ b/tests/baselines/reference/recursiveGenericMethodCall.types @@ -5,7 +5,7 @@ interface Generator { (): T; } function Generate(func: Generator): T { >Generate : (func: Generator) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : Generator > : ^^^^^^^^^^^^ @@ -13,7 +13,7 @@ function Generate(func: Generator): T { >Generate(func) : T > : ^ >Generate : (func: Generator) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >func : Generator > : ^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/recursiveGenericSignatureInstantiation.types b/tests/baselines/reference/recursiveGenericSignatureInstantiation.types index e9104762052a8..d0a20ec2e1a81 100644 --- a/tests/baselines/reference/recursiveGenericSignatureInstantiation.types +++ b/tests/baselines/reference/recursiveGenericSignatureInstantiation.types @@ -3,7 +3,7 @@ === recursiveGenericSignatureInstantiation.ts === function f6(x: T) { >f6 : (x: T) => never -> : ^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ >x : T > : ^ @@ -11,7 +11,7 @@ function f6(x: T) { >f6(x) : never > : ^^^^^ >f6 : (x: T) => never -> : ^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/recursiveReverseMappedType.types b/tests/baselines/reference/recursiveReverseMappedType.types index 91ceffd4dd0e1..a0d38cecd149a 100644 --- a/tests/baselines/reference/recursiveReverseMappedType.types +++ b/tests/baselines/reference/recursiveReverseMappedType.types @@ -12,7 +12,7 @@ type Recur = ( function join(l: Recur[]): Recur { >join : (l: Recur[]) => Recur -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : Recur[] > : ^^^^^^^^^^ @@ -29,7 +29,7 @@ function join(l: Recur[]): Recur { function a(l: Recur[]): void { >a : (l: Recur[]) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >l : Recur[] > : ^^^^^^^^^^ @@ -39,7 +39,7 @@ function a(l: Recur[]): void { >join(l) : Recur > : ^^^^^^^^ >join : (l: Recur[]) => Recur -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >l : Recur[] > : ^^^^^^^^^^ } diff --git a/tests/baselines/reference/recursiveTupleTypeInference.types b/tests/baselines/reference/recursiveTupleTypeInference.types index 1a8f4cc115153..15f2f861e7564 100644 --- a/tests/baselines/reference/recursiveTupleTypeInference.types +++ b/tests/baselines/reference/recursiveTupleTypeInference.types @@ -42,7 +42,7 @@ const gK: { [key in keyof K]: A } = { b: ["number", "null"] }; function foo(g: G): T { >foo : (g: G) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >g : G > : ^^^^ @@ -57,7 +57,7 @@ foo(gK); >foo(gK) : { b: unknown; } > : ^^^^^^^^^^^^^^^ >foo : (g: G) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >gK : { b: A; } > : ^^^^^^^^^ diff --git a/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types b/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types index 9a56781e125f7..212d001c3ad8d 100644 --- a/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types +++ b/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types @@ -5,19 +5,19 @@ export {} export interface Option { zip1>>(...others: O): Option<[T, ...UnzipOptionArray1]>; >zip1 : >>(...others: O) => Option<[T, ...UnzipOptionArray1]> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >others : O > : ^ zip2>>(...others: O): Option<[T, ...UnzipOptionArray2]>; >zip2 : >>(...others: O) => Option<[T, ...UnzipOptionArray2]> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >others : O > : ^ zip3>>(...others: O): Option<[T, ...UnzipOptionArray3]>; >zip3 : >>(...others: O) => Option<[T, ...UnzipOptionArray3]> -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >others : O > : ^ } @@ -58,11 +58,11 @@ const zipped1 = opt1.zip1(opt2, opt3); >opt1.zip1(opt2, opt3) : Option<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1.zip1 : >>(...others: O) => Option<[number, ...UnzipOptionArray1]> -> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ ^ +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^ >opt1 : Option > : ^^^^^^^^^^^^^^ >zip1 : >>(...others: O) => Option<[number, ...UnzipOptionArray1]> -> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ ^ +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^ >opt2 : Option > : ^^^^^^^^^^^^^^ >opt3 : Option @@ -74,11 +74,11 @@ const zipped2 = opt1.zip2(opt2, opt3); >opt1.zip2(opt2, opt3) : Option<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1.zip2 : >>(...others: O) => Option<[number, ...UnzipOptionArray2]> -> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ ^ +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^ >opt1 : Option > : ^^^^^^^^^^^^^^ >zip2 : >>(...others: O) => Option<[number, ...UnzipOptionArray2]> -> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ ^ +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^ >opt2 : Option > : ^^^^^^^^^^^^^^ >opt3 : Option @@ -90,11 +90,11 @@ const zipped3 = opt1.zip3(opt2, opt3); >opt1.zip3(opt2, opt3) : Option<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1.zip3 : >>(...others: O) => Option<[number, ...UnzipOptionArray3]> -> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ ^ +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^ >opt1 : Option > : ^^^^^^^^^^^^^^ >zip3 : >>(...others: O) => Option<[number, ...UnzipOptionArray3]> -> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ ^ +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^ ^ >opt2 : Option > : ^^^^^^^^^^^^^^ >opt3 : Option diff --git a/tests/baselines/reference/recursiveTypeComparison2.types b/tests/baselines/reference/recursiveTypeComparison2.types index 9f8d4d2de2a60..be0934b058b26 100644 --- a/tests/baselines/reference/recursiveTypeComparison2.types +++ b/tests/baselines/reference/recursiveTypeComparison2.types @@ -14,7 +14,7 @@ declare module Bacon { interface Observable { zip(other: EventStream, f: (a: T, b: U) => V): EventStream; >zip : (other: EventStream, f: (a: T, b: U) => V) => EventStream -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >other : EventStream > : ^^^^^^^^^^^^^^ >f : (a: T, b: U) => V @@ -38,7 +38,7 @@ declare module Bacon { combine(other: Observable, f: (a: T, b: U) => V): Property; >combine : (other: Observable, f: (a: T, b: U) => V) => Property -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >other : Observable > : ^^^^^^^^^^^^^ >f : (a: T, b: U) => V @@ -50,7 +50,7 @@ declare module Bacon { withStateMachine(initState: U, f: (state: U, event: Event) => StateValue): EventStream; >withStateMachine : (initState: U, f: (state: U, event: Event) => StateValue) => EventStream -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >initState : U > : ^ >f : (state: U, event: Event) => StateValue @@ -68,7 +68,7 @@ declare module Bacon { awaiting(other: Observable): Property; >awaiting : (other: Observable) => Property -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >other : Observable > : ^^^^^^^^^^^^^ @@ -108,7 +108,7 @@ declare module Bacon { } var Bus: new () => Bus; >Bus : new () => Bus -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ } var stuck: Bacon.Bus = new Bacon.Bus(); @@ -119,9 +119,9 @@ var stuck: Bacon.Bus = new Bacon.Bus(); >new Bacon.Bus() : Bacon.Bus > : ^^^^^^^^^^^^^^^^^ >Bacon.Bus : new () => Bacon.Bus -> : ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ >Bacon : typeof Bacon > : ^^^^^^^^^^^^ >Bus : new () => Bacon.Bus -> : ^^^^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/recursiveTypeReferences1.types b/tests/baselines/reference/recursiveTypeReferences1.types index fec88efec2d07..82f96a5b9da1d 100644 --- a/tests/baselines/reference/recursiveTypeReferences1.types +++ b/tests/baselines/reference/recursiveTypeReferences1.types @@ -296,19 +296,19 @@ type RecArray = Array>; declare function flat(a: RecArray): Array; >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : RecArray > : ^^^^^^^^^^^ declare function flat1(a: Array>): Array >flat1 : (a: Array>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (T | T[])[] > : ^^^^^^^^^^^ declare function flat2(a: Array>>): Array; >flat2 : (a: Array>>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : (T | (T | T[])[])[] > : ^^^^^^^^^^^^^^^^^^^ @@ -316,7 +316,7 @@ flat([1, [2, [3]]]); // number[] >flat([1, [2, [3]]]) : number[] > : ^^^^^^^^ >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, [2, [3]]] : (number | (number | number[])[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -334,7 +334,7 @@ flat([[[0]]]); // number[] >flat([[[0]]]) : number[] > : ^^^^^^^^ >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[[[0]]] : number[][][] > : ^^^^^^^^^^^^ >[[0]] : number[][] @@ -348,7 +348,7 @@ flat([[[[[[[[[[[4]]]]]]]]]]]); // number[] >flat([[[[[[[[[[[4]]]]]]]]]]]) : number[] > : ^^^^^^^^ >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[[[[[[[[[[[4]]]]]]]]]]] : number[][][][][][][][][][][] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[[[[[[[[[[4]]]]]]]]]] : number[][][][][][][][][][] @@ -378,7 +378,7 @@ flat([1, 'a', [2]]); // (string | number)[] >flat([1, 'a', [2]]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, 'a', [2]] : (string | number | number[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -394,7 +394,7 @@ flat([1, [2, 'a']]); // (string | number)[] >flat([1, [2, 'a']]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, [2, 'a']] : (number | (string | number)[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -410,7 +410,7 @@ flat([1, ['a']]); // Error >flat([1, ['a']]) : string[] > : ^^^^^^^^ >flat : (a: RecArray) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, ['a']] : (number | string[])[] > : ^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -424,7 +424,7 @@ flat1([1, [2, [3]]]); // (number | number[])[] >flat1([1, [2, [3]]]) : (number | number[])[] > : ^^^^^^^^^^^^^^^^^^^^^ >flat1 : (a: Array>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, [2, [3]]] : (number | (number | number[])[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -442,7 +442,7 @@ flat1([[[0]]]); // number[][] >flat1([[[0]]]) : number[][] > : ^^^^^^^^^^ >flat1 : (a: Array>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[[[0]]] : number[][][] > : ^^^^^^^^^^^^ >[[0]] : number[][] @@ -456,7 +456,7 @@ flat1([1, 'a', [2]]); // (string | number)[] >flat1([1, 'a', [2]]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >flat1 : (a: Array>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, 'a', [2]] : (string | number | number[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -472,7 +472,7 @@ flat1([1, [2, 'a']]); // (string | number)[] >flat1([1, [2, 'a']]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >flat1 : (a: Array>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, [2, 'a']] : (number | (string | number)[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -488,7 +488,7 @@ flat1([1, ['a']]); // Error >flat1([1, ['a']]) : string[] > : ^^^^^^^^ >flat1 : (a: Array>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, ['a']] : (number | string[])[] > : ^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -502,7 +502,7 @@ flat2([1, [2, [3]]]); // number[] >flat2([1, [2, [3]]]) : number[] > : ^^^^^^^^ >flat2 : (a: Array>>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, [2, [3]]] : (number | (number | number[])[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -520,7 +520,7 @@ flat2([[[0]]]); // number[] >flat2([[[0]]]) : number[] > : ^^^^^^^^ >flat2 : (a: Array>>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[[[0]]] : number[][][] > : ^^^^^^^^^^^^ >[[0]] : number[][] @@ -534,7 +534,7 @@ flat2([1, 'a', [2]]); // (string | number)[] >flat2([1, 'a', [2]]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >flat2 : (a: Array>>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, 'a', [2]] : (string | number | number[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -550,7 +550,7 @@ flat2([1, [2, 'a']]); // (string | number)[] >flat2([1, [2, 'a']]) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >flat2 : (a: Array>>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, [2, 'a']] : (number | (string | number)[])[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -566,7 +566,7 @@ flat2([1, ['a']]); // Error >flat2([1, ['a']]) : string[] > : ^^^^^^^^ >flat2 : (a: Array>>) => Array -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[1, ['a']] : (number | string[])[] > : ^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -612,7 +612,7 @@ type ValueOrArray2 = T | ValueOrArray2[]; declare function foo1(a: ValueOrArray1): T; >foo1 : (a: ValueOrArray1) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : ValueOrArray1 > : ^^^^^^^^^^^^^^^^ @@ -626,7 +626,7 @@ let x1 = foo1(ra1); // Boom! >foo1(ra1) : string > : ^^^^^^ >foo1 : (a: ValueOrArray1) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ra1 : ValueOrArray2 > : ^^^^^^^^^^^^^^^^^^^^^ @@ -640,7 +640,7 @@ type NumberOrArray2 = T | ValueOrArray2[]; declare function foo2(a: ValueOrArray1): T; >foo2 : (a: ValueOrArray1) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : ValueOrArray1 > : ^^^^^^^^^^^^^^^^ @@ -654,7 +654,7 @@ let x2 = foo2(ra2); // Boom! >foo2(ra2) : string > : ^^^^^^ >foo2 : (a: ValueOrArray1) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ra2 : ValueOrArray2 > : ^^^^^^^^^^^^^^^^^^^^^ @@ -808,7 +808,7 @@ function cons(hs: HTMLHeadingElement[]): Tree { >hs .reduce((hss, h) => { const hs = hss.pop()!; return hs.length === 0 || level(h) > level(hs[0]) ? concat(hss, [concat(hs, [h])]) : concat(hss, [hs, [h]]); }, [[]]) .reduce((node, hs) => hs.length === 0 ? node : concat(node, [[hs.shift()!, cons(hs)]]) , []) : Tree > : ^^^^ >hs .reduce((hss, h) => { const hs = hss.pop()!; return hs.length === 0 || level(h) > level(hs[0]) ? concat(hss, [concat(hs, [h])]) : concat(hss, [hs, [h]]); }, [[]]) .reduce : { (callbackfn: (previousValue: HTMLHeadingElement[], currentValue: HTMLHeadingElement[], currentIndex: number, array: HTMLHeadingElement[][]) => HTMLHeadingElement[]): HTMLHeadingElement[]; (callbackfn: (previousValue: HTMLHeadingElement[], currentValue: HTMLHeadingElement[], currentIndex: number, array: HTMLHeadingElement[][]) => HTMLHeadingElement[], initialValue: HTMLHeadingElement[]): HTMLHeadingElement[]; (callbackfn: (previousValue: U, currentValue: HTMLHeadingElement[], currentIndex: number, array: HTMLHeadingElement[][]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >hs .reduce((hss, h) => { const hs = hss.pop()!; return hs.length === 0 || level(h) > level(hs[0]) ? concat(hss, [concat(hs, [h])]) : concat(hss, [hs, [h]]); }, [[]]) : HTMLHeadingElement[][] > : ^^^^^^^^^^^^^^^^^^^^^^ >hs .reduce : { (callbackfn: (previousValue: HTMLHeadingElement, currentValue: HTMLHeadingElement, currentIndex: number, array: HTMLHeadingElement[]) => HTMLHeadingElement): HTMLHeadingElement; (callbackfn: (previousValue: HTMLHeadingElement, currentValue: HTMLHeadingElement, currentIndex: number, array: HTMLHeadingElement[]) => HTMLHeadingElement, initialValue: HTMLHeadingElement): HTMLHeadingElement; (callbackfn: (previousValue: U, currentValue: HTMLHeadingElement, currentIndex: number, array: HTMLHeadingElement[]) => U, initialValue: U): U; } @@ -834,11 +834,11 @@ function cons(hs: HTMLHeadingElement[]): Tree { >hss.pop() : HTMLHeadingElement[] | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >hss.pop : () => HTMLHeadingElement[] | undefined -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ >hss : HTMLHeadingElement[][] > : ^^^^^^^^^^^^^^^^^^^^^^ >pop : () => HTMLHeadingElement[] | undefined -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^ return hs.length === 0 || level(h) > level(hs[0]) >hs.length === 0 || level(h) > level(hs[0]) ? concat(hss, [concat(hs, [h])]) : concat(hss, [hs, [h]]) : any @@ -918,7 +918,7 @@ function cons(hs: HTMLHeadingElement[]): Tree { .reduce((node, hs) => >reduce : { (callbackfn: (previousValue: HTMLHeadingElement[], currentValue: HTMLHeadingElement[], currentIndex: number, array: HTMLHeadingElement[][]) => HTMLHeadingElement[]): HTMLHeadingElement[]; (callbackfn: (previousValue: HTMLHeadingElement[], currentValue: HTMLHeadingElement[], currentIndex: number, array: HTMLHeadingElement[][]) => HTMLHeadingElement[], initialValue: HTMLHeadingElement[]): HTMLHeadingElement[]; (callbackfn: (previousValue: U, currentValue: HTMLHeadingElement[], currentIndex: number, array: HTMLHeadingElement[][]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(node, hs) => hs.length === 0 ? node : concat(node, [[hs.shift()!, cons(hs)]]) : (node: Tree, hs: HTMLHeadingElement[]) => any > : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >node : Tree diff --git a/tests/baselines/reference/recursiveTypeRelations.types b/tests/baselines/reference/recursiveTypeRelations.types index da64c92c5de1e..1934064494148 100644 --- a/tests/baselines/reference/recursiveTypeRelations.types +++ b/tests/baselines/reference/recursiveTypeRelations.types @@ -16,7 +16,7 @@ class Query> { multiply>(x: B): Query; >multiply : >(x: B) => Query -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : B > : ^ } @@ -41,7 +41,7 @@ type ClassNameArg = ClassName | ClassNameObjectMap; export function css(styles: S, ...classNames: ClassNameArg[]): string { >css : (styles: S, ...classNames: ClassNameArg[]) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >styles : S > : ^ >classNames : ClassNameArg[] @@ -103,7 +103,7 @@ export function css(styles: S, ...classNam >Object.keys(arg).reduce((obj: ClassNameObject, key: keyof S) => { const exportedClassName = styles[key]; obj[exportedClassName] = (arg as ClassNameMap)[key]; return obj; }, {}) : string > : ^^^^^^ >Object.keys(arg).reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >Object.keys(arg) : string[] > : ^^^^^^^^ >Object.keys : (o: object) => string[] @@ -115,7 +115,7 @@ export function css(styles: S, ...classNam >arg : ClassNameObjectMap > : ^^^^^^^^^^^^^^^^^^^^^ >reduce : { (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; (callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; (callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >(obj: ClassNameObject, key: keyof S) => { const exportedClassName = styles[key]; obj[exportedClassName] = (arg as ClassNameMap)[key]; return obj; } : (obj: ClassNameObject, key: keyof S) => ClassNameObject > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >obj : ClassNameObject diff --git a/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types b/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types index fcc84bfafdf25..b851baf819865 100644 --- a/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types +++ b/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types @@ -29,44 +29,44 @@ class MyList { function foo(x: List); >foo : { (x: List): any; (x: List): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : List > : ^^^^^^^ function foo(x: List); // error, duplicate >foo : { (x: List): any; (x: List): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : List > : ^^^^^^^ function foo(x: List) { >foo : { (x: List): any; (x: List): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : List > : ^^^^^^^ } function foo2(x: List); >foo2 : { (x: List): any; (x: MyList): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : List > : ^^^^^^^ function foo2(x: MyList); // ok, nominally compared with first overload >foo2 : { (x: List): any; (x: MyList): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : MyList > : ^^^^^^^^^ function foo2(x: any) { >foo2 : { (x: List): any; (x: MyList): any; } -> : ^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : any } function other, U>() { >other : , U>() => void -> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^ // error but wrong error // BUG 838247 @@ -99,25 +99,25 @@ function other, U>() { // ok function foo5(x: T): string; >foo5 : { (x: T): string; (x: List): number; (x: MyList): boolean; } -> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : T > : ^ function foo5(x: List): number; >foo5 : { (x: T): string; (x: List): number; (x: MyList): boolean; } -> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : List > : ^^^^^^^ function foo5(x: MyList): boolean; >foo5 : { (x: T): string; (x: List): number; (x: MyList): boolean; } -> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >x : MyList > : ^^^^^^^^^ function foo5(x: any): any { return null; } >foo5 : { (x: T): string; (x: List): number; (x: MyList): boolean; } -> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >x : any var list: List; @@ -134,7 +134,7 @@ function other, U>() { >foo5(list) : number > : ^^^^^^ >foo5 : { (x: T): string; (x: List): number; (x: MyList): boolean; } -> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >list : List > : ^^^^^^^^^^^^ @@ -144,7 +144,7 @@ function other, U>() { >foo5(myList) : number > : ^^^^^^ >foo5 : { (x: T): string; (x: List): number; (x: MyList): boolean; } -> : ^^^^^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >myList : MyList > : ^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/recursiveTypesWithTypeof.types b/tests/baselines/reference/recursiveTypesWithTypeof.types index 1844734733878..2f166beeca8c8 100644 --- a/tests/baselines/reference/recursiveTypesWithTypeof.types +++ b/tests/baselines/reference/recursiveTypesWithTypeof.types @@ -119,21 +119,21 @@ var i = i(i); var j: (x: T) => T; >j : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >j : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var j = j(j); >j : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >j(j) : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >j : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >j : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ // Same as h, i, j with construct signatures var h2: new () => typeof h2; @@ -172,21 +172,21 @@ var i2 = new i2(i2); var j2: new (x: T) => T; >j2 : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >j2 : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var j2 = new j2(j2); >j2 : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >new j2(j2) : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >j2 : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >j2 : new (x: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ // Indexers var k: { [n: number]: typeof k;[s: string]: typeof k }; diff --git a/tests/baselines/reference/recursiveUnionTypeInference.types b/tests/baselines/reference/recursiveUnionTypeInference.types index 1977b1abd1cea..9e3272c8b9fca 100644 --- a/tests/baselines/reference/recursiveUnionTypeInference.types +++ b/tests/baselines/reference/recursiveUnionTypeInference.types @@ -9,7 +9,7 @@ interface Foo { function bar(x: Foo | string): T { >bar : (x: Foo | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | Foo > : ^^^^^^^^^^^^^^^ @@ -17,7 +17,7 @@ function bar(x: Foo | string): T { >bar(x) : T > : ^ >bar : (x: Foo | string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : string | Foo > : ^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/redeclarationOfVarWithGenericType.types b/tests/baselines/reference/redeclarationOfVarWithGenericType.types index f8cd9851ee6af..5d70873408d38 100644 --- a/tests/baselines/reference/redeclarationOfVarWithGenericType.types +++ b/tests/baselines/reference/redeclarationOfVarWithGenericType.types @@ -3,17 +3,17 @@ === redeclarationOfVarWithGenericType.ts === var a1: { fn(x: T): T }; >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ var a1: { fn(x: T): T }; >a1 : { fn(x: T): T; } -> : ^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ >fn : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/restElementWithNumberPropertyName.types b/tests/baselines/reference/restElementWithNumberPropertyName.types index 7d62c246ff88e..46bd562477534 100644 --- a/tests/baselines/reference/restElementWithNumberPropertyName.types +++ b/tests/baselines/reference/restElementWithNumberPropertyName.types @@ -5,7 +5,7 @@ const { 0: a, ...b } = [0, 1, 2]; >a : number > : ^^^^^^ >b : { [n: number]: number; 0: number; 1: number; 2: number; length: 3; toString(): string; toLocaleString(): string; pop(): number | undefined; push(...items: number[]): number; concat(...items: ConcatArray[]): number[]; concat(...items: (number | ConcatArray)[]): number[]; join(separator?: string): string; reverse(): number[]; shift(): number | undefined; slice(start?: number, end?: number): number[]; sort(compareFn?: (a: number, b: number) => number): [number, number, number]; splice(start: number, deleteCount?: number): number[]; splice(start: number, deleteCount: number, ...items: number[]): number[]; unshift(...items: number[]): number; indexOf(searchElement: number, fromIndex?: number): number; lastIndexOf(searchElement: number, fromIndex?: number): number; every(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; some(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any): void; map(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[]; filter(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^ ^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >[0, 1, 2] : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >0 : 0 diff --git a/tests/baselines/reference/restInvalidArgumentType.types b/tests/baselines/reference/restInvalidArgumentType.types index 64eb43c860498..a2fce2fc9ecac 100644 --- a/tests/baselines/reference/restInvalidArgumentType.types +++ b/tests/baselines/reference/restInvalidArgumentType.types @@ -11,7 +11,7 @@ enum E { v1, v2 }; function f(p1: T, p2: T[]) { >f : (p1: T, p2: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >b : string > : ^^^^^^ >p1 : T @@ -103,7 +103,7 @@ function f(p1: T, p2: T[]) { var {...r2} = p2; // OK >r2 : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T | undefined; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T | undefined; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ >p2 : T[] > : ^^^ diff --git a/tests/baselines/reference/restParamUsingMappedTypeOverUnionConstraint.types b/tests/baselines/reference/restParamUsingMappedTypeOverUnionConstraint.types index 0aa04e2458151..89a1b15be9a2d 100644 --- a/tests/baselines/reference/restParamUsingMappedTypeOverUnionConstraint.types +++ b/tests/baselines/reference/restParamUsingMappedTypeOverUnionConstraint.types @@ -9,7 +9,7 @@ type HomomorphicMappedType = { [P in keyof T]: T[P] extends string ? boolean declare function test( >test : (args: T, fn: (...args: HomomorphicMappedType) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ args: T, >args : T diff --git a/tests/baselines/reference/restParameterTypeInstantiation.types b/tests/baselines/reference/restParameterTypeInstantiation.types index c28614ecaa607..1f0589b4d90f4 100644 --- a/tests/baselines/reference/restParameterTypeInstantiation.types +++ b/tests/baselines/reference/restParameterTypeInstantiation.types @@ -15,9 +15,9 @@ interface TestGeneric { const removeF = ({ f, ...rest }: TestGeneric) => { >removeF : ({ f, ...rest }: TestGeneric) => { g: TX; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^ >({ f, ...rest }: TestGeneric) => { return rest} : ({ f, ...rest }: TestGeneric) => { g: TX; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^ >f : string > : ^^^^^^ >rest : { g: TX; } @@ -36,7 +36,7 @@ const result: number = removeF({ f: '', g: 3 }).g >removeF({ f: '', g: 3 }) : { g: number; } > : ^^^^^^^^^^^^^^ >removeF : ({ f, ...rest }: TestGeneric) => { g: TX; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^ >{ f: '', g: 3 } : { f: string; g: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >f : string diff --git a/tests/baselines/reference/restParameterWithBindingPattern3.types b/tests/baselines/reference/restParameterWithBindingPattern3.types index 15bee41d4849c..22236afee3e56 100644 --- a/tests/baselines/reference/restParameterWithBindingPattern3.types +++ b/tests/baselines/reference/restParameterWithBindingPattern3.types @@ -57,5 +57,5 @@ function e(...{0: a = 1, 1: b = true, ...rest: rest}: [boolean, string, number]) >rest : any > : ^^^ >rest : { [n: number]: string | number | boolean; 0: boolean; 1: string; 2: number; length: 3; toString(): string; toLocaleString(): string; pop(): (string | number | boolean) | undefined; push(...items: (string | number | boolean)[]): number; concat(...items: ConcatArray[]): (string | number | boolean)[]; concat(...items: (string | number | boolean | ConcatArray)[]): (string | number | boolean)[]; join(separator?: string): string; reverse(): (string | number | boolean)[]; shift(): (string | number | boolean) | undefined; slice(start?: number, end?: number): (string | number | boolean)[]; sort(compareFn?: (a: string | number | boolean, b: string | number | boolean) => number): [boolean, string, number]; splice(start: number, deleteCount?: number): (string | number | boolean)[]; splice(start: number, deleteCount: number, ...items: (string | number | boolean)[]): (string | number | boolean)[]; unshift(...items: (string | number | boolean)[]): number; indexOf(searchElement: string | number | boolean, fromIndex?: number): number; lastIndexOf(searchElement: string | number | boolean, fromIndex?: number): number; every(predicate: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): boolean; some(predicate: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => void, thisArg?: any): void; map(callbackfn: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => U, thisArg?: any): U[]; filter(predicate: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: string | number | boolean, index: number, array: (string | number | boolean)[]) => unknown, thisArg?: any): (string | number | boolean)[]; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduce(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: string | number | boolean, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => string | number | boolean, initialValue: string | number | boolean): string | number | boolean; reduceRight(callbackfn: (previousValue: U, currentValue: string | number | boolean, currentIndex: number, array: (string | number | boolean)[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^ ^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ diff --git a/tests/baselines/reference/restPropertyWithBindingPattern.types b/tests/baselines/reference/restPropertyWithBindingPattern.types index 2ac93afdc8154..1ab806c180df1 100644 --- a/tests/baselines/reference/restPropertyWithBindingPattern.types +++ b/tests/baselines/reference/restPropertyWithBindingPattern.types @@ -33,7 +33,7 @@ >{...[]} = {} : {} > : ^^ >{...[]} : { [n: number]: never; length: 0; toString(): string; toLocaleString(): string; pop(): never | undefined; push(...items: never[]): number; concat(...items: ConcatArray[]): never[]; concat(...items: ConcatArray[]): never[]; join(separator?: string): string; reverse(): never[]; shift(): never | undefined; slice(start?: number, end?: number): never[]; sort(compareFn?: (a: never, b: never) => number): []; splice(start: number, deleteCount?: number): never[]; splice(start: number, deleteCount: number, ...items: never[]): never[]; unshift(...items: never[]): number; indexOf(searchElement: never, fromIndex?: number): number; lastIndexOf(searchElement: never, fromIndex?: number): number; every(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean; some(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: never, index: number, array: never[]) => void, thisArg?: any): void; map(callbackfn: (value: never, index: number, array: never[]) => U, thisArg?: any): U[]; filter(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): never[]; reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never; reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never; reduce(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never; reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never; reduceRight(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >[] : [] > : ^^ >{} : {} @@ -45,7 +45,7 @@ >{...([])} = {} : {} > : ^^ >{...([])} : { [n: number]: never; length: 0; toString(): string; toLocaleString(): string; pop(): never | undefined; push(...items: never[]): number; concat(...items: ConcatArray[]): never[]; concat(...items: ConcatArray[]): never[]; join(separator?: string): string; reverse(): never[]; shift(): never | undefined; slice(start?: number, end?: number): never[]; sort(compareFn?: (a: never, b: never) => number): []; splice(start: number, deleteCount?: number): never[]; splice(start: number, deleteCount: number, ...items: never[]): never[]; unshift(...items: never[]): number; indexOf(searchElement: never, fromIndex?: number): number; lastIndexOf(searchElement: never, fromIndex?: number): number; every(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean; some(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: never, index: number, array: never[]) => void, thisArg?: any): void; map(callbackfn: (value: never, index: number, array: never[]) => U, thisArg?: any): U[]; filter(predicate: (value: never, index: number, array: never[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: never, index: number, array: never[]) => unknown, thisArg?: any): never[]; reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never; reduce(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never; reduce(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never): never; reduceRight(callbackfn: (previousValue: never, currentValue: never, currentIndex: number, array: never[]) => never, initialValue: never): never; reduceRight(callbackfn: (previousValue: U, currentValue: never, currentIndex: number, array: never[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^ ^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ >([]) : [] > : ^^ >[] : [] diff --git a/tests/baselines/reference/restTupleElements1.types b/tests/baselines/reference/restTupleElements1.types index 20cedc952a65e..b5b5002848bd1 100644 --- a/tests/baselines/reference/restTupleElements1.types +++ b/tests/baselines/reference/restTupleElements1.types @@ -59,91 +59,91 @@ type L15 = T15["length"]; // number declare function assign(): void; >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign(); >assign() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign(); >assign() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[...number[]], number[]>(); >assign<[...number[]], number[]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], number[]>(); // Error >assign<[number, ...number[]], number[]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], []>(); // Error >assign<[number, ...number[]], []>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [number]>(); >assign<[number, ...number[]], [number]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [number, number]>(); >assign<[number, ...number[]], [number, number]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [number, number, ...number[]]>(); >assign<[number, ...number[]], [number, number, ...number[]]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number], [...number[]]>(); // Error >assign<[number], [...number[]]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number], [number, ...number[]]>(); // Error >assign<[number], [number, ...number[]]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [number, ...string[]]>(); // Error >assign<[number, ...number[]], [number, ...string[]]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [string, ...number[]]>(); // Error >assign<[number, ...number[]], [string, ...number[]]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [number, number, string]>(); // Error >assign<[number, ...number[]], [number, number, string]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ assign<[number, ...number[]], [number, number, number, string]>(); // Error >assign<[number, ...number[]], [number, number, number, string]>() : void > : ^^^^ >assign : () => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^ type T20 = [number, string, ...boolean[]]; >T20 : T20 @@ -241,7 +241,7 @@ let ex = t[x]; // number | string | boolean declare function f0(x: [T, ...U[]]): [T, U]; >f0 : (x: [T, ...U[]]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : [T, ...U[]] > : ^^^^^^^^^^^ @@ -249,7 +249,7 @@ f0([]); // Error >f0([]) : [unknown, unknown] > : ^^^^^^^^^^^^^^^^^^ >f0 : (x: [T, ...U[]]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[] : [] > : ^^ @@ -257,7 +257,7 @@ f0([1]); >f0([1]) : [number, unknown] > : ^^^^^^^^^^^^^^^^^ >f0 : (x: [T, ...U[]]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1] : [number] > : ^^^^^^^^ >1 : 1 @@ -267,7 +267,7 @@ f0([1, 2, 3]); >f0([1, 2, 3]) : [number, number] > : ^^^^^^^^^^^^^^^^ >f0 : (x: [T, ...U[]]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, 2, 3] : [number, number, number] > : ^^^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 @@ -281,7 +281,7 @@ f0([1, "hello", true]); >f0([1, "hello", true]) : [number, string | boolean] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >f0 : (x: [T, ...U[]]) => [T, U] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >[1, "hello", true] : [number, string, true] > : ^^^^^^^^^^^^^^^^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/restTuplesFromContextualTypes.types b/tests/baselines/reference/restTuplesFromContextualTypes.types index 655c5f92bd68d..a157c2858f58b 100644 --- a/tests/baselines/reference/restTuplesFromContextualTypes.types +++ b/tests/baselines/reference/restTuplesFromContextualTypes.types @@ -513,7 +513,7 @@ f3((a, b, c, ...x) => {}) function f4(t: T) { >f4 : (t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ @@ -618,7 +618,7 @@ function f4(t: T) { declare function f5(f: (...args: T) => U): (...args: T) => U; >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >f : (...args: T) => U > : ^^^^ ^^ ^^^^^ >args : T @@ -628,11 +628,11 @@ declare function f5(f: (...args: T) => U): (...args: T) => U let g0 = f5(() => "hello"); >g0 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f5(() => "hello") : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >() => "hello" : () => string > : ^^^^^^^^^^^^ >"hello" : "hello" @@ -640,11 +640,11 @@ let g0 = f5(() => "hello"); let g1 = f5((x, y) => 42); >g1 : (x: any, y: any) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ >f5((x, y) => 42) : (x: any, y: any) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(x, y) => 42 : (x: any, y: any) => number > : ^ ^^^^^^^ ^^^^^^^^^^^^^^^^ >x : any @@ -656,11 +656,11 @@ let g1 = f5((x, y) => 42); let g2 = f5((x: number, y) => 42); >g2 : (x: number, y: any) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ >f5((x: number, y) => 42) : (x: number, y: any) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(x: number, y) => 42 : (x: number, y: any) => number > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : number @@ -672,11 +672,11 @@ let g2 = f5((x: number, y) => 42); let g3 = f5((x: number, y: number) => x + y); >g3 : (x: number, y: number) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >f5((x: number, y: number) => x + y) : (x: number, y: number) => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(x: number, y: number) => x + y : (x: number, y: number) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number @@ -692,11 +692,11 @@ let g3 = f5((x: number, y: number) => x + y); let g4 = f5((...args) => true); >g4 : (...args: any[]) => boolean -> : ^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^ >f5((...args) => true) : (...args: any[]) => boolean -> : ^^^^ ^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^ >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(...args) => true : (...args: any[]) => boolean > : ^^^^ ^^^^^^^^^^^^^^^^^^^ >args : any[] @@ -706,7 +706,7 @@ let g4 = f5((...args) => true); declare function pipe(f: (...args: A) => B, g: (x: B) => C): (...args: A) => C; >pipe : (f: (...args: A) => B, g: (x: B) => C) => (...args: A) => C -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >f : (...args: A) => B > : ^^^^ ^^ ^^^^^ >args : A @@ -720,11 +720,11 @@ declare function pipe(f: (...args: A) => B, g: (x: B) => let g5 = pipe(() => true, b => 42); >g5 : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe(() => true, b => 42) : () => number -> : ^^^^^^^^^^^^ +> : ^^^^^^ >pipe : (f: (...args: A) => B, g: (x: B) => C) => (...args: A) => C -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >() => true : () => boolean > : ^^^^^^^^^^^^^ >true : true @@ -738,11 +738,11 @@ let g5 = pipe(() => true, b => 42); let g6 = pipe(x => "hello", s => s.length); >g6 : (x: any) => number -> : ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ >pipe(x => "hello", s => s.length) : (x: any) => number -> : ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^ >pipe : (f: (...args: A) => B, g: (x: B) => C) => (...args: A) => C -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x => "hello" : (x: any) => string > : ^ ^^^^^^^^^^^^^^^^ >x : any @@ -762,11 +762,11 @@ let g6 = pipe(x => "hello", s => s.length); let g7 = pipe((x, y) => 42, x => "" + x); >g7 : (x: any, y: any) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ >pipe((x, y) => 42, x => "" + x) : (x: any, y: any) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ >pipe : (f: (...args: A) => B, g: (x: B) => C) => (...args: A) => C -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >(x, y) => 42 : (x: any, y: any) => number > : ^ ^^^^^^^ ^^^^^^^^^^^^^^^^ >x : any @@ -788,11 +788,11 @@ let g7 = pipe((x, y) => 42, x => "" + x); let g8 = pipe((x: number, y: string) => 42, x => "" + x); >g8 : (x: number, y: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >pipe((x: number, y: string) => 42, x => "" + x) : (x: number, y: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >pipe : (f: (...args: A) => B, g: (x: B) => C) => (...args: A) => C -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >(x: number, y: string) => 42 : (x: number, y: string) => number > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : number diff --git a/tests/baselines/reference/restTypeRetainsMappyness.types b/tests/baselines/reference/restTypeRetainsMappyness.types index 78df64c62ddbd..0e93aa0b80b82 100644 --- a/tests/baselines/reference/restTypeRetainsMappyness.types +++ b/tests/baselines/reference/restTypeRetainsMappyness.types @@ -10,7 +10,7 @@ type Foo = { function test(fn: (...args: Foo) => void) { >test : (fn: (...args: Foo) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >fn : (...args: Foo) => void > : ^^^^ ^^ ^^^^^ >args : Foo diff --git a/tests/baselines/reference/returnInfiniteIntersection.types b/tests/baselines/reference/returnInfiniteIntersection.types index a622308a96031..38a9611cdf186 100644 --- a/tests/baselines/reference/returnInfiniteIntersection.types +++ b/tests/baselines/reference/returnInfiniteIntersection.types @@ -3,39 +3,39 @@ === returnInfiniteIntersection.ts === function recursive() { >recursive : () => ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^ ^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ let x = (subkey: T) => recursive(); >x : (subkey: T) => any & { p: any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >(subkey: T) => recursive() : (subkey: T) => any & { p: any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >subkey : T > : ^ >recursive() : ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >recursive : () => ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^ ^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ return x as typeof x & { p }; >x as typeof x & { p } : ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : (subkey: T) => any & { p: any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >x : (subkey: T) => any & { p: any; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >p : any } let result = recursive()(1) >result : ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >recursive()(1) : ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >recursive() : ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >recursive : () => ((subkey: T) => any & { p: any; }) & { p: any; } -> : ^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^ +> : ^^^^^^^ ^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/returnTypeInferenceNotTooBroad.types b/tests/baselines/reference/returnTypeInferenceNotTooBroad.types index 149c7971b596e..80e4420cec13f 100644 --- a/tests/baselines/reference/returnTypeInferenceNotTooBroad.types +++ b/tests/baselines/reference/returnTypeInferenceNotTooBroad.types @@ -30,13 +30,13 @@ interface Wrapper { } declare function sepsis(opts: Opts): Wrapper; >sepsis : (opts: Opts) => Wrapper -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >opts : Opts > : ^^^^^^^ declare function unwrap(w: Wrapper): T; >unwrap : (w: Wrapper) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >w : Wrapper > : ^^^^^^^^^^ @@ -46,7 +46,7 @@ export const y = sepsis({ low: 1, sign: { kind: 'a', a: 3 }}); >sepsis({ low: 1, sign: { kind: 'a', a: 3 }}) : Wrapper<{ kind: "a"; a: 3; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >sepsis : (opts: Opts) => Wrapper -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ low: 1, sign: { kind: 'a', a: 3 }} : { low: number; sign: { kind: "a"; a: 3; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >low : number @@ -73,7 +73,7 @@ export const yun = unwrap(y); >unwrap(y) : { kind: "a"; a: 3; } > : ^^^^^^^^^^^^^^^^^^^^ >unwrap : (w: Wrapper) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y : Wrapper<{ kind: "a"; a: 3; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -84,11 +84,11 @@ export const yone = unwrap(sepsis({ low: 1, sign: { kind: 'a', a: 3 }})); >unwrap(sepsis({ low: 1, sign: { kind: 'a', a: 3 }})) : { kind: "a"; a: 3; } > : ^^^^^^^^^^^^^^^^^^^^ >unwrap : (w: Wrapper) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >sepsis({ low: 1, sign: { kind: 'a', a: 3 }}) : Wrapper<{ kind: "a"; a: 3; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >sepsis : (opts: Opts) => Wrapper -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ low: 1, sign: { kind: 'a', a: 3 }} : { low: number; sign: { kind: "a"; a: 3; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >low : number diff --git a/tests/baselines/reference/returnTypeParameter.types b/tests/baselines/reference/returnTypeParameter.types index f1005014cf43c..aebeb6841e3f7 100644 --- a/tests/baselines/reference/returnTypeParameter.types +++ b/tests/baselines/reference/returnTypeParameter.types @@ -3,13 +3,13 @@ === returnTypeParameter.ts === function f(a: T): T { } // error, no return statement >f : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ function f2(a: T): T { return T; } // bug was that this satisfied the return statement requirement >f2 : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ >T : any diff --git a/tests/baselines/reference/returnTypeParameterWithModules.types b/tests/baselines/reference/returnTypeParameterWithModules.types index bc5fccfddb8d9..2cc300f5cf7d8 100644 --- a/tests/baselines/reference/returnTypeParameterWithModules.types +++ b/tests/baselines/reference/returnTypeParameterWithModules.types @@ -7,7 +7,7 @@ module M1 { export function reduce(ar, f, e?): Array { >reduce : (ar: any, f: any, e?: any) => Array -> : ^ ^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ +> : ^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ >ar : any >f : any >e : any @@ -17,7 +17,7 @@ module M1 { >Array.prototype.reduce.apply : (this: Function, thisArg: any, argArray?: any) => any > : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >Array.prototype.reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >Array.prototype : any[] > : ^^^^^ >Array : ArrayConstructor @@ -25,7 +25,7 @@ module M1 { >prototype : any[] > : ^^^^^ >reduce : { (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any): any; (callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue: any): any; (callbackfn: (previousValue: U, currentValue: any, currentIndex: number, array: any[]) => U, initialValue: U): U; } -> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^^ ^^^ ^^^ ^^^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^ ^^^ ^^^^^ ^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^ >apply : (this: Function, thisArg: any, argArray?: any) => any > : ^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >ar : any @@ -60,20 +60,20 @@ module M2 { >A.reduce(arguments, compose2) : unknown[] > : ^^^^^^^^^ >A.reduce : (ar: any, f: any, e?: any) => Array -> : ^ ^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ +> : ^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ >A : typeof A > : ^^^^^^^^ >reduce : (ar: any, f: any, e?: any) => Array -> : ^ ^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ +> : ^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ >arguments : IArguments > : ^^^^^^^^^^ >compose2 : (g: (x: B) => C, f: (x: D) => B) => (x: D) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ }; export function compose2(g: (x: B) => C, f: (x: D) => B): (x: D) => C { >compose2 : (g: (x: B) => C, f: (x: D) => B) => (x: D) => C -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >g : (x: B) => C > : ^ ^^ ^^^^^ >x : B diff --git a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types index f2678d05d4294..23e765f2d675f 100644 --- a/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types +++ b/tests/baselines/reference/returnTypePredicateIsInstantiateInContextOfTarget.types @@ -22,30 +22,30 @@ class TestComponent extends React.Component<{ isAny: (obj: any) => obj is T } >Component : typeof React.Component > : ^^^^^^^^^^^^^^^^^^^^^^ >isAny : (obj: any) => obj is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : any static defaultProps = { >defaultProps : { isAny: (obj: any) => obj is T; } -> : ^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >{ isAny: TestComponent.isAny } : { isAny: (obj: any) => obj is T; } -> : ^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ isAny: TestComponent.isAny >isAny : (obj: any) => obj is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >TestComponent.isAny : (obj: any) => obj is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >TestComponent : typeof TestComponent > : ^^^^^^^^^^^^^^^^^^^^ >isAny : (obj: any) => obj is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } // Type guard is defined as a static class property static isAny(obj: any): obj is T { >isAny : (obj: any) => obj is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : any return true; diff --git a/tests/baselines/reference/reverseInferenceInContextualInstantiation.types b/tests/baselines/reference/reverseInferenceInContextualInstantiation.types index 4f23a1f3f3dc2..747b35b903f61 100644 --- a/tests/baselines/reference/reverseInferenceInContextualInstantiation.types +++ b/tests/baselines/reference/reverseInferenceInContextualInstantiation.types @@ -3,7 +3,7 @@ === reverseInferenceInContextualInstantiation.ts === function compare(a: T, b: T): number { return 0; } >compare : (a: T, b: T) => number -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : T > : ^ >b : T @@ -19,11 +19,11 @@ x.sort(compare); // Error, but shouldn't be >x.sort(compare) : number[] > : ^^^^^^^^ >x.sort : (compareFn?: (a: number, b: number) => number) => number[] -> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ >x : number[] > : ^^^^^^^^ >sort : (compareFn?: (a: number, b: number) => number) => number[] -> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ +> : ^ ^^^^ ^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^ >compare : (a: T, b: T) => number -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/reverseMappedContravariantInference.types b/tests/baselines/reference/reverseMappedContravariantInference.types index da070f1c6ca9c..a673395a5c4f7 100644 --- a/tests/baselines/reference/reverseMappedContravariantInference.types +++ b/tests/baselines/reference/reverseMappedContravariantInference.types @@ -5,9 +5,9 @@ declare function conforms(source: { [K in keyof T]: (val: T[K]) => boolean }): (value: T) => boolean; >conforms : (source: { [K in keyof T]: (val: T[K]) => boolean; }) => (value: T) => boolean -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >source : { [K in keyof T]: (val: T[K]) => boolean; } -> : ^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >val : T[K] > : ^^^^ >value : T @@ -19,7 +19,7 @@ conforms({ foo: (v: string) => false })({ foo: "hello" }); >conforms({ foo: (v: string) => false }) : (value: { foo: string; }) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^^^^ >conforms : (source: { [K in keyof T]: (val: T[K]) => boolean; }) => (value: T) => boolean -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo: (v: string) => false } : { foo: (v: string) => false; } > : ^^^^^^^^ ^^ ^^^^^^^^^^^^^ >foo : (v: string) => false diff --git a/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types b/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types index 50e7502dd422c..01c170c56d21b 100644 --- a/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types +++ b/tests/baselines/reference/reverseMappedPartiallyInferableTypes.types @@ -61,7 +61,7 @@ export type PropsDefinition = RecordPropsDefinition; declare function extend({ props }: { props: PropsDefinition }): PropsDefinition; >extend : ({ props }: { props: PropsDefinition; }) => PropsDefinition -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >props : RecordPropsDefinition > : ^^^^^^^^^^^^^^^^^^^^^^^^ >props : RecordPropsDefinition @@ -79,7 +79,7 @@ const r = extend({ >extend({ props: { notResolved: { type: Object as PropType, validator: x => { return x.valid; } }, explicit: { type: Object as PropType, validator: (x: MyType) => { return x.valid; } } }}) : RecordPropsDefinition<{ notResolved: MyType; explicit: MyType; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >extend : ({ props }: { props: PropsDefinition; }) => PropsDefinition -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ props: { notResolved: { type: Object as PropType, validator: x => { return x.valid; } }, explicit: { type: Object as PropType, validator: (x: MyType) => { return x.valid; } } }} : { props: { notResolved: { type: PropType; validator: (x: MyType) => boolean; }; explicit: { type: PropType; validator: (x: MyType) => boolean; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ @@ -221,7 +221,7 @@ type Mapped = { declare function id(arg: Mapped): Mapped; >id : (arg: Mapped) => Mapped -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : Mapped > : ^^^^^^^^^ @@ -233,7 +233,7 @@ const obj1 = id({ >id({ foo: { contents: "" }}) : Mapped<{ foo: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^ >id : (arg: Mapped) => Mapped -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo: { contents: "" }} : { foo: { contents: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -259,7 +259,7 @@ const obj2 = id({ >id({ foo: { contents: "", contains(k) { return k.length > 0; } }}) : Mapped<{ foo: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^ >id : (arg: Mapped) => Mapped -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo: { contents: "", contains(k) { return k.length > 0; } }} : { foo: { contents: string; contains(k: string): boolean; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ @@ -304,7 +304,7 @@ const obj3 = id({ >id({ foo: { contains(k) { return k.length > 0; } }}) : Mapped > : ^^^^^^^^^^^^^^^ >id : (arg: Mapped) => Mapped -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ foo: { contains(k) { return k.length > 0; } }} : { foo: { contains(k: unknown): boolean; }; } > : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -349,7 +349,7 @@ type Mapped1 = { declare function inferMapped1(arg: Mapped1): void; >inferMapped1 : (arg: Mapped1) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : Mapped1 > : ^^^^^^^^^^ @@ -357,7 +357,7 @@ inferMapped1({ >inferMapped1({ key: [3, arg => arg.key > 5]}) : void > : ^^^^ >inferMapped1 : (arg: Mapped1) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ key: [3, arg => arg.key > 5]} : { key: [number, (arg: { key: number; }) => boolean]; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -397,7 +397,7 @@ type Mapped2 = { declare function inferMapped2(arg: Mapped2): void; >inferMapped2 : (arg: Mapped2) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : Mapped2 > : ^^^^^^^^^^ @@ -405,7 +405,7 @@ inferMapped2({ >inferMapped2({ key: [3, arg => arg.key > 5]}) : void > : ^^^^ >inferMapped2 : (arg: Mapped2) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ key: [3, arg => arg.key > 5]} : { key: [number, (arg: { key: number; }) => boolean]; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -445,7 +445,7 @@ type MappedReadonly = { declare function inferMappedReadonly(arg: MappedReadonly): void; >inferMappedReadonly : (arg: MappedReadonly) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : MappedReadonly > : ^^^^^^^^^^^^^^^^^ @@ -453,7 +453,7 @@ inferMappedReadonly({ >inferMappedReadonly({ key: [3, arg => arg.key > 5]}) : void > : ^^^^ >inferMappedReadonly : (arg: MappedReadonly) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{ key: [3, arg => arg.key > 5]} : { key: [number, (arg: { key: number; }) => boolean]; } > : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedTupleContext.types b/tests/baselines/reference/reverseMappedTupleContext.types index 91a5c3dfffb9b..c797fca4735db 100644 --- a/tests/baselines/reference/reverseMappedTupleContext.types +++ b/tests/baselines/reference/reverseMappedTupleContext.types @@ -5,7 +5,7 @@ declare function test1(arg: { >test1 : (arg: { [K in keyof T]: T[K]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : { [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -17,7 +17,7 @@ const result1 = test1(["foo", 42]); >test1(["foo", 42]) : [string, number] > : ^^^^^^^^^^^^^^^^ >test1 : (arg: { [K in keyof T]: T[K]; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >["foo", 42] : [string, number] > : ^^^^^^^^^^^^^^^^ >"foo" : "foo" @@ -27,7 +27,7 @@ const result1 = test1(["foo", 42]); declare function test2(arg: { >test2 : (arg: { [K in keyof T]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : { [K in keyof T]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -39,7 +39,7 @@ const result2 = test2(["foo", 42]); >test2(["foo", 42]) : [string, number] > : ^^^^^^^^^^^^^^^^ >test2 : (arg: { [K in keyof T]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >["foo", 42] : [string, number] > : ^^^^^^^^^^^^^^^^ >"foo" : "foo" @@ -59,7 +59,7 @@ type Definition = { }; declare function create(definition: Definition): T; >create : (definition: Definition) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >definition : Definition > : ^^^^^^^^^^^^^ @@ -69,7 +69,7 @@ const created1 = create([() => 1, [() => ""]]); >create([() => 1, [() => ""]]) : [number, [string]] > : ^^^^^^^^^^^^^^^^^^ >create : (definition: Definition) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[() => 1, [() => ""]] : [() => number, [() => string]] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => 1 : () => number @@ -89,7 +89,7 @@ const created2 = create({ >create({ a: () => 1, b: [() => ""],}) : { a: number; b: [string]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >create : (definition: Definition) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ a: () => 1, b: [() => ""],} : { a: () => number; b: [() => string]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -134,9 +134,9 @@ type KeepLiteralStrings = { }; declare function test4>(obj: { >test4 : >(obj: { [K in keyof T & keyof CompilerOptions]: { dependencies: KeepLiteralStrings; }; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : { [K in keyof T & keyof CompilerOptions]: { dependencies: KeepLiteralStrings; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ [K in keyof T & keyof CompilerOptions]: { dependencies: KeepLiteralStrings; @@ -151,7 +151,7 @@ const result4 = test4({ >test4({ alwaysStrict: { dependencies: ["foo", "bar"], }, allowUnusedLabels: { dependencies: ["baz", "qwe"], },}) : { alwaysStrict: ["foo", "bar"]; allowUnusedLabels: ["baz", "qwe"]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test4 : >(obj: { [K in keyof T & keyof CompilerOptions]: { dependencies: KeepLiteralStrings; }; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ alwaysStrict: { dependencies: ["foo", "bar"], }, allowUnusedLabels: { dependencies: ["baz", "qwe"], },} : { alwaysStrict: { dependencies: ["foo", "bar"]; }; allowUnusedLabels: { dependencies: ["baz", "qwe"]; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedTypeContextualTypeNotCircular.types b/tests/baselines/reference/reverseMappedTypeContextualTypeNotCircular.types index 8f6c154f822d3..8f33754950776 100644 --- a/tests/baselines/reference/reverseMappedTypeContextualTypeNotCircular.types +++ b/tests/baselines/reference/reverseMappedTypeContextualTypeNotCircular.types @@ -9,7 +9,7 @@ type Selector = (state: S) => R; declare function createStructuredSelector( >createStructuredSelector : (selectors: { [K in keyof T]: Selector; }) => Selector -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ selectors: {[K in keyof T]: Selector}, >selectors : { [K in keyof T]: Selector; } @@ -33,7 +33,7 @@ const mapStateToProps = createStructuredSelector({ >createStructuredSelector({ editable: (state: any, props: any) => editable(), // expect "Type '(state: any, props: any) => {}' is not assignable to type 'Selector'", _not_ a circularity error}) : Selector > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createStructuredSelector : (selectors: { [K in keyof T]: Selector; }) => Selector -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ editable: (state: any, props: any) => editable(), // expect "Type '(state: any, props: any) => {}' is not assignable to type 'Selector'", _not_ a circularity error} : { editable: (state: any, props: any) => {}; } > : ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types b/tests/baselines/reference/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types index 34a2bd7a78788..6c0ec5359052c 100644 --- a/tests/baselines/reference/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types +++ b/tests/baselines/reference/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types @@ -7,7 +7,7 @@ type Tuple = readonly [T, ...T[]]; declare function bindAll< >bindAll : >(target: TTarget, bindings: { [K in keyof TTypes]: { type: TTypes[K]; listener: (ev: Parameters any>>[0]) => void; }; }) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ TTarget extends EventTarget, TTypes extends Tuple @@ -18,7 +18,7 @@ declare function bindAll< bindings: { >bindings : { [K in keyof TTypes]: { type: TTypes[K]; listener: (ev: Parameters any>>[0]) => void; }; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^ [K in keyof TTypes]: { type: TTypes[K]; @@ -44,7 +44,7 @@ bindAll({} as HTMLButtonElement, [ >bindAll({} as HTMLButtonElement, [ { type: "onclick", listener: (event) => {}, }, { type: "onkeydown", listener: (event) => {}, },]) : void > : ^^^^ >bindAll : >(target: TTarget, bindings: { [K in keyof TTypes]: { type: TTypes[K]; listener: (ev: Parameters any>>[0]) => void; }; }) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >{} as HTMLButtonElement : HTMLButtonElement > : ^^^^^^^^^^^^^^^^^ >{} : {} diff --git a/tests/baselines/reference/reverseMappedTypeDeepDeclarationEmit.types b/tests/baselines/reference/reverseMappedTypeDeepDeclarationEmit.types index 50aa4cc334119..c3bda3cbc8471 100644 --- a/tests/baselines/reference/reverseMappedTypeDeepDeclarationEmit.types +++ b/tests/baselines/reference/reverseMappedTypeDeepDeclarationEmit.types @@ -25,7 +25,7 @@ export declare const SimpleStringValidator: NativeTypeValidator; ///object validator function export declare const ObjValidator: (validatorObj: ObjectValidator) => (o: any) => V; >ObjValidator : (validatorObj: ObjectValidator) => (o: any) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >validatorObj : ObjectValidator > : ^^^^^^^^^^^^^^^^^^ >o : any @@ -60,11 +60,11 @@ export const test = { export const validatorFunc = ObjValidator(test); >validatorFunc : (o: any) => { Test: { Test1: { Test2: string; }; }; } -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ObjValidator(test) : (o: any) => { Test: { Test1: { Test2: string; }; }; } -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ObjValidator : (validatorObj: ObjectValidator) => (o: any) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >test : { Test: { Test1: { Test2: NativeTypeValidator; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -74,7 +74,7 @@ export const outputExample = validatorFunc({ >validatorFunc({ Test: { Test1: { Test2: "hi" }, }}) : { Test: { Test1: { Test2: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >validatorFunc : (o: any) => { Test: { Test1: { Test2: string; }; }; } -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ Test: { Test1: { Test2: "hi" }, }} : { Test: { Test1: { Test2: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedTypeIntersectionConstraint.types b/tests/baselines/reference/reverseMappedTypeIntersectionConstraint.types index fbb016a9ba1fd..a7b2e0846ff3e 100644 --- a/tests/baselines/reference/reverseMappedTypeIntersectionConstraint.types +++ b/tests/baselines/reference/reverseMappedTypeIntersectionConstraint.types @@ -27,7 +27,7 @@ type StateSchema = { declare function createMachine< >createMachine : , TAction extends string = TConfig["entry"] extends string ? TConfig["entry"] : string>(config: { [K in keyof TConfig & keyof StateConfig]: TConfig[K]; }) => [TAction, TConfig] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ TConfig extends StateConfig, TAction extends string = TConfig["entry"] extends string ? TConfig["entry"] : string, @@ -41,7 +41,7 @@ const inferredParams1 = createMachine({ >createMachine({ entry: "foo", states: { a: { entry: "bar", }, }, extra: 12,}) : ["foo", StateConfig<"foo">] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createMachine : , TAction extends string = TConfig["entry"] extends string ? TConfig["entry"] : string>(config: { [K in keyof TConfig & keyof StateConfig]: TConfig[K]; }) => [TAction, TConfig] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ entry: "foo", states: { a: { entry: "bar", }, }, extra: 12,} : { entry: "foo"; states: { a: { entry: "bar"; }; }; extra: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -85,7 +85,7 @@ const inferredParams2 = createMachine({ >createMachine({ entry: "foo", states: { a: { entry: "foo", }, }, extra: 12,}) : ["foo", { entry: "foo"; states: { a: { entry: "foo"; }; }; }] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createMachine : , TAction extends string = TConfig["entry"] extends string ? TConfig["entry"] : string>(config: { [K in keyof TConfig & keyof StateConfig]: TConfig[K]; }) => [TAction, TConfig] -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ entry: "foo", states: { a: { entry: "foo", }, }, extra: 12,} : { entry: "foo"; states: { a: { entry: "foo"; }; }; extra: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -128,11 +128,11 @@ const inferredParams2 = createMachine({ const checkType = () => (value: { [K in keyof U & keyof T]: U[K] }) => value; >checkType : () => (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => (value: { [K in keyof U & keyof T]: U[K] }) => value : () => (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(value: { [K in keyof U & keyof T]: U[K] }) => value : (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : { [K in keyof U & keyof T]: U[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : { [K in keyof U & keyof T]: U[K]; } @@ -146,7 +146,7 @@ const checked = checkType<{x: number, y: string}>()({ >checkType<{x: number, y: string}>() : (value: { [K in keyof U & ("x" | "y")]: U[K]; }) => { [K in keyof U & ("x" | "y")]: U[K]; } > : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >checkType : () => (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >y : string @@ -194,7 +194,7 @@ interface Stuff { function doStuffWithStuff(s: { [K in keyof T & keyof Stuff]: T[K] } ): T { >doStuffWithStuff : (s: { [K in keyof T & keyof Stuff]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >s : { [K in keyof T & keyof Stuff]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -229,7 +229,7 @@ doStuffWithStuff({ field: 1, anotherField: 'a', extra: 123 }) >doStuffWithStuff({ field: 1, anotherField: 'a', extra: 123 }) : { field: 1; anotherField: "a"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >doStuffWithStuff : (s: { [K in keyof T & keyof Stuff]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ field: 1, anotherField: 'a', extra: 123 } : { field: 1; anotherField: "a"; extra: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >field : 1 @@ -247,7 +247,7 @@ doStuffWithStuff({ field: 1, anotherField: 'a', extra: 123 }) function doStuffWithStuffArr(arr: { [K in keyof T & keyof Stuff]: T[K] }[]): T[] { >doStuffWithStuffArr : (arr: { [K in keyof T & keyof Stuff]: T[K]; }[]) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arr : { [K in keyof T & keyof Stuff]: T[K]; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -282,7 +282,7 @@ doStuffWithStuffArr([ >doStuffWithStuffArr([ { field: 1, anotherField: 'a', extra: 123 },]) : { field: 1; anotherField: "a"; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >doStuffWithStuffArr : (arr: { [K in keyof T & keyof Stuff]: T[K]; }[]) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[ { field: 1, anotherField: 'a', extra: 123 },] : { field: 1; anotherField: "a"; extra: number; }[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -314,7 +314,7 @@ type XNumber = { x: number } declare function foo(props: {[K in keyof T & keyof XNumber]: T[K]}): void; >foo : (props: { [K in keyof T & keyof XNumber]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : { [K in keyof T & "x"]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -332,7 +332,7 @@ function bar(props: {x: number, y: string}) { >foo(props) : void > : ^^^^ >foo : (props: { [K in keyof T & keyof XNumber]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : { x: number; y: string; } > : ^^^^^ ^^^^^ ^^^ } @@ -341,7 +341,7 @@ foo({x: 1, y: 'foo'}); >foo({x: 1, y: 'foo'}) : void > : ^^^^ >foo : (props: { [K in keyof T & keyof XNumber]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{x: 1, y: 'foo'} : { x: 1; y: string; } > : ^^^^^^^^^^^^^^^^^^^^ >x : 1 @@ -357,7 +357,7 @@ foo({...{x: 1, y: 'foo'}}); // no error because lack of excess property check by >foo({...{x: 1, y: 'foo'}}) : void > : ^^^^ >foo : (props: { [K in keyof T & keyof XNumber]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{...{x: 1, y: 'foo'}} : { x: 1; y: string; } > : ^^^^^^^^^^^^^^^^^^^^ >{x: 1, y: 'foo'} : { x: 1; y: string; } @@ -383,7 +383,7 @@ type NoErrWithOptProps = { x: number, y?: string } declare function baz(props: {[K in keyof T & keyof NoErrWithOptProps]: T[K]}): void; >baz : (props: { [K in keyof T & keyof NoErrWithOptProps]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : { [K in keyof T & keyof NoErrWithOptProps]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -391,7 +391,7 @@ baz({x: 1}); >baz({x: 1}) : void > : ^^^^ >baz : (props: { [K in keyof T & keyof NoErrWithOptProps]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{x: 1} : { x: 1; } > : ^^^^^^^^^ >x : 1 @@ -403,7 +403,7 @@ baz({x: 1, z: 123}); >baz({x: 1, z: 123}) : void > : ^^^^ >baz : (props: { [K in keyof T & keyof NoErrWithOptProps]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{x: 1, z: 123} : { x: 1; z: number; } > : ^^^^^^^^^^^^^^^^^^^^ >x : 1 @@ -419,7 +419,7 @@ baz({x: 1, y: 'foo'}); >baz({x: 1, y: 'foo'}) : void > : ^^^^ >baz : (props: { [K in keyof T & keyof NoErrWithOptProps]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{x: 1, y: 'foo'} : { x: 1; y: "foo"; } > : ^^^^^^^^^^^^^^^^^^^ >x : 1 @@ -435,7 +435,7 @@ baz({x: 1, y: 'foo', z: 123}); >baz({x: 1, y: 'foo', z: 123}) : void > : ^^^^ >baz : (props: { [K in keyof T & keyof NoErrWithOptProps]: T[K]; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{x: 1, y: 'foo', z: 123} : { x: 1; y: "foo"; z: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : 1 @@ -470,7 +470,7 @@ interface WithNestedProp { declare function withNestedProp(props: {[K in keyof T & keyof WithNestedProp]: T[K]}): T; >withNestedProp : (props: { [K in keyof T & keyof WithNestedProp]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : { [K in keyof T & keyof WithNestedProp]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -480,7 +480,7 @@ const wnp = withNestedProp({prop: 'foo', nested: { prop: 'bar' }, extra: 10 }); >withNestedProp({prop: 'foo', nested: { prop: 'bar' }, extra: 10 }) : { prop: "foo"; nested: { prop: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >withNestedProp : (props: { [K in keyof T & keyof WithNestedProp]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{prop: 'foo', nested: { prop: 'bar' }, extra: 10 } : { prop: "foo"; nested: { prop: string; }; extra: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >prop : "foo" @@ -571,7 +571,7 @@ type NoExtra = { declare function createXMachine< >createXMachine : , TActor extends ProvidedActor = TConfig extends { types: { actors: ProvidedActor; }; } ? TConfig["types"]["actors"] : ProvidedActor>(config: { [K in keyof MachineConfig & keyof TConfig]: TConfig[K]; }) => TConfig -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ const TConfig extends MachineConfig, TActor extends ProvidedActor = TConfig extends { types: { actors: ProvidedActor} } ? TConfig["types"]["actors"] : ProvidedActor, @@ -606,7 +606,7 @@ const config = createXMachine({ >createXMachine({ types: {} as { actors: { src: "str"; logic: typeof child; }; }, invoke: { src: "str", }, extra: 10}) : { types: { actors: { src: "str"; logic: typeof child; }; }; invoke: { readonly src: "str"; }; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createXMachine : , TActor extends ProvidedActor = TConfig extends { types: { actors: ProvidedActor; }; } ? TConfig["types"]["actors"] : ProvidedActor>(config: { [K in keyof MachineConfig & keyof TConfig]: TConfig[K]; }) => TConfig -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ types: {} as { actors: { src: "str"; logic: typeof child; }; }, invoke: { src: "str", }, extra: 10} : { types: { actors: { src: "str"; logic: typeof child; }; }; invoke: { src: "str"; }; extra: number; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -661,7 +661,7 @@ const config2 = createXMachine({ >createXMachine({ invoke: { src: "whatever", }, extra: 10}) : { invoke: { readonly src: "whatever"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createXMachine : , TActor extends ProvidedActor = TConfig extends { types: { actors: ProvidedActor; }; } ? TConfig["types"]["actors"] : ProvidedActor>(config: { [K in keyof MachineConfig & keyof TConfig]: TConfig[K]; }) => TConfig -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >{ invoke: { src: "whatever", }, extra: 10} : { invoke: { src: "whatever"; }; extra: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedTypeLimitedConstraint.types b/tests/baselines/reference/reverseMappedTypeLimitedConstraint.types index 38b6fc719d261..7d03cab09af87 100644 --- a/tests/baselines/reference/reverseMappedTypeLimitedConstraint.types +++ b/tests/baselines/reference/reverseMappedTypeLimitedConstraint.types @@ -9,7 +9,7 @@ type XNumber_ = { x: number } declare function foo_(props: {[K in keyof T & keyof XNumber_]: T[K]}): T; >foo_ : (props: { [K in keyof T & keyof XNumber_]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >props : { [K in keyof T & "x"]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -17,7 +17,7 @@ foo_({x: 1, y: 'foo'}); >foo_({x: 1, y: 'foo'}) : { x: 1; } > : ^^^^^^^^^ >foo_ : (props: { [K in keyof T & keyof XNumber_]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{x: 1, y: 'foo'} : { x: 1; y: string; } > : ^^^^^^^^^^^^^^^^^^^^ >x : 1 @@ -33,11 +33,11 @@ foo_({x: 1, y: 'foo'}); const checkType_ = () => (value: { [K in keyof U & keyof T]: U[K] }) => value; >checkType_ : () => (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >() => (value: { [K in keyof U & keyof T]: U[K] }) => value : () => (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(value: { [K in keyof U & keyof T]: U[K] }) => value : (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : { [K in keyof U & keyof T]: U[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >value : { [K in keyof U & keyof T]: U[K]; } @@ -51,7 +51,7 @@ const checked_ = checkType_<{x: number, y: string}>()({ >checkType_<{x: number, y: string}>() : (value: { [K in keyof U & ("x" | "y")]: U[K]; }) => { [K in keyof U & ("x" | "y")]: U[K]; } > : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >checkType_ : () => (value: { [K in keyof U & keyof T]: U[K]; }) => { [K in keyof U & keyof T]: U[K]; } -> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number > : ^^^^^^ >y : string diff --git a/tests/baselines/reference/reverseMappedTypePrimitiveConstraintProperty.types b/tests/baselines/reference/reverseMappedTypePrimitiveConstraintProperty.types index cba6b40393ab6..15bdea4c70883 100644 --- a/tests/baselines/reference/reverseMappedTypePrimitiveConstraintProperty.types +++ b/tests/baselines/reference/reverseMappedTypePrimitiveConstraintProperty.types @@ -3,7 +3,7 @@ === reverseMappedTypePrimitiveConstraintProperty.ts === declare function test< >test : (obj: { [K in keyof T]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ T extends { prop: string; nested: { nestedProp: string } }, >prop : string @@ -23,7 +23,7 @@ const result = test({ >test({ prop: "foo", // this one should not widen to string nested: { nestedProp: "bar", }, extra: "baz",}) : { prop: "foo"; nested: { nestedProp: string; }; extra: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : (obj: { [K in keyof T]: T[K]; }) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ prop: "foo", // this one should not widen to string nested: { nestedProp: "bar", }, extra: "baz",} : { prop: "foo"; nested: { nestedProp: string; }; extra: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedTypeRecursiveInference.types b/tests/baselines/reference/reverseMappedTypeRecursiveInference.types index 5cdda57f52197..94d4add00a970 100644 --- a/tests/baselines/reference/reverseMappedTypeRecursiveInference.types +++ b/tests/baselines/reference/reverseMappedTypeRecursiveInference.types @@ -17,7 +17,7 @@ type Bar = { function test(value: Foo): V { >test : (value: Foo) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Foo > : ^^^^^^ @@ -49,7 +49,7 @@ test(bar); >test(bar) : { [x: string]: any; } > : ^^^^^^^^^^^^^^^^^^^^^ >test : (value: Foo) => V -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bar : Bar > : ^^^^^^^^ diff --git a/tests/baselines/reference/reverseMappedUnionInference.types b/tests/baselines/reference/reverseMappedUnionInference.types index d74f5853d608e..3e724cfb78534 100644 --- a/tests/baselines/reference/reverseMappedUnionInference.types +++ b/tests/baselines/reference/reverseMappedUnionInference.types @@ -29,7 +29,7 @@ interface Extractor { declare function createExtractor(params: { >createExtractor : (params: { matcher: (node: unknown) => node is T; extract: (node: T) => Result; }) => Extractor -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >params : { matcher: (node: unknown) => node is T; extract: (node: T) => Result; } > : ^^^^^^^^^^^ ^^^^^^^^^^^ ^^^ @@ -69,7 +69,7 @@ const identifierExtractor = createExtractor({ >createExtractor({ matcher: isIdentifier, extract: (node) => { return { node, kind: "identifier" as const, value: node.name, }; },}) : Extractor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createExtractor : (params: { matcher: (node: unknown) => node is T; extract: (node: T) => Result; }) => Extractor -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >{ matcher: isIdentifier, extract: (node) => { return { node, kind: "identifier" as const, value: node.name, }; },} : { matcher: (node: unknown) => node is Identifier; extract: (node: Identifier) => { node: Identifier; kind: "identifier"; value: string; }; } > : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -139,7 +139,7 @@ const stringExtractor = createExtractor({ >createExtractor({ matcher: isStringLiteral, extract: (node) => { return { node, kind: "string" as const, value: node.value, }; },}) : Extractor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createExtractor : (params: { matcher: (node: unknown) => node is T; extract: (node: T) => Result; }) => Extractor -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ >{ matcher: isStringLiteral, extract: (node) => { return { node, kind: "string" as const, value: node.value, }; },} : { matcher: (node: unknown) => node is StringLiteral; extract: (node: StringLiteral) => { node: StringLiteral; kind: "string"; value: string; }; } > : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -189,7 +189,7 @@ const stringExtractor = createExtractor({ declare function unionType(parsers: { >unionType : (parsers: { [K in keyof Result]: AnyExtractor; }) => AnyExtractor -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >parsers : { [K in keyof Result]: AnyExtractor; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -202,7 +202,7 @@ const myUnion = unionType([identifierExtractor, stringExtractor]); >unionType([identifierExtractor, stringExtractor]) : AnyExtractor<{ node: Identifier; kind: "identifier"; value: string; } | { node: StringLiteral; kind: "string"; value: string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unionType : (parsers: { [K in keyof Result]: AnyExtractor; }) => AnyExtractor -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >[identifierExtractor, stringExtractor] : [Extractor, Extractor] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >identifierExtractor : Extractor diff --git a/tests/baselines/reference/selfReference.types b/tests/baselines/reference/selfReference.types index ec2b6bf814e7c..8d421959956d1 100644 --- a/tests/baselines/reference/selfReference.types +++ b/tests/baselines/reference/selfReference.types @@ -3,15 +3,15 @@ === selfReference.ts === declare function asFunction(value: T): () => T; >asFunction : (value: T) => () => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : T > : ^ asFunction(() => { return 1; }); >asFunction(() => { return 1; }) : () => () => 1 -> : ^^^^^^^^^^^^^ +> : ^^^^^^ ^ >asFunction : (value: T) => () => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >() => { return 1; } : () => 1 > : ^^^^^^^ >1 : 1 diff --git a/tests/baselines/reference/selfReferentialFunctionType.types b/tests/baselines/reference/selfReferentialFunctionType.types index e69caaf61733f..eacc35ef41660 100644 --- a/tests/baselines/reference/selfReferentialFunctionType.types +++ b/tests/baselines/reference/selfReferentialFunctionType.types @@ -3,23 +3,23 @@ === selfReferentialFunctionType.ts === declare function f(args: typeof f): T; >f : (args: typeof f) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >args : typeof f > : >f : (args: typeof f) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ declare function g(args: T): T; >g : (args: T) => T -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^ >g : (args: T) => T -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^^^^ >args : T > : ^ declare function h(): typeof h; >h : () => typeof h -> : ^ ^^^^^^^ +> : ^^^^^^^^^ >h : () => typeof h -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/setMethods.types b/tests/baselines/reference/setMethods.types index f9d7a924d7635..3f91c53dc4a98 100644 --- a/tests/baselines/reference/setMethods.types +++ b/tests/baselines/reference/setMethods.types @@ -91,11 +91,11 @@ numberSet.union([]); >numberSet.union([]) : Set > : ^^^^^^^^^^^^ >numberSet.union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -103,11 +103,11 @@ numberSet.union(new Set); >numberSet.union(new Set) : Set > : ^^^^^^^^^^^^ >numberSet.union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >new Set : Set > : ^^^^^^^^^^^^ >Set : SetConstructor @@ -117,11 +117,11 @@ numberSet.union(stringSet); >numberSet.union(stringSet) : Set > : ^^^^^^^^^^^^^^^^^^^^ >numberSet.union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >stringSet : Set > : ^^^^^^^^^^^ @@ -129,11 +129,11 @@ numberSet.union(numberMap); >numberSet.union(numberMap) : Set > : ^^^^^^^^^^^ >numberSet.union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberMap : Map > : ^^^^^^^^^^^^^^^ @@ -141,11 +141,11 @@ numberSet.union(numberSetLike); >numberSet.union(numberSetLike) : Set > : ^^^^^^^^ >numberSet.union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >union : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSetLike : { size: number; keys(): Generator; has(x: any): boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ @@ -153,11 +153,11 @@ numberSet.intersection([]); >numberSet.intersection([]) : Set > : ^^^^^^^^^^^ >numberSet.intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -165,11 +165,11 @@ numberSet.intersection(new Set); >numberSet.intersection(new Set) : Set > : ^^^^^^^^^^^ >numberSet.intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >new Set : Set > : ^^^^^^^^^^^^ >Set : SetConstructor @@ -179,11 +179,11 @@ numberSet.intersection(stringSet); >numberSet.intersection(stringSet) : Set > : ^^^^^^^^^^ >numberSet.intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >stringSet : Set > : ^^^^^^^^^^^ @@ -191,11 +191,11 @@ numberSet.intersection(numberMap); >numberSet.intersection(numberMap) : Set > : ^^^^^^^^^^^ >numberSet.intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberMap : Map > : ^^^^^^^^^^^^^^^ @@ -203,11 +203,11 @@ numberSet.intersection(numberSetLike); >numberSet.intersection(numberSetLike) : Set > : ^^^^^^^^ >numberSet.intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >intersection : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSetLike : { size: number; keys(): Generator; has(x: any): boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ @@ -215,11 +215,11 @@ numberSet.difference([]); >numberSet.difference([]) : Set > : ^^^^^^^^^^^ >numberSet.difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberSet : Set > : ^^^^^^^^^^^ >difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -227,11 +227,11 @@ numberSet.difference(new Set); >numberSet.difference(new Set) : Set > : ^^^^^^^^^^^ >numberSet.difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberSet : Set > : ^^^^^^^^^^^ >difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >new Set : Set > : ^^^^^^^^^^^^ >Set : SetConstructor @@ -241,11 +241,11 @@ numberSet.difference(stringSet); >numberSet.difference(stringSet) : Set > : ^^^^^^^^^^^ >numberSet.difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberSet : Set > : ^^^^^^^^^^^ >difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >stringSet : Set > : ^^^^^^^^^^^ @@ -253,11 +253,11 @@ numberSet.difference(numberMap); >numberSet.difference(numberMap) : Set > : ^^^^^^^^^^^ >numberSet.difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberSet : Set > : ^^^^^^^^^^^ >difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberMap : Map > : ^^^^^^^^^^^^^^^ @@ -265,11 +265,11 @@ numberSet.difference(numberSetLike); >numberSet.difference(numberSetLike) : Set > : ^^^^^^^^^^^ >numberSet.difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberSet : Set > : ^^^^^^^^^^^ >difference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >numberSetLike : { size: number; keys(): Generator; has(x: any): boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ @@ -277,11 +277,11 @@ numberSet.symmetricDifference([]); >numberSet.symmetricDifference([]) : Set > : ^^^^^^^^^^^^ >numberSet.symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >[] : undefined[] > : ^^^^^^^^^^^ @@ -289,11 +289,11 @@ numberSet.symmetricDifference(new Set); >numberSet.symmetricDifference(new Set) : Set > : ^^^^^^^^^^^^ >numberSet.symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >new Set : Set > : ^^^^^^^^^^^^ >Set : SetConstructor @@ -303,11 +303,11 @@ numberSet.symmetricDifference(stringSet); >numberSet.symmetricDifference(stringSet) : Set > : ^^^^^^^^^^^^^^^^^^^^ >numberSet.symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >stringSet : Set > : ^^^^^^^^^^^ @@ -315,11 +315,11 @@ numberSet.symmetricDifference(numberMap); >numberSet.symmetricDifference(numberMap) : Set > : ^^^^^^^^^^^ >numberSet.symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberMap : Map > : ^^^^^^^^^^^^^^^ @@ -327,11 +327,11 @@ numberSet.symmetricDifference(numberSetLike); >numberSet.symmetricDifference(numberSetLike) : Set > : ^^^^^^^^ >numberSet.symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSet : Set > : ^^^^^^^^^^^ >symmetricDifference : (other: ReadonlySetLike) => Set -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^ >numberSetLike : { size: number; keys(): Generator; has(x: any): boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/sigantureIsSubTypeIfTheyAreIdentical.types b/tests/baselines/reference/sigantureIsSubTypeIfTheyAreIdentical.types index f0b592b6bcb49..329bec5ac2541 100644 --- a/tests/baselines/reference/sigantureIsSubTypeIfTheyAreIdentical.types +++ b/tests/baselines/reference/sigantureIsSubTypeIfTheyAreIdentical.types @@ -4,7 +4,7 @@ interface ICache { get(key: string): T; >get : (key: string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >key : string > : ^^^^^^ } @@ -14,7 +14,7 @@ class CacheService implements ICache { // Should not error that property type of get(key: string): T { >get : (key: string) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >key : string > : ^^^^^^ diff --git a/tests/baselines/reference/signatureInstantiationWithRecursiveConstraints.types b/tests/baselines/reference/signatureInstantiationWithRecursiveConstraints.types index f7998a56ea6a8..b3b512e695a8a 100644 --- a/tests/baselines/reference/signatureInstantiationWithRecursiveConstraints.types +++ b/tests/baselines/reference/signatureInstantiationWithRecursiveConstraints.types @@ -9,7 +9,7 @@ class Foo { myFunc(arg: T) {} >myFunc : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ } @@ -20,7 +20,7 @@ class Bar { myFunc(arg: T) {} >myFunc : (arg: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ } diff --git a/tests/baselines/reference/silentNeverPropagation.types b/tests/baselines/reference/silentNeverPropagation.types index 933843c9f53ec..48a169eb12a21 100644 --- a/tests/baselines/reference/silentNeverPropagation.types +++ b/tests/baselines/reference/silentNeverPropagation.types @@ -35,7 +35,7 @@ type MoreState = { declare function createModule(state: TState, actions: TActions): ModuleWithState & TActions; >createModule : (state: TState, actions: TActions) => ModuleWithState & TActions -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >state : TState > : ^^^^^^ >actions : TActions @@ -43,7 +43,7 @@ declare function createModule(state: TState, actions: TActions declare function convert(m: ModuleWithState & TActions): ModuleWithState & TActions; >convert : (m: ModuleWithState & TActions) => ModuleWithState & TActions -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ >m : ModuleWithState & TActions > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -53,13 +53,13 @@ const breaks = convert( >convert( createModule({ a: 12 }, { foo() { return true } })) : ModuleWithState<{ a: number; } & MoreState> & ModuleWithState<{ a: number; }> & { foo(): true; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >convert : (m: ModuleWithState & TActions) => ModuleWithState & TActions -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ createModule({ a: 12 }, { foo() { return true } }) >createModule({ a: 12 }, { foo() { return true } }) : ModuleWithState<{ a: number; }> & { foo(): true; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createModule : (state: TState, actions: TActions) => ModuleWithState & TActions -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >{ a: 12 } : { a: number; } > : ^^^^^^^^^^^^^^ >a : number diff --git a/tests/baselines/reference/simplifyingConditionalWithInteriorConditionalIsRelated.types b/tests/baselines/reference/simplifyingConditionalWithInteriorConditionalIsRelated.types index 55455ad37ec30..7a1e9a69b33c1 100644 --- a/tests/baselines/reference/simplifyingConditionalWithInteriorConditionalIsRelated.types +++ b/tests/baselines/reference/simplifyingConditionalWithInteriorConditionalIsRelated.types @@ -8,7 +8,7 @@ type ConditionalType = T extends string ? string : number; function ConditionalOrUndefined(): ConditionalType | undefined { >ConditionalOrUndefined : () => ConditionalType | undefined -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return 0 as any; >0 as any : any @@ -18,7 +18,7 @@ function ConditionalOrUndefined(): ConditionalType | undefined { function JustConditional(): ConditionalType { >JustConditional : () => ConditionalType -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return ConditionalOrUndefined()!; // shouldn't error >ConditionalOrUndefined()! : ConditionalType @@ -26,14 +26,14 @@ function JustConditional(): ConditionalType { >ConditionalOrUndefined() : ConditionalType | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ConditionalOrUndefined : () => ConditionalType | undefined -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ } // For comparison... function genericOrUndefined(): T | undefined { >genericOrUndefined : () => T | undefined -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return 0 as any; >0 as any : any @@ -43,7 +43,7 @@ function genericOrUndefined(): T | undefined { function JustGeneric(): T { >JustGeneric : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ return genericOrUndefined()!; // no error >genericOrUndefined()! : NonNullable @@ -51,7 +51,7 @@ function JustGeneric(): T { >genericOrUndefined() : T | undefined > : ^^^^^^^^^^^^^ >genericOrUndefined : () => T_1 | undefined -> : ^ ^^^^^^^ +> : ^^^^^^^^^^^ } // Simplified example: diff --git a/tests/baselines/reference/sliceResultCast.types b/tests/baselines/reference/sliceResultCast.types index 95a357be636bc..953913a43f3ff 100644 --- a/tests/baselines/reference/sliceResultCast.types +++ b/tests/baselines/reference/sliceResultCast.types @@ -11,11 +11,11 @@ x.slice(1) as readonly string[]; >x.slice(1) : (string | number)[] > : ^^^^^^^^^^^^^^^^^^^ >x.slice : ((start?: number, end?: number) => (string | number)[]) | ((start?: number, end?: number) => (string | number)[]) -> : ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^ ^ >x : [number, string] | [number, string, string] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >slice : ((start?: number, end?: number) => (string | number)[]) | ((start?: number, end?: number) => (string | number)[]) -> : ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^ +> : ^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^ ^^ ^^^ ^^^^^^^^^^^^ ^^^^^^^ ^ >1 : 1 > : ^ diff --git a/tests/baselines/reference/specedNoStackBlown.types b/tests/baselines/reference/specedNoStackBlown.types index f84e448dd51ff..a64cf9d15f298 100644 --- a/tests/baselines/reference/specedNoStackBlown.types +++ b/tests/baselines/reference/specedNoStackBlown.types @@ -9,7 +9,7 @@ declare function spected = SpecValue>(spec: SPEC, input: ROOTINPUT): Result; >spected : = SpecValue>(spec: SPEC, input: ROOTINPUT) => Result -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >spec : SPEC > : ^^^^ >input : ROOTINPUT @@ -80,5 +80,5 @@ export type Result = {[key in keyof INPUT]: true | any[] | Resultspected : = SpecValue>(spec: SPEC, input: ROOTINPUT) => Result -> : ^ ^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/specializationError.types b/tests/baselines/reference/specializationError.types index 1ec5f160b60df..eb319a3781ecc 100644 --- a/tests/baselines/reference/specializationError.types +++ b/tests/baselines/reference/specializationError.types @@ -4,7 +4,7 @@ interface Promise { then(value: T): void; >then : { (onfulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): Promise; (value: T): void; } -> : ^^^ ^^^^^^ ^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >value : T > : ^ } @@ -12,13 +12,13 @@ interface Promise { interface Bar { bar(value: "Menu"): Promise; >bar : { (value: "Menu"): Promise; (value: string, element: string): Promise; (value: string): Promise; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >value : "Menu" > : ^^^^^^ bar(value: string, element: string): Promise; >bar : { (value: "Menu"): Promise; (value: string, element: string): Promise; (value: string): Promise; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^^ ^^^ >value : string > : ^^^^^^ >element : string @@ -26,7 +26,7 @@ interface Bar { bar(value: string): Promise; >bar : { (value: "Menu"): Promise; (value: string, element: string): Promise; (value: string): Promise; } -> : ^^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >value : string > : ^^^^^^ } diff --git a/tests/baselines/reference/specializeVarArgs1.types b/tests/baselines/reference/specializeVarArgs1.types index 4a8cfd38f5bab..edf770e1ecc0f 100644 --- a/tests/baselines/reference/specializeVarArgs1.types +++ b/tests/baselines/reference/specializeVarArgs1.types @@ -21,7 +21,7 @@ interface ObservableArray extends Observable function observableArray(): ObservableArray { return null;} >observableArray : () => ObservableArray -> : ^ ^^^^^^^ +> : ^^^^^^^^^ @@ -31,7 +31,7 @@ var a = observableArray(); >observableArray() : ObservableArray > : ^^^^^^^^^^^^^^^^^^^^^^^ >observableArray : () => ObservableArray -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a.push('Some Value'); >a.push('Some Value') : any diff --git a/tests/baselines/reference/specializedLambdaTypeArguments.types b/tests/baselines/reference/specializedLambdaTypeArguments.types index 889697c30445d..8cb9509ed2689 100644 --- a/tests/baselines/reference/specializedLambdaTypeArguments.types +++ b/tests/baselines/reference/specializedLambdaTypeArguments.types @@ -7,7 +7,7 @@ class X { prop: X< () => Tany >; >prop : X<(() => Tany)> -> : ^^^^ ^^^^^^^ ^^ +> : ^^^^^^^^^^^^^^^ ^^ } var a: X; >a : X diff --git a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types index d92de312d36f7..2b699f4b497d7 100644 --- a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types +++ b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types @@ -175,7 +175,7 @@ var a: { var a2: { >a2 : { (x: "a"): any; (x: T): any; foo(x: "a"): any; foo(x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ (x: 'a'); >x : "a" @@ -187,20 +187,20 @@ var a2: { foo(x: 'a'); >foo : { (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ foo(x: T); >foo : { (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ } var a3: { >a3 : { (x: "a"): any; (x: T): any; foo(x: "a"): any; foo(x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ (x: 'a'); >x : "a" @@ -212,13 +212,13 @@ var a3: { foo(x: 'a'); >foo : { (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ foo(x: T); >foo : { (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types index 98480b9816223..47258e49536a9 100644 --- a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types +++ b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types @@ -232,7 +232,7 @@ var a: { var a2: { >a2 : { (x: "a"): any; (x: string): any; (x: T): any; foo(x: string): any; foo(x: "a"): any; foo(x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ (x: 'a'); >x : "a" @@ -248,26 +248,26 @@ var a2: { foo(x: string); >foo : { (x: string): any; (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : string > : ^^^^^^ foo(x: 'a'); >foo : { (x: string): any; (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ foo(x: T); >foo : { (x: string): any; (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ } var a3: { >a3 : { (x: "a"): any; (x: T): any; (x: string): any; foo(x: string): any; foo(x: "a"): any; foo(x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ (x: 'a'); >x : "a" @@ -283,19 +283,19 @@ var a3: { foo(x: string); >foo : { (x: string): any; (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : string > : ^^^^^^ foo(x: 'a'); >foo : { (x: string): any; (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ foo(x: T); >foo : { (x: string): any; (x: "a"): any; (x: T): any; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/spreadExpressionContextualType.types b/tests/baselines/reference/spreadExpressionContextualType.types index 5248655610147..c9d8f83e22fa0 100644 --- a/tests/baselines/reference/spreadExpressionContextualType.types +++ b/tests/baselines/reference/spreadExpressionContextualType.types @@ -17,7 +17,7 @@ interface Apple { function test(item: T): T { >test : (item: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >item : T > : ^ @@ -30,7 +30,7 @@ function test(item: T): T { function test2(item: T): T { >test2 : (item: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >item : T > : ^ diff --git a/tests/baselines/reference/spreadInvalidArgumentType.types b/tests/baselines/reference/spreadInvalidArgumentType.types index f600941b34698..f58061242d04a 100644 --- a/tests/baselines/reference/spreadInvalidArgumentType.types +++ b/tests/baselines/reference/spreadInvalidArgumentType.types @@ -11,7 +11,7 @@ enum E { v1, v2 }; function f(p1: T, p2: T[]) { >f : (p1: T, p2: T[]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >b : string > : ^^^^^^ >p1 : T @@ -106,9 +106,9 @@ function f(p1: T, p2: T[]) { var o2 = { ...p2 }; // OK >o2 : { [x: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T | undefined; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T | undefined; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ >{ ...p2 } : { [n: number]: T; length: number; toString(): string; toLocaleString(): string; pop(): T | undefined; push(...items: T[]): number; concat(...items: ConcatArray[]): T[]; concat(...items: (T | ConcatArray)[]): T[]; join(separator?: string): string; reverse(): T[]; shift(): T | undefined; slice(start?: number, end?: number): T[]; sort(compareFn?: (a: T, b: T) => number): T[]; splice(start: number, deleteCount?: number): T[]; splice(start: number, deleteCount: number, ...items: T[]): T[]; unshift(...items: T[]): number; indexOf(searchElement: T, fromIndex?: number): number; lastIndexOf(searchElement: T, fromIndex?: number): number; every(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; filter(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ ^^^ ^^ ^^^ ^^^^ ^^^^^^^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^ ^^^^^ ^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^ ^ ^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^ ^^ ^^^ ^^^^ ^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^^ >p2 : T[] > : ^^^ diff --git a/tests/baselines/reference/spreadObjectOrFalsy.types b/tests/baselines/reference/spreadObjectOrFalsy.types index a33ded1d33fb3..738bd969b9543 100644 --- a/tests/baselines/reference/spreadObjectOrFalsy.types +++ b/tests/baselines/reference/spreadObjectOrFalsy.types @@ -3,7 +3,7 @@ === spreadObjectOrFalsy.ts === function f1(a: T & undefined) { >f1 : (a: T & undefined) => any -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >a : T & undefined > : ^^^^^^^^^^^^^ @@ -16,7 +16,7 @@ function f1(a: T & undefined) { function f2(a: T | T & undefined) { >f2 : (a: T | (T & undefined)) => T | (T & undefined) -> : ^ ^^ ^^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : T | (T & undefined) > : ^^^^^^^^^^^^^^^^^^^ @@ -29,7 +29,7 @@ function f2(a: T | T & undefined) { function f3(a: T) { >f3 : (a: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >a : T > : ^ @@ -42,7 +42,7 @@ function f3(a: T) { function f4(a: object | T) { >f4 : (a: object | T) => {} -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^ >a : object | T > : ^^^^^^^^^^ @@ -55,7 +55,7 @@ function f4(a: object | T) { function f5(a: S | T) { >f5 : (a: S | T) => S | T -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^ >a : S | T > : ^^^^^ @@ -68,7 +68,7 @@ function f5(a: S | T) { function f6(a: T) { >f6 : (a: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >a : T > : ^ @@ -83,7 +83,7 @@ function f6(a: T) { function g1(a: A) { >g1 : (a: A) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ >z : T > : ^ >a : A diff --git a/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types b/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types index 500f68537fdb4..64974c7abdbbb 100644 --- a/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types +++ b/tests/baselines/reference/spreadOfParamsFromGeneratorMakesRequiredParams.types @@ -3,7 +3,7 @@ === spreadOfParamsFromGeneratorMakesRequiredParams.ts === declare function call any>( >call : any>(fn: Fn, ...args: Parameters) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >args : any[] > : ^^^^^ @@ -21,7 +21,7 @@ call(function* (a: 'a') { }); // error, 2nd argument required >call(function* (a: 'a') { }) : any > : ^^^ >call : any>(fn: Fn, ...args: Parameters) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >function* (a: 'a') { } : (a: "a") => {} > : ^ ^^ ^^^^^^^ >a : "a" diff --git a/tests/baselines/reference/spreadTupleAccessedByTypeParameter.types b/tests/baselines/reference/spreadTupleAccessedByTypeParameter.types index 562053320a525..5e5bad6f64f69 100644 --- a/tests/baselines/reference/spreadTupleAccessedByTypeParameter.types +++ b/tests/baselines/reference/spreadTupleAccessedByTypeParameter.types @@ -3,7 +3,7 @@ === spreadTupleAccessedByTypeParameter.ts === export function test(singletons: ["a"][], i: N) { >test : (singletons: ["a"][], i: N) => [] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^ >singletons : ["a"][] > : ^^^^^^^ >i : N diff --git a/tests/baselines/reference/spreadTypeVariable.types b/tests/baselines/reference/spreadTypeVariable.types index 6d2bf2bd48ec8..fb494e76338c4 100644 --- a/tests/baselines/reference/spreadTypeVariable.types +++ b/tests/baselines/reference/spreadTypeVariable.types @@ -3,7 +3,7 @@ === spreadTypeVariable.ts === function f1(arg: T) { >f1 : (arg: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >arg : T > : ^ @@ -16,7 +16,7 @@ function f1(arg: T) { function f2(arg: T) { >f2 : (arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >arg : T > : ^ @@ -29,7 +29,7 @@ function f2(arg: T) { function f3(arg: T) { >f3 : (arg: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >arg : T > : ^ @@ -42,7 +42,7 @@ function f3(arg: T) { function f4(arg: T) { >f4 : (arg: T) => any -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^ >key : string > : ^^^^^^ >arg : T @@ -57,7 +57,7 @@ function f4(arg: T) { function f5(arg: T) { >f5 : (arg: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ >key : string > : ^^^^^^ >arg : T @@ -72,7 +72,7 @@ function f5(arg: T) { function f6(arg: T) { >f6 : (arg: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/spreadsAndContextualTupleTypes.types b/tests/baselines/reference/spreadsAndContextualTupleTypes.types index a7e2d9aec9a77..00d20e6704ba1 100644 --- a/tests/baselines/reference/spreadsAndContextualTupleTypes.types +++ b/tests/baselines/reference/spreadsAndContextualTupleTypes.types @@ -3,13 +3,13 @@ === spreadsAndContextualTupleTypes.ts === declare function fx1(x: T): T; >fx1 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ declare function fx2(x: T): T; >fx2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -31,7 +31,7 @@ fx1(['x', 'y', 'z', 'a']); >fx1(['x', 'y', 'z', 'a']) : [string, string, string, "a"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fx1 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >['x', 'y', 'z', 'a'] : [string, string, string, "a"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'x' : "x" @@ -47,7 +47,7 @@ fx1([...t3, 'a']); >fx1([...t3, 'a']) : ["x", "y", "z", "a"] > : ^^^^^^^^^^^^^^^^^^^^ >fx1 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[...t3, 'a'] : ["x", "y", "z", "a"] > : ^^^^^^^^^^^^^^^^^^^^ >...t3 : "x" | "y" | "z" @@ -61,7 +61,7 @@ fx2(['x', 'y', 'z', 'a']); >fx2(['x', 'y', 'z', 'a']) : [string, string, string, "a"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fx2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >['x', 'y', 'z', 'a'] : [string, string, string, "a"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'x' : "x" @@ -77,7 +77,7 @@ fx2([...t3, 'a']); >fx2([...t3, 'a']) : ["x", "y", "z", "a"] > : ^^^^^^^^^^^^^^^^^^^^ >fx2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >[...t3, 'a'] : ["x", "y", "z", "a"] > : ^^^^^^^^^^^^^^^^^^^^ >...t3 : "x" | "y" | "z" @@ -165,7 +165,7 @@ const randomID = 'id' as string; declare function foo(path: T): T; >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >path : T > : ^ @@ -175,7 +175,7 @@ const a1 = foo([...staticPath1Level, randomID, 'doc.pdf']); >foo([...staticPath1Level, randomID, 'doc.pdf']) : readonly ["home", string, "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath1Level, randomID, 'doc.pdf'] : ["home", string, "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath1Level : "home" @@ -193,7 +193,7 @@ const a2 = foo([...staticPath2Level, randomID, 'doc.pdf']); >foo([...staticPath2Level, randomID, 'doc.pdf']) : readonly ["home", "user", string, "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath2Level, randomID, 'doc.pdf'] : ["home", "user", string, "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath2Level : "home" | "user" @@ -211,7 +211,7 @@ const a3 = foo([...staticPath3Level, randomID, 'doc.pdf']); >foo([...staticPath3Level, randomID, 'doc.pdf']) : readonly ["home", "user", "downloads", string, "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath3Level, randomID, 'doc.pdf'] : ["home", "user", "downloads", string, "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath3Level : "home" | "user" | "downloads" @@ -229,7 +229,7 @@ const b1 = foo([...staticPath1Level, randomID, 'folder', 'doc.pdf']); >foo([...staticPath1Level, randomID, 'folder', 'doc.pdf']) : readonly ["home", string, "folder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath1Level, randomID, 'folder', 'doc.pdf'] : ["home", string, "folder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath1Level : "home" @@ -249,7 +249,7 @@ const b2 = foo([...staticPath2Level, randomID, 'folder', 'doc.pdf']); >foo([...staticPath2Level, randomID, 'folder', 'doc.pdf']) : readonly ["home", "user", string, "folder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath2Level, randomID, 'folder', 'doc.pdf'] : ["home", "user", string, "folder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath2Level : "home" | "user" @@ -269,7 +269,7 @@ const b3 = foo([...staticPath3Level, randomID, 'folder', 'doc.pdf']); >foo([...staticPath3Level, randomID, 'folder', 'doc.pdf']) : readonly ["home", "user", "downloads", string, "folder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath3Level, randomID, 'folder', 'doc.pdf'] : ["home", "user", "downloads", string, "folder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath3Level : "home" | "user" | "downloads" @@ -289,7 +289,7 @@ const c1 = foo([...staticPath1Level, randomID, 'folder', 'subfolder', 'doc.pdf'] >foo([...staticPath1Level, randomID, 'folder', 'subfolder', 'doc.pdf']) : readonly ["home", string, "folder", "subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath1Level, randomID, 'folder', 'subfolder', 'doc.pdf'] : ["home", string, "folder", "subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath1Level : "home" @@ -311,7 +311,7 @@ const c2 = foo([...staticPath2Level, randomID, 'folder', 'subfolder', 'doc.pdf'] >foo([...staticPath2Level, randomID, 'folder', 'subfolder', 'doc.pdf']) : readonly ["home", "user", string, "folder", "subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath2Level, randomID, 'folder', 'subfolder', 'doc.pdf'] : ["home", "user", string, "folder", "subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath2Level : "home" | "user" @@ -333,7 +333,7 @@ const c3 = foo([...staticPath3Level, randomID, 'folder', 'subfolder', 'doc.pdf'] >foo([...staticPath3Level, randomID, 'folder', 'subfolder', 'doc.pdf']) : readonly ["home", "user", "downloads", string, "folder", "subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath3Level, randomID, 'folder', 'subfolder', 'doc.pdf'] : ["home", "user", "downloads", string, "folder", "subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath3Level : "home" | "user" | "downloads" @@ -355,7 +355,7 @@ const d1 = foo([...staticPath1Level, randomID, 'folder', 'subfolder', 'another-s >foo([...staticPath1Level, randomID, 'folder', 'subfolder', 'another-subfolder', 'doc.pdf']) : readonly ["home", string, "folder", "subfolder", "another-subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath1Level, randomID, 'folder', 'subfolder', 'another-subfolder', 'doc.pdf'] : ["home", string, "folder", "subfolder", "another-subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath1Level : "home" @@ -379,7 +379,7 @@ const d2 = foo([...staticPath2Level, randomID, 'folder', 'subfolder', 'another-s >foo([...staticPath2Level, randomID, 'folder', 'subfolder', 'another-subfolder', 'doc.pdf']) : readonly ["home", "user", string, "folder", "subfolder", "another-subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath2Level, randomID, 'folder', 'subfolder', 'another-subfolder', 'doc.pdf'] : ["home", "user", string, "folder", "subfolder", "another-subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath2Level : "home" | "user" @@ -403,7 +403,7 @@ const d3 = foo([...staticPath3Level, randomID, 'folder', 'subfolder', 'another-s >foo([...staticPath3Level, randomID, 'folder', 'subfolder', 'another-subfolder', 'doc.pdf']) : readonly ["home", "user", "downloads", string, "folder", "subfolder", "another-subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (path: T) => T -> : ^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >[...staticPath3Level, randomID, 'folder', 'subfolder', 'another-subfolder', 'doc.pdf'] : ["home", "user", "downloads", string, "folder", "subfolder", "another-subfolder", "doc.pdf"] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >...staticPath3Level : "home" | "user" | "downloads" diff --git a/tests/baselines/reference/spuriousCircularityOnTypeImport.types b/tests/baselines/reference/spuriousCircularityOnTypeImport.types index 8816b1f1904ab..64bcc4ebbcb9e 100644 --- a/tests/baselines/reference/spuriousCircularityOnTypeImport.types +++ b/tests/baselines/reference/spuriousCircularityOnTypeImport.types @@ -26,7 +26,7 @@ export declare const value2: { sliceSelectors: >(selectorsBySlice: FuncMap) => { [P in keyof FuncMap]: Parameters }; >sliceSelectors : >(selectorsBySlice: FuncMap) => { [P in keyof FuncMap]: Parameters; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >selectorsBySlice : FuncMap > : ^^^^^^^ @@ -38,7 +38,7 @@ export declare const value3: { sliceSelectors: >(selectorsBySlice: FuncMap) => { [P in keyof FuncMap]: Parameters }; >sliceSelectors : >(selectorsBySlice: FuncMap) => { [P in keyof FuncMap]: Parameters; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >selectorsBySlice : FuncMap > : ^^^^^^^ diff --git a/tests/baselines/reference/spyComparisonChecking.types b/tests/baselines/reference/spyComparisonChecking.types index 8d8860d18545b..4955b6317e426 100644 --- a/tests/baselines/reference/spyComparisonChecking.types +++ b/tests/baselines/reference/spyComparisonChecking.types @@ -34,7 +34,7 @@ type SpyObj = T & { declare function createSpyObj( >createSpyObj : (name: string, names: Array) => SpyObj -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ name: string, names: Array): SpyObj; >name : string @@ -44,7 +44,7 @@ declare function createSpyObj( function mock(spyName: string, methodNames: Array): SpyObj { >mock : (spyName: string, methodNames: Array) => SpyObj -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >spyName : string > : ^^^^^^ >methodNames : (keyof T)[] @@ -56,7 +56,7 @@ function mock(spyName: string, methodNames: Array): SpyObj { >createSpyObj(spyName, methodNames) : SpyObj > : ^^^^^^^^^ >createSpyObj : (name: string, names: Array) => SpyObj -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >spyName : string > : ^^^^^^ >methodNames : (keyof T)[] diff --git a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types index 4eab51e9e65d4..97912b4c34536 100644 --- a/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types +++ b/tests/baselines/reference/staticAnonymousTypeNotReferencingTypeParameter.types @@ -6,7 +6,7 @@ function outer(x: T) { >outer : (x: T) => typeof Inner -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -32,7 +32,7 @@ let y: number = outer(5).y; >outer(5) : typeof Inner > : ^^^^^^^^^^^^ >outer : (x: T) => typeof Inner -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ >5 : 5 > : ^ >y : number @@ -44,7 +44,7 @@ class ListWrapper2 { static clone(dit: typeof ListWrapper2, array: T[]): T[] { return array.slice(0); } >clone : (dit: typeof ListWrapper2, array: T[]) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper2 > : ^^^^^^^^^^^^^^^^^^^ >ListWrapper2 : typeof ListWrapper2 @@ -64,7 +64,7 @@ class ListWrapper2 { static reversed(dit: typeof ListWrapper2, array: T[]): T[] { >reversed : (dit: typeof ListWrapper2, array: T[]) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper2 > : ^^^^^^^^^^^^^^^^^^^ >ListWrapper2 : typeof ListWrapper2 @@ -78,11 +78,11 @@ class ListWrapper2 { >ListWrapper2.clone(dit, array) : T[] > : ^^^ >ListWrapper2.clone : (dit: typeof ListWrapper2, array: T_1[]) => T_1[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >ListWrapper2 : typeof ListWrapper2 > : ^^^^^^^^^^^^^^^^^^^ >clone : (dit: typeof ListWrapper2, array: T_1[]) => T_1[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper2 > : ^^^^^^^^^^^^^^^^^^^ >array : T[] @@ -104,7 +104,7 @@ namespace tessst { */ export function funkyFor(array: T[], callback: (element: T, index: number) => U): U { >funkyFor : (array: T[], callback: (element: T, index: number) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >array : T[] > : ^^^ >callback : (element: T, index: number) => U @@ -176,7 +176,7 @@ namespace tessst { interface Scanner { scanRange(start: number, length: number, callback: () => T): T; >scanRange : (start: number, length: number, callback: () => T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >start : number > : ^^^^^^ >length : number @@ -224,7 +224,7 @@ class ListWrapper { static clone(dit: typeof ListWrapper, array: T[]): T[] { return array.slice(0); } >clone : (dit: typeof ListWrapper, array: T[]) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -244,7 +244,7 @@ class ListWrapper { static forEachWithIndex(dit: typeof ListWrapper, array: T[], fn: (t: T, n: number) => void) { >forEachWithIndex : (dit: typeof ListWrapper, array: T[], fn: (t: T, n: number) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -295,7 +295,7 @@ class ListWrapper { } static first(dit: typeof ListWrapper, array: T[]): T { >first : (dit: typeof ListWrapper, array: T[]) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -319,7 +319,7 @@ class ListWrapper { } static last(dit: typeof ListWrapper, array: T[]): T { >last : (dit: typeof ListWrapper, array: T[]) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -363,7 +363,7 @@ class ListWrapper { } static indexOf(dit: typeof ListWrapper, array: T[], value: T, startIndex: number = 0): number { >indexOf : (dit: typeof ListWrapper, array: T[], value: T, startIndex?: number) => number -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -393,7 +393,7 @@ class ListWrapper { } static contains(dit: typeof ListWrapper, list: T[], el: T): boolean { return list.indexOf(el) !== -1; } >contains : (dit: typeof ListWrapper, list: T[], el: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -421,7 +421,7 @@ class ListWrapper { static reversed(dit: typeof ListWrapper, array: T[]): T[] { >reversed : (dit: typeof ListWrapper, array: T[]) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -435,11 +435,11 @@ class ListWrapper { >ListWrapper.clone(dit, array) : T[] > : ^^^ >ListWrapper.clone : (dit: typeof ListWrapper, array: T_1[]) => T_1[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >ListWrapper : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >clone : (dit: typeof ListWrapper, array: T_1[]) => T_1[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >array : T[] @@ -453,11 +453,11 @@ class ListWrapper { >scanner.scanRange(3, 5, () => { }) : void > : ^^^^ >scanner.scanRange : (start: number, length: number, callback: () => T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >scanner : Scanner > : ^^^^^^^ >scanRange : (start: number, length: number, callback: () => T_1) => T_1 -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >3 : 3 > : ^ >5 : 5 @@ -471,11 +471,11 @@ class ListWrapper { >tessst.funkyFor(array, t => t.toString()) : string > : ^^^^^^ >tessst.funkyFor : (array: T_1[], callback: (element: T_1, index: number) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >tessst : typeof tessst > : ^^^^^^^^^^^^^ >funkyFor : (array: T_1[], callback: (element: T_1, index: number) => U) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >array : T[] > : ^^^ >t => t.toString() : (t: T) => string @@ -515,17 +515,17 @@ class ListWrapper { >a.concat(b) : any[] > : ^^^^^ >a.concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >a : any[] > : ^^^^^ >concat : { (...items: ConcatArray[]): any[]; (...items: any[]): any[]; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^ ^^^ +> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ ^^^^^^^^^^ ^^^ >b : any[] > : ^^^^^ static insert(dit: typeof ListWrapper, list: T[], index: number, value: T) { list.splice(index, 0, value); } >insert : (dit: typeof ListWrapper, list: T[], index: number, value: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -553,7 +553,7 @@ class ListWrapper { static removeAt(dit: typeof ListWrapper, list: T[], index: number): T { >removeAt : (dit: typeof ListWrapper, list: T[], index: number) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -593,7 +593,7 @@ class ListWrapper { } static removeAll(dit: typeof ListWrapper, list: T[], items: T[]) { >removeAll : (dit: typeof ListWrapper, list: T[], items: T[]) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -658,7 +658,7 @@ class ListWrapper { } static remove(dit: typeof ListWrapper, list: T[], el: T): boolean { >remove : (dit: typeof ListWrapper, list: T[], el: T) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -870,7 +870,7 @@ class ListWrapper { } static slice(dit: typeof ListWrapper, l: T[], from: number = 0, to: number = null): T[] { >slice : (dit: typeof ListWrapper, l: T[], from?: number, to?: number) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^ ^^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -908,7 +908,7 @@ class ListWrapper { } static splice(dit: typeof ListWrapper, l: T[], from: number, length: number): T[] { return l.splice(from, length); } >splice : (dit: typeof ListWrapper, l: T[], from: number, length: number) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -934,7 +934,7 @@ class ListWrapper { static sort(dit: typeof ListWrapper, l: T[], compareFn?: (a: T, b: T) => number) { >sort : (dit: typeof ListWrapper, l: T[], compareFn?: (a: T, b: T) => number) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -952,7 +952,7 @@ class ListWrapper { >isPresent(compareFn) : boolean > : ^^^^^^^ >isPresent : (compareFn?: (a: T_1, b: T_1) => number) => boolean -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^^^ ^^^ ^^^^^ >compareFn : (a: T, b: T) => number > : ^ ^^ ^^ ^^ ^^^^^ @@ -960,11 +960,11 @@ class ListWrapper { >l.sort(compareFn) : T[] > : ^^^ >l.sort : (compareFn?: (a: T, b: T) => number) => T[] -> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ >l : T[] > : ^^^ >sort : (compareFn?: (a: T, b: T) => number) => T[] -> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ >compareFn : (a: T, b: T) => number > : ^ ^^ ^^ ^^ ^^^^^ @@ -973,16 +973,16 @@ class ListWrapper { >l.sort() : T[] > : ^^^ >l.sort : (compareFn?: (a: T, b: T) => number) => T[] -> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ >l : T[] > : ^^^ >sort : (compareFn?: (a: T, b: T) => number) => T[] -> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^ ^^^^ ^^^^^ ^^^^^^^^ ^^^^^^ } } static toString(dit: typeof ListWrapper, l: T[]): string { return l.toString(); } >toString : (dit: typeof ListWrapper, l: T[]) => string -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -1000,7 +1000,7 @@ class ListWrapper { static toJSON(dit: typeof ListWrapper, l: T[]): string { return JSON.stringify(l); } >toJSON : (dit: typeof ListWrapper, l: T[]) => string -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -1020,7 +1020,7 @@ class ListWrapper { static maximum(dit: typeof ListWrapper, list: T[], predicate: (t: T) => number): T { >maximum : (dit: typeof ListWrapper, list: T[], predicate: (t: T) => number) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >dit : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >ListWrapper : typeof ListWrapper @@ -1144,11 +1144,11 @@ let cloned = ListWrapper.clone(ListWrapper, [1,2,3,4]); >ListWrapper.clone(ListWrapper, [1,2,3,4]) : number[] > : ^^^^^^^^ >ListWrapper.clone : (dit: typeof ListWrapper, array: T[]) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >ListWrapper : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >clone : (dit: typeof ListWrapper, array: T[]) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >ListWrapper : typeof ListWrapper > : ^^^^^^^^^^^^^^^^^^ >[1,2,3,4] : number[] @@ -1169,7 +1169,7 @@ declare function isBlank(x: any): boolean; declare function isPresent(compareFn?: (a: T, b: T) => number): boolean; >isPresent : (compareFn?: (a: T, b: T) => number) => boolean -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >compareFn : (a: T, b: T) => number > : ^ ^^ ^^ ^^ ^^^^^ >a : T diff --git a/tests/baselines/reference/strictBindCallApply1.types b/tests/baselines/reference/strictBindCallApply1.types index 2ffde731ad948..bc2a71ddb8694 100644 --- a/tests/baselines/reference/strictBindCallApply1.types +++ b/tests/baselines/reference/strictBindCallApply1.types @@ -23,7 +23,7 @@ declare function overloaded(n: number): string; declare function generic(x: T): T; >generic : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -33,25 +33,25 @@ let f00 = foo.bind(undefined); >foo.bind(undefined) : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ let f01 = foo.bind(undefined, 10); >f01 : (b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ >foo.bind(undefined, 10) : (b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ >foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -59,15 +59,15 @@ let f01 = foo.bind(undefined, 10); let f02 = foo.bind(undefined, 10, "hello"); >f02 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >foo.bind(undefined, 10, "hello") : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -77,15 +77,15 @@ let f02 = foo.bind(undefined, 10, "hello"); let f03 = foo.bind(undefined, 10, 20); // Error >f03 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >foo.bind(undefined, 10, 20) : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -99,25 +99,25 @@ let f04 = overloaded.bind(undefined); // typeof overloaded >overloaded.bind(undefined) : { (s: string): number; (n: number): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >overloaded.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >overloaded : { (s: string): number; (n: number): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ let f05 = generic.bind(undefined); // typeof generic >f05 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >generic.bind(undefined) : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >generic.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >generic : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -127,11 +127,11 @@ let c00 = foo.call(undefined, 10, "hello"); >foo.call(undefined, 10, "hello") : string > : ^^^^^^ >foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -145,11 +145,11 @@ let c01 = foo.call(undefined, 10); // Error >foo.call(undefined, 10) : string > : ^^^^^^ >foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -161,11 +161,11 @@ let c02 = foo.call(undefined, 10, 20); // Error >foo.call(undefined, 10, 20) : string > : ^^^^^^ >foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -179,11 +179,11 @@ let c03 = foo.call(undefined, 10, "hello", 30); // Error >foo.call(undefined, 10, "hello", 30) : string > : ^^^^^^ >foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -199,11 +199,11 @@ let a00 = foo.apply(undefined, [10, "hello"]); >foo.apply(undefined, [10, "hello"]) : string > : ^^^^^^ >foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >[10, "hello"] : [number, string] @@ -219,11 +219,11 @@ let a01 = foo.apply(undefined, [10]); // Error >foo.apply(undefined, [10]) : string > : ^^^^^^ >foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >[10] : [number] @@ -237,11 +237,11 @@ let a02 = foo.apply(undefined, [10, 20]); // Error >foo.apply(undefined, [10, 20]) : string > : ^^^^^^ >foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >[10, 20] : [number, number] @@ -257,11 +257,11 @@ let a03 = foo.apply(undefined, [10, "hello", 30]); // Error >foo.apply(undefined, [10, "hello", 30]) : string > : ^^^^^^ >foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >foo : (a: number, b: string) => string > : ^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >[10, "hello", 30] : [number, string, number] @@ -319,7 +319,7 @@ class C { generic(x: T): T { return x } >generic : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -336,11 +336,11 @@ declare let obj: {}; let f10 = c.foo.bind(c); >f10 : (a: number, b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >c.foo.bind(c) : (a: number, b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >c.foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -348,17 +348,17 @@ let f10 = c.foo.bind(c); >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c : C > : ^ let f11 = c.foo.bind(c, 10); >f11 : (b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ >c.foo.bind(c, 10) : (b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ >c.foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -366,7 +366,7 @@ let f11 = c.foo.bind(c, 10); >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c : C > : ^ >10 : 10 @@ -374,11 +374,11 @@ let f11 = c.foo.bind(c, 10); let f12 = c.foo.bind(c, 10, "hello"); >f12 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >c.foo.bind(c, 10, "hello") : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >c.foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -386,7 +386,7 @@ let f12 = c.foo.bind(c, 10, "hello"); >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c : C > : ^ >10 : 10 @@ -396,11 +396,11 @@ let f12 = c.foo.bind(c, 10, "hello"); let f13 = c.foo.bind(c, 10, 20); // Error >f13 : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >c.foo.bind(c, 10, 20) : () => string -> : ^^^^^^^^^^^^ +> : ^^^^^^ >c.foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -408,7 +408,7 @@ let f13 = c.foo.bind(c, 10, 20); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c : C > : ^ >10 : 10 @@ -418,11 +418,11 @@ let f13 = c.foo.bind(c, 10, 20); // Error let f14 = c.foo.bind(undefined); // Error >f14 : (a: number, b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >c.foo.bind(undefined) : (a: number, b: string) => string -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >c.foo.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -430,7 +430,7 @@ let f14 = c.foo.bind(undefined); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -440,7 +440,7 @@ let f15 = c.overloaded.bind(c); // typeof C.prototype.overloaded >c.overloaded.bind(c) : { (s: string): number; (n: number): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >c.overloaded.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.overloaded : { (s: string): number; (n: number): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >c : C @@ -448,25 +448,25 @@ let f15 = c.overloaded.bind(c); // typeof C.prototype.overloaded >overloaded : { (s: string): number; (n: number): string; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c : C > : ^ let f16 = c.generic.bind(c); // typeof C.prototype.generic >f16 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c.generic.bind(c) : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c.generic.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c.generic : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >c : C > : ^ >generic : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >c : C > : ^ @@ -476,7 +476,7 @@ let c10 = c.foo.call(c, 10, "hello"); >c.foo.call(c, 10, "hello") : string > : ^^^^^^ >c.foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -484,7 +484,7 @@ let c10 = c.foo.call(c, 10, "hello"); >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -498,7 +498,7 @@ let c11 = c.foo.call(c, 10); // Error >c.foo.call(c, 10) : string > : ^^^^^^ >c.foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -506,7 +506,7 @@ let c11 = c.foo.call(c, 10); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -518,7 +518,7 @@ let c12 = c.foo.call(c, 10, 20); // Error >c.foo.call(c, 10, 20) : string > : ^^^^^^ >c.foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -526,7 +526,7 @@ let c12 = c.foo.call(c, 10, 20); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -540,7 +540,7 @@ let c13 = c.foo.call(c, 10, "hello", 30); // Error >c.foo.call(c, 10, "hello", 30) : string > : ^^^^^^ >c.foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -548,7 +548,7 @@ let c13 = c.foo.call(c, 10, "hello", 30); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -564,7 +564,7 @@ let c14 = c.foo.call(undefined, 10, "hello"); // Error >c.foo.call(undefined, 10, "hello") : string > : ^^^^^^ >c.foo.call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -572,7 +572,7 @@ let c14 = c.foo.call(undefined, 10, "hello"); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >call : (this: (this: T, ...args: A) => R, thisArg: T, ...args: A) => R -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -586,7 +586,7 @@ let a10 = c.foo.apply(c, [10, "hello"]); >c.foo.apply(c, [10, "hello"]) : string > : ^^^^^^ >c.foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -594,7 +594,7 @@ let a10 = c.foo.apply(c, [10, "hello"]); >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10, "hello"] : [number, string] @@ -610,7 +610,7 @@ let a11 = c.foo.apply(c, [10]); // Error >c.foo.apply(c, [10]) : string > : ^^^^^^ >c.foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -618,7 +618,7 @@ let a11 = c.foo.apply(c, [10]); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10] : [number] @@ -632,7 +632,7 @@ let a12 = c.foo.apply(c, [10, 20]); // Error >c.foo.apply(c, [10, 20]) : string > : ^^^^^^ >c.foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -640,7 +640,7 @@ let a12 = c.foo.apply(c, [10, 20]); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10, 20] : [number, number] @@ -656,7 +656,7 @@ let a13 = c.foo.apply(c, [10, "hello", 30]); // Error >c.foo.apply(c, [10, "hello", 30]) : string > : ^^^^^^ >c.foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -664,7 +664,7 @@ let a13 = c.foo.apply(c, [10, "hello", 30]); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10, "hello", 30] : [number, string, number] @@ -682,7 +682,7 @@ let a14 = c.foo.apply(undefined, [10, "hello"]); // Error >c.foo.apply(undefined, [10, "hello"]) : string > : ^^^^^^ >c.foo.apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c.foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >c : C @@ -690,7 +690,7 @@ let a14 = c.foo.apply(undefined, [10, "hello"]); // Error >foo : (this: C, a: number, b: string) => string > : ^ ^^^^^ ^^ ^^ ^^ ^^^^^ >apply : { (this: (this: T) => R, thisArg: T): R; (this: (this: T, ...args: A) => R, thisArg: T, args: A): R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >[10, "hello"] : [number, string] @@ -706,11 +706,11 @@ let f20 = C.bind(undefined); >C.bind(undefined) : typeof C > : ^^^^^^^^ >C.bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -720,11 +720,11 @@ let f21 = C.bind(undefined, 10); >C.bind(undefined, 10) : new (b: string) => C > : ^^^^^^^^^^^^^^^^^^^^ >C.bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -736,11 +736,11 @@ let f22 = C.bind(undefined, 10, "hello"); >C.bind(undefined, 10, "hello") : new () => C > : ^^^^^^^^^^^ >C.bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -754,11 +754,11 @@ let f23 = C.bind(undefined, 10, 20); // Error >C.bind(undefined, 10, 20) : new () => C > : ^^^^^^^^^^^ >C.bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >bind : { (this: T, thisArg: any): T; (this: new (...args: [...A, ...B]) => R, thisArg: any, ...args: A): new (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ >10 : 10 @@ -770,11 +770,11 @@ C.call(c, 10, "hello"); >C.call(c, 10, "hello") : void > : ^^^^ >C.call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -786,11 +786,11 @@ C.call(c, 10); // Error >C.call(c, 10) : void > : ^^^^ >C.call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -800,11 +800,11 @@ C.call(c, 10, 20); // Error >C.call(c, 10, 20) : void > : ^^^^ >C.call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -816,11 +816,11 @@ C.call(c, 10, "hello", 30); // Error >C.call(c, 10, "hello", 30) : void > : ^^^^ >C.call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >C : typeof C > : ^^^^^^^^ >call : (this: new (...args: A) => T, thisArg: T, ...args: A) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^^^ >c : C > : ^ >10 : 10 @@ -834,11 +834,11 @@ C.apply(c, [10, "hello"]); >C.apply(c, [10, "hello"]) : void > : ^^^^ >C.apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10, "hello"] : [number, string] @@ -852,11 +852,11 @@ C.apply(c, [10]); // Error >C.apply(c, [10]) : void > : ^^^^ >C.apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10] : [number] @@ -868,11 +868,11 @@ C.apply(c, [10, 20]); // Error >C.apply(c, [10, 20]) : void > : ^^^^ >C.apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10, 20] : [number, number] @@ -886,11 +886,11 @@ C.apply(c, [10, "hello", 30]); // Error >C.apply(c, [10, "hello", 30]) : void > : ^^^^ >C.apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >C : typeof C > : ^^^^^^^^ >apply : { (this: new () => T, thisArg: T): void; (this: new (...args: A) => T, thisArg: T, args: A): void; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >c : C > : ^ >[10, "hello", 30] : [number, string, number] @@ -904,7 +904,7 @@ C.apply(c, [10, "hello", 30]); // Error function bar(callback: (this: 1, ...args: T) => void) { >bar : (callback: (this: 1, ...args: T) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >callback : (this: 1, ...args: T) => void > : ^ ^^ ^^^^^ ^^ ^^^^^ >this : 1 @@ -914,32 +914,32 @@ function bar(callback: (this: 1, ...args: T) => void) { callback.bind(1); >callback.bind(1) : (...args: T) => void -> : ^^^^ ^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ >callback.bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >callback : (this: 1, ...args: T) => void > : ^ ^^ ^^^^^ ^^ ^^^^^ >bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ callback.bind(2); // Error >callback.bind(2) : (...args: T) => void -> : ^^^^ ^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^ >callback.bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >callback : (this: 1, ...args: T) => void > : ^ ^^ ^^^^^ ^^ ^^^^^ >bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ } function baz(callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) { >baz : (callback: (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >callback : (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void > : ^ ^^ ^^^^^ ^^ ^^^^^ >this : 1 @@ -949,25 +949,25 @@ function baz(callback: (this: 1, ...args: T extends 1 ? [unknow callback.bind(1); >callback.bind(1) : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >callback.bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >callback : (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void > : ^ ^^ ^^^^^ ^^ ^^^^^ >bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >1 : 1 > : ^ callback.bind(2); // Error >callback.bind(2) : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void -> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >callback.bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >callback : (this: 1, ...args: T extends 1 ? [unknown] : [unknown, unknown]) => void > : ^ ^^ ^^^^^ ^^ ^^^^^ >bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >2 : 2 > : ^ } @@ -982,7 +982,7 @@ class Foo { >this.fn.bind(this) : (...args: T) => void > : ^^^^ ^^ ^^^^^ >this.fn.bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >this.fn : (...args: T) => void > : ^^^^ ^^ ^^^^^ >this : this @@ -990,7 +990,7 @@ class Foo { >fn : (...args: T) => void > : ^^^^ ^^ ^^^^^ >bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >this : this > : ^^^^ } @@ -1011,7 +1011,7 @@ class Bar { >this.fn.bind(this) : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void > : ^^^^ ^^ ^^^^^^^^^ >this.fn.bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >this.fn : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void > : ^^^^ ^^ ^^^^^^^^^ >this : this @@ -1019,7 +1019,7 @@ class Bar { >fn : (...args: T extends 1 ? [unknown] : [unknown, unknown]) => void > : ^^^^ ^^ ^^^^^^^^^ >bind : { (this: T_1, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T_1, ...args: [...A, ...B]) => R, thisArg: T_1, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >this : this > : ^^^^ } diff --git a/tests/baselines/reference/strictBindCallApply2.types b/tests/baselines/reference/strictBindCallApply2.types index ca6d694a05be2..6846e16f056e1 100644 --- a/tests/baselines/reference/strictBindCallApply2.types +++ b/tests/baselines/reference/strictBindCallApply2.types @@ -21,15 +21,15 @@ type Test = ThisParameterType; const fb = fn.bind({ blub: "blub" }); >fb : () => void -> : ^^^^^^^^^^ +> : ^^^^^^ >fn.bind({ blub: "blub" }) : () => void -> : ^^^^^^^^^^ +> : ^^^^^^ >fn.bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >fn : (this: Foo) => void > : ^ ^^ ^^^^^^^^^ >bind : { (this: T, thisArg: ThisParameterType): OmitThisParameter; (this: (this: T, ...args: [...A, ...B]) => R, thisArg: T, ...args: A): (...args: B) => R; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ ^^ ^^^ ^^^ >{ blub: "blub" } : { blub: string; } > : ^^^^^^^^^^^^^^^^^ >blub : string diff --git a/tests/baselines/reference/strictFunctionTypes1.types b/tests/baselines/reference/strictFunctionTypes1.types index e14e8da1b8fd0..72b3d1ef000ba 100644 --- a/tests/baselines/reference/strictFunctionTypes1.types +++ b/tests/baselines/reference/strictFunctionTypes1.types @@ -3,7 +3,7 @@ === strictFunctionTypes1.ts === declare function f1(f1: (x: T) => void, f2: (x: T) => void): (x: T) => void; >f1 : (f1: (x: T) => void, f2: (x: T) => void) => (x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f1 : (x: T) => void > : ^ ^^ ^^^^^ >x : T @@ -17,7 +17,7 @@ declare function f1(f1: (x: T) => void, f2: (x: T) => void): (x: T) => void; declare function f2(obj: T, f1: (x: T) => void, f2: (x: T) => void): T; >f2 : (obj: T, f1: (x: T) => void, f2: (x: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >f1 : (x: T) => void @@ -31,7 +31,7 @@ declare function f2(obj: T, f1: (x: T) => void, f2: (x: T) => void): T; declare function f3(obj: T, f1: (x: T) => void, f2: (f: (x: T) => void) => void): T; >f3 : (obj: T, f1: (x: T) => void, f2: (f: (x: T) => void) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >f1 : (x: T) => void @@ -51,7 +51,7 @@ interface Func { (x: T): void } declare function f4(f1: Func, f2: Func): Func; >f4 : (f1: Func, f2: Func) => Func -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >f1 : Func > : ^^^^^^^ >f2 : Func @@ -83,7 +83,7 @@ const x1 = f1(fo, fs); // (x: string) => void >f1(fo, fs) : (x: string) => void > : ^ ^^^^^^^^^^^^^ >f1 : (f1: (x: T) => void, f2: (x: T) => void) => (x: T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >fo : (x: Object) => void > : ^ ^^ ^^^^^ >fs : (x: string) => void @@ -95,7 +95,7 @@ const x2 = f2("abc", fo, fs); // "abc" >f2("abc", fo, fs) : "abc" > : ^^^^^ >f2 : (obj: T, f1: (x: T) => void, f2: (x: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"abc" : "abc" > : ^^^^^ >fo : (x: Object) => void @@ -109,7 +109,7 @@ const x3 = f3("abc", fo, fx); // "abc" | "def" >f3("abc", fo, fx) : "def" | "abc" > : ^^^^^^^^^^^^^ >f3 : (obj: T, f1: (x: T) => void, f2: (f: (x: T) => void) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >"abc" : "abc" > : ^^^^^ >fo : (x: Object) => void @@ -123,7 +123,7 @@ const x4 = f4(fo, fs); // Func >f4(fo, fs) : Func > : ^^^^^^^^^^^^ >f4 : (f1: Func, f2: Func) => Func -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >fo : (x: Object) => void > : ^ ^^ ^^^^^ >fs : (x: string) => void @@ -139,7 +139,7 @@ const x10 = f2(never, fo, fs); // string >f2(never, fo, fs) : string > : ^^^^^^ >f2 : (obj: T, f1: (x: T) => void, f2: (x: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >never : never > : ^^^^^ >fo : (x: Object) => void @@ -153,7 +153,7 @@ const x11 = f3(never, fo, fx); // "def" >f3(never, fo, fx) : "def" > : ^^^^^ >f3 : (obj: T, f1: (x: T) => void, f2: (f: (x: T) => void) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >never : never > : ^^^^^ >fo : (x: Object) => void @@ -165,7 +165,7 @@ const x11 = f3(never, fo, fx); // "def" declare function foo(a: ReadonlyArray): T; >foo : (a: ReadonlyArray) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : readonly T[] > : ^^^^^^^^^^^^ @@ -175,7 +175,7 @@ let x = foo([]); // never >foo([]) : never > : ^^^^^ >foo : (a: ReadonlyArray) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[] : never[] > : ^^^^^^^ @@ -211,7 +211,7 @@ declare let b: B; declare function coAndContra(value: T, func: (t: T) => void): T; >coAndContra : (value: T, func: (t: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >value : T > : ^ >func : (t: T) => void @@ -225,7 +225,7 @@ const t1: A = coAndContra(a, acceptUnion); >coAndContra(a, acceptUnion) : A > : ^ >coAndContra : (value: T, func: (t: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >a : A > : ^ >acceptUnion : (x: A | number) => void @@ -237,7 +237,7 @@ const t2: B = coAndContra(b, acceptA); >coAndContra(b, acceptA) : B > : ^ >coAndContra : (value: T, func: (t: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >b : B > : ^ >acceptA : (x: A) => void @@ -249,7 +249,7 @@ const t3: A = coAndContra(never, acceptA); >coAndContra(never, acceptA) : A > : ^ >coAndContra : (value: T, func: (t: T) => void) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >never : never > : ^^^^^ >acceptA : (x: A) => void @@ -257,7 +257,7 @@ const t3: A = coAndContra(never, acceptA); declare function coAndContraArray(value: T[], func: (t: T) => void): T[]; >coAndContraArray : (value: T[], func: (t: T) => void) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >value : T[] > : ^^^ >func : (t: T) => void @@ -271,7 +271,7 @@ const t4: A[] = coAndContraArray([a], acceptUnion); >coAndContraArray([a], acceptUnion) : A[] > : ^^^ >coAndContraArray : (value: T[], func: (t: T) => void) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >[a] : A[] > : ^^^ >a : A @@ -285,7 +285,7 @@ const t5: B[] = coAndContraArray([b], acceptA); >coAndContraArray([b], acceptA) : B[] > : ^^^ >coAndContraArray : (value: T[], func: (t: T) => void) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >[b] : B[] > : ^^^ >b : B @@ -299,7 +299,7 @@ const t6: A[] = coAndContraArray([], acceptA); >coAndContraArray([], acceptA) : A[] > : ^^^ >coAndContraArray : (value: T[], func: (t: T) => void) => T[] -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >[] : never[] > : ^^^^^^^ >acceptA : (x: A) => void diff --git a/tests/baselines/reference/strictFunctionTypesErrors.types b/tests/baselines/reference/strictFunctionTypesErrors.types index d552690380398..6685bd0731197 100644 --- a/tests/baselines/reference/strictFunctionTypesErrors.types +++ b/tests/baselines/reference/strictFunctionTypesErrors.types @@ -649,7 +649,7 @@ namespace n1 { } declare let f1: (cb: typeof Foo.f1) => void; >f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >cb : (x: Animal) => Animal > : ^ ^^ ^^^^^ >Foo.f1 : (x: Animal) => Animal @@ -661,7 +661,7 @@ namespace n1 { declare let f2: (cb: typeof Foo.f2) => void; >f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >cb : (x: Dog) => Animal > : ^ ^^ ^^^^^ >Foo.f2 : (x: Dog) => Animal @@ -673,19 +673,19 @@ namespace n1 { f1 = f2; >f1 = f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ f2 = f1; // Error >f2 = f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ >f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^ ^^^^^ ^^^^^ +> : ^ ^^ ^^ ^^^^^ } namespace n2 { @@ -702,29 +702,29 @@ namespace n2 { declare let f1: (cb: BivariantHack) => void; >f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^ ^^^^^^^^^^^ >cb : (x: Animal) => Animal > : ^ ^^^^^^^^^^^^^^^^^^^ declare let f2: (cb: BivariantHack) => void; >f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^ >cb : (x: Dog) => Animal > : ^ ^^^^^^^^^^^^^^^^ f1 = f2; >f1 = f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^ >f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^ ^^^^^^^^^^^ >f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^ f2 = f1; // Error >f2 = f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^ ^^^^^^^^^^^ >f2 : (cb: (x: Dog) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^ ^^^^^^^^^^^ >f1 : (cb: (x: Animal) => Animal) => void -> : ^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^ ^^^^^^^^^^^ } diff --git a/tests/baselines/reference/strictNullChecksNoWidening.types b/tests/baselines/reference/strictNullChecksNoWidening.types index a6592ffbb5c7f..929c66df04030 100644 --- a/tests/baselines/reference/strictNullChecksNoWidening.types +++ b/tests/baselines/reference/strictNullChecksNoWidening.types @@ -65,7 +65,7 @@ var b5 = [[], [,]]; declare function f(x: T): T; >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -75,7 +75,7 @@ var c1 = f(null); >f(null) : null > : ^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var c2 = f(undefined); >c2 : undefined @@ -83,7 +83,7 @@ var c2 = f(undefined); >f(undefined) : undefined > : ^^^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ @@ -93,7 +93,7 @@ var c3 = f([]); >f([]) : never[] > : ^^^^^^^ >f : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >[] : never[] > : ^^^^^^^ diff --git a/tests/baselines/reference/strictOptionalProperties1.types b/tests/baselines/reference/strictOptionalProperties1.types index 6407140da10cf..2982101549895 100644 --- a/tests/baselines/reference/strictOptionalProperties1.types +++ b/tests/baselines/reference/strictOptionalProperties1.types @@ -889,7 +889,7 @@ declare let tx4: [(string | undefined)?]; declare function f11(x: { p?: T }): T; >f11 : (x: { p?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { p?: T; } > : ^^^^^^ ^^^ >p : T | undefined @@ -899,7 +899,7 @@ f11(ox1); // string >f11(ox1) : string > : ^^^^^^ >f11 : (x: { p?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox1 : { p: string; } > : ^^^^^ ^^^ @@ -907,7 +907,7 @@ f11(ox2); // string | undefined >f11(ox2) : string | undefined > : ^^^^^^^^^^^^^^^^^^ >f11 : (x: { p?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox2 : { p: string | undefined; } > : ^^^^^ ^^^ @@ -915,7 +915,7 @@ f11(ox3); // string >f11(ox3) : string > : ^^^^^^ >f11 : (x: { p?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox3 : { p?: string; } > : ^^^^^^ ^^^ @@ -923,13 +923,13 @@ f11(ox4); // string | undefined >f11(ox4) : string | undefined > : ^^^^^^^^^^^^^^^^^^ >f11 : (x: { p?: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox4 : { p?: string | undefined; } > : ^^^^^^ ^^^ declare function f12(x: [T?]): T; >f12 : (x: [T?]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : [T?] > : ^^^^ @@ -937,7 +937,7 @@ f12(tx1); // string >f12(tx1) : string > : ^^^^^^ >f12 : (x: [T?]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx1 : [string] > : ^^^^^^^^ @@ -945,7 +945,7 @@ f12(tx2); // string | undefined >f12(tx2) : string | undefined > : ^^^^^^^^^^^^^^^^^^ >f12 : (x: [T?]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx2 : [string | undefined] > : ^^^^^^^^^^^^^^^^^^^^ @@ -953,7 +953,7 @@ f12(tx3); // string >f12(tx3) : string > : ^^^^^^ >f12 : (x: [T?]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx3 : [string?] > : ^^^^^^^^^ @@ -961,13 +961,13 @@ f12(tx4); // string | undefined >f12(tx4) : string | undefined > : ^^^^^^^^^^^^^^^^^^ >f12 : (x: [T?]) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx4 : [(string | undefined)?] > : ^^^^^^^^^^^^^^^^^^^^^^^ declare function f13(x: Partial): T; >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : Partial > : ^^^^^^^^^^ @@ -975,7 +975,7 @@ f13(ox1); // { p: string } >f13(ox1) : { p: string; } > : ^^^^^ ^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox1 : { p: string; } > : ^^^^^ ^^^ @@ -983,7 +983,7 @@ f13(ox2); // { p: string | undefined } >f13(ox2) : { p: string | undefined; } > : ^^^^^ ^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox2 : { p: string | undefined; } > : ^^^^^ ^^^ @@ -991,7 +991,7 @@ f13(ox3); // { p: string } >f13(ox3) : { p: string; } > : ^^^^^ ^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox3 : { p?: string; } > : ^^^^^^ ^^^ @@ -999,7 +999,7 @@ f13(ox4); // { p: string | undefined } >f13(ox4) : { p: string | undefined; } > : ^^^^^ ^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >ox4 : { p?: string | undefined; } > : ^^^^^^ ^^^ @@ -1007,7 +1007,7 @@ f13(tx1); // [string] >f13(tx1) : [string] > : ^^^^^^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx1 : [string] > : ^^^^^^^^ @@ -1015,7 +1015,7 @@ f13(tx2); // [string | undefined] >f13(tx2) : [string | undefined] > : ^^^^^^^^^^^^^^^^^^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx2 : [string | undefined] > : ^^^^^^^^^^^^^^^^^^^^ @@ -1023,7 +1023,7 @@ f13(tx3); // [string] >f13(tx3) : [string] > : ^^^^^^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx3 : [string?] > : ^^^^^^^^^ @@ -1031,7 +1031,7 @@ f13(tx4); // [string | undefined] >f13(tx4) : [string | undefined] > : ^^^^^^^^^^^^^^^^^^^^ >f13 : (x: Partial) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >tx4 : [(string | undefined)?] > : ^^^^^^^^^^^^^^^^^^^^^^^ @@ -1043,7 +1043,7 @@ type Undefinable = T | undefined; function expectNotUndefined(value: Undefinable): T { >expectNotUndefined : (value: Undefinable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : Undefinable > : ^^^^^^^^^^^^^^ @@ -1086,7 +1086,7 @@ function aa(input: Bar): void { >expectNotUndefined(input.bar) : number > : ^^^^^^ >expectNotUndefined : (value: Undefinable) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >input.bar : number | undefined > : ^^^^^^^^^^^^^^^^^^ >input : Bar diff --git a/tests/baselines/reference/strictSubtypeAndNarrowing.types b/tests/baselines/reference/strictSubtypeAndNarrowing.types index c6182b8e834c1..f85183b4bd0c3 100644 --- a/tests/baselines/reference/strictSubtypeAndNarrowing.types +++ b/tests/baselines/reference/strictSubtypeAndNarrowing.types @@ -149,7 +149,7 @@ const a42 = [x41, x42]; declare function isFunction(x: unknown): x is T; >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : unknown > : ^^^^^^^ @@ -191,7 +191,7 @@ function fx1(f: (() => void) | undefined) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (() => void) | undefined > : ^^^^^^^ ^^^^^^^^^^^^^ @@ -219,7 +219,7 @@ function fx2(f: (() => void) | undefined) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (() => void) | undefined > : ^^^^^^^ ^^^^^^^^^^^^^ @@ -247,7 +247,7 @@ function fx3(f: (() => void) | undefined) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (() => void) | undefined > : ^^^^^^^ ^^^^^^^^^^^^^ @@ -275,7 +275,7 @@ function fx4(f: (() => void) | undefined) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : (() => void) | undefined > : ^^^^^^^ ^^^^^^^^^^^^^ @@ -303,7 +303,7 @@ function checkA(f: FnTypes) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : FnTypes > : ^^^^^^^ @@ -331,7 +331,7 @@ function checkB(f: FnTypes) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : FnTypes > : ^^^^^^^ @@ -359,7 +359,7 @@ function checkC(f: FnTypes) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : FnTypes > : ^^^^^^^ @@ -387,7 +387,7 @@ function checkD(f: FnTypes) { >isFunction(f) : boolean > : ^^^^^^^ >isFunction : (x: unknown) => x is T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >f : FnTypes > : ^^^^^^^ @@ -634,7 +634,7 @@ type NarrowByDeepValue = DeepPathT extends readonly [ declare function doesValueAtDeepPathSatisfy< >doesValueAtDeepPathSatisfy : , ValueT>(obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ObjT extends object, const DeepPathT extends ReadonlyArray, @@ -711,7 +711,7 @@ function test1(foo: Foo): {value: {type: 'A'}; a?: number} { >doesValueAtDeepPathSatisfy(foo, ['value', 'type'], isA) : boolean > : ^^^^^^^ >doesValueAtDeepPathSatisfy : , ValueT>(obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >foo : Foo > : ^^^ >['value', 'type'] : ["value", "type"] @@ -750,7 +750,7 @@ function test2(foo: Foo): {value: {type: 'A'}; a?: number} { >doesValueAtDeepPathSatisfy(foo, ['value', 'type'], isB) : boolean > : ^^^^^^^ >doesValueAtDeepPathSatisfy : , ValueT>(obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue -> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >foo : Foo > : ^^^ >['value', 'type'] : ["value", "type"] diff --git a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types index 7086965d547d8..873d20bc806b0 100644 --- a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types +++ b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types @@ -331,36 +331,36 @@ function f11(x: any) { } function f12(x: 'a'); >f12 : { (x: "a"): any; (x: T_1): any; } -> : ^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ function f12(x: T); >f12 : { (x: "a"): any; (x: T): any; } -> : ^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function f12(x: any) { } >f12 : { (x: "a"): any; (x: T_1): any; } -> : ^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : any function f13(x: 'a'); >f13 : { (x: "a"): any; (x: T_1): any; } -> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ function f13(x: T); >f13 : { (x: "a"): any; (x: T): any; } -> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ function f13(x: any) { } >f13 : { (x: "a"): any; (x: T_1): any; } -> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : any enum E { A } @@ -388,35 +388,35 @@ function f14(x: any) { } function f15(x: 'a'); >f15 : { (x: "a"): any; (x: U_1): any; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ function f15(x: U); >f15 : { (x: "a"): any; (x: U): any; } -> : ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : U > : ^ function f15(x: any) { } >f15 : { (x: "a"): any; (x: U_1): any; } -> : ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : any function f16(x: 'a'); >f16 : { (x: "a"): any; (x: U_1): any; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : "a" > : ^^^ function f16(x: U); >f16 : { (x: "a"): any; (x: U): any; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : U > : ^ function f16(x: any) { } >f16 : { (x: "a"): any; (x: U_1): any; } -> : ^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : any diff --git a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint01.types b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint01.types index de53d233e3b09..39fc038b9e43b 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint01.types +++ b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint01.types @@ -3,7 +3,7 @@ === stringLiteralTypesAsTypeParameterConstraint01.ts === function foo(f: (x: T) => T) { >foo : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >f : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -16,7 +16,7 @@ function foo(f: (x: T) => T) { function bar(f: (x: T) => T) { >bar : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >f : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -33,7 +33,7 @@ let f = foo(x => x); >foo(x => x) : (x: "foo") => "foo" > : ^ ^^^^^^^^^^^^^^^^^ >foo : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x => x : (x: "foo") => "foo" > : ^ ^^^^^^^^^^^^^^^^^ >x : "foo" @@ -57,7 +57,7 @@ let g = foo((x => x)); >foo((x => x)) : (x: "foo") => "foo" > : ^ ^^^^^^^^^^^^^^^^^ >foo : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x => x) : (x: "foo") => "foo" > : ^ ^^^^^^^^^^^^^^^^^ >x => x : (x: "foo") => "foo" @@ -79,11 +79,11 @@ let gResult = g("foo"); let h = bar(x => x); >h : (x: "foo" | "bar") => "foo" | "bar" -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >bar(x => x) : (x: "foo" | "bar") => "foo" | "bar" -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >bar : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x => x : (x: "foo" | "bar") => "foo" | "bar" > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : "foo" | "bar" @@ -97,7 +97,7 @@ let hResult = h("foo"); >h("foo") : "foo" | "bar" > : ^^^^^^^^^^^^^ >h : (x: "foo" | "bar") => "foo" | "bar" -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >"foo" : "foo" > : ^^^^^ @@ -109,7 +109,7 @@ hResult = h("bar"); >h("bar") : "foo" | "bar" > : ^^^^^^^^^^^^^ >h : (x: "foo" | "bar") => "foo" | "bar" -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >"bar" : "bar" > : ^^^^^ diff --git a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.types b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.types index 20fab6b311632..19b67d88dc1bc 100644 --- a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.types +++ b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.types @@ -3,7 +3,7 @@ === stringLiteralTypesAsTypeParameterConstraint02.ts === function foo(f: (x: T) => T) { >foo : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >f : (x: T) => T > : ^ ^^ ^^^^^ >x : T @@ -20,7 +20,7 @@ let f = foo((y: "foo" | "bar") => y === "foo" ? y : "foo"); >foo((y: "foo" | "bar") => y === "foo" ? y : "foo") : (x: "foo") => "foo" > : ^ ^^^^^^^^^^^^^^^^^ >foo : (f: (x: T) => T) => (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(y: "foo" | "bar") => y === "foo" ? y : "foo" : (y: "foo" | "bar") => "foo" > : ^ ^^ ^^^^^^^^^^ >y : "foo" | "bar" diff --git a/tests/baselines/reference/stringMappingReduction.types b/tests/baselines/reference/stringMappingReduction.types index c49782219b5a8..a7b2986f97d1f 100644 --- a/tests/baselines/reference/stringMappingReduction.types +++ b/tests/baselines/reference/stringMappingReduction.types @@ -81,9 +81,9 @@ declare const _virtualOn: (eventQrl: VirtualEvent) => void; export const virtualOn = (eventQrl: VirtualEvent) => { >virtualOn : (eventQrl: VirtualEvent) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >(eventQrl: VirtualEvent) => { _virtualOn(eventQrl);} : (eventQrl: VirtualEvent) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >eventQrl : (event: EPlusFallback>) => any > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types index 0937cfbd298af..030e0f64172a6 100644 --- a/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types +++ b/tests/baselines/reference/styledComponentsInstantiaionLimitNotReached.types @@ -447,7 +447,7 @@ export interface StyledComponentBase< withComponent( >withComponent : { (component: WithC): StyledComponent, T, O & StyledComponentInnerOtherProps, A | StyledComponentInnerAttrs>; >(component: WithC_1): StyledComponent; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ component: WithC, >component : WithC @@ -461,7 +461,7 @@ export interface StyledComponentBase< >; withComponent>( >withComponent : { (component: WithC_1): StyledComponent, T, O & StyledComponentInnerOtherProps, A | StyledComponentInnerAttrs>; >(component: WithC): StyledComponent; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >JSX : any > : ^^^ >React : any diff --git a/tests/baselines/reference/substitutionTypeNoMergeOfAssignableType.types b/tests/baselines/reference/substitutionTypeNoMergeOfAssignableType.types index b3b94b53a8a4f..5d914cd61c412 100644 --- a/tests/baselines/reference/substitutionTypeNoMergeOfAssignableType.types +++ b/tests/baselines/reference/substitutionTypeNoMergeOfAssignableType.types @@ -33,7 +33,7 @@ interface Entry { function makeEntityStore>(config: T): Nodes { >makeEntityStore : >(config: T) => Nodes -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >config : T > : ^ @@ -50,7 +50,7 @@ interface Entry { >makeEntityStore({ test: { fields: { id: {} } } }) : Nodes<{ test: { fields: { id: {}; }; }; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >makeEntityStore : >(config: T) => Nodes -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ test: { fields: { id: {} } } } : { test: { fields: { id: {}; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >test : { fields: { id: {}; }; } diff --git a/tests/baselines/reference/substitutionTypesInIndexedAccessTypes.types b/tests/baselines/reference/substitutionTypesInIndexedAccessTypes.types index a770b92cdba2b..0bc8e9d7af3ed 100644 --- a/tests/baselines/reference/substitutionTypesInIndexedAccessTypes.types +++ b/tests/baselines/reference/substitutionTypesInIndexedAccessTypes.types @@ -19,13 +19,13 @@ type Subset = { [key in keyof T]: key extends keyof U ? T[key] : never }; declare function withBoundary(args?: Subset): T; >withBoundary : (args?: Subset) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >args : Subset | undefined > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function withoutBoundary(args?: T): T; >withoutBoundary : (args?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >args : T | undefined > : ^^^^^^^^^^^^^ @@ -35,7 +35,7 @@ const boundaryResult = withBoundary({ >withBoundary({ select: true,}) : { select: true; } > : ^^^^^^^^^^^^^^^^^ >withBoundary : (args?: Subset) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >{ select: true,} : { select: true; } > : ^^^^^^^^^^^^^^^^^ @@ -53,7 +53,7 @@ const withoutBoundaryResult = withoutBoundary({ >withoutBoundary({ select: true,}) : { select: true; } > : ^^^^^^^^^^^^^^^^^ >withoutBoundary : (args?: T) => T -> : ^ ^^^^^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^ >{ select: true,} : { select: true; } > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/subtypeReductionUnionConstraints.types b/tests/baselines/reference/subtypeReductionUnionConstraints.types index 6dc30ee98ece0..a27806347185f 100644 --- a/tests/baselines/reference/subtypeReductionUnionConstraints.types +++ b/tests/baselines/reference/subtypeReductionUnionConstraints.types @@ -58,7 +58,7 @@ declare function isBar(node: Node): node is BarNode; export function visitNodes(node: Document | Node, predicate: (testNode: Node) => testNode is T): void { >visitNodes : (node: Document | Node, predicate: (testNode: Node) => testNode is T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >node : Node | Document > : ^^^^^^^^^^^^^^^ >predicate : (testNode: Node) => testNode is T @@ -130,7 +130,7 @@ type B = { b: string }; function f1(t: T, x: A | B) { >f1 : (t: T, x: A | B) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >x : A | B diff --git a/tests/baselines/reference/subtypeRelationForNever.types b/tests/baselines/reference/subtypeRelationForNever.types index 8067b8d648714..15719acd6f450 100644 --- a/tests/baselines/reference/subtypeRelationForNever.types +++ b/tests/baselines/reference/subtypeRelationForNever.types @@ -15,7 +15,7 @@ function fail(message: string) : never { throw new Error(message); } function withFew(values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r): r { >withFew : (values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r) => r -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >values : a[] > : ^^^ >haveFew : (values: a[]) => r @@ -55,7 +55,7 @@ function withFew(values: a[], haveFew: (values: a[]) => r, haveNone: (reas } function id(value: a) : a { return value; } >id : (value: a) => a -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >value : a > : ^ >value : a @@ -67,7 +67,7 @@ const result = withFew([1, 2, 3], id, fail); // expected result is number[] >withFew([1, 2, 3], id, fail) : number[] > : ^^^^^^^^ >withFew : (values: a[], haveFew: (values: a[]) => r, haveNone: (reason: string) => r) => r -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -77,7 +77,7 @@ const result = withFew([1, 2, 3], id, fail); // expected result is number[] >3 : 3 > : ^ >id : (value: a) => a -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >fail : (message: string) => never > : ^ ^^ ^^^^^ diff --git a/tests/baselines/reference/subtypesOfAny.types b/tests/baselines/reference/subtypesOfAny.types index f52f5e649abca..aa8655f92222e 100644 --- a/tests/baselines/reference/subtypesOfAny.types +++ b/tests/baselines/reference/subtypesOfAny.types @@ -154,7 +154,7 @@ interface I13 { foo: (x:T) => T; >foo : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/subtypesOfTypeParameter.types b/tests/baselines/reference/subtypesOfTypeParameter.types index 3bdd0c04801bb..7d7e2ac62f4d1 100644 --- a/tests/baselines/reference/subtypesOfTypeParameter.types +++ b/tests/baselines/reference/subtypesOfTypeParameter.types @@ -25,7 +25,7 @@ class D1 extends C3 { function f1(x: T, y: U) { >f1 : (x: T, y: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -112,7 +112,7 @@ module c { // errors throughout function f2(x: T, y: U) { >f2 : (x: T, y: U) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -350,13 +350,13 @@ function f2(x: T, y: U) { var r8 = true ? (x: T) => { return x } : x; >r8 : T | ((x: T_1) => T_1) -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ >true ? (x: T) => { return x } : x : T | ((x: T_1) => T_1) -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ >true : true > : ^^^^ >(x: T) => { return x } : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >x : T > : ^ >x : T @@ -366,15 +366,15 @@ function f2(x: T, y: U) { var r8b = true ? x : (x: T) => { return x }; // type parameters not identical across declarations >r8b : T | ((x: T_1) => T_1) -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ >true ? x : (x: T) => { return x } : T | ((x: T_1) => T_1) -> : ^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ >true : true > : ^^^^ >x : T > : ^ >(x: T) => { return x } : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >x : T > : ^ >x : T @@ -584,7 +584,7 @@ function f2(x: T, y: U) { function f17(a: T) { >f17 : (a: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >a : T > : ^ @@ -615,7 +615,7 @@ function f2(x: T, y: U) { function f18(a: U) { >f18 : (a: U) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : U > : ^ diff --git a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.types b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.types index c4e8e9a37a297..888ab9fe57c05 100644 --- a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.types +++ b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.types @@ -5,7 +5,7 @@ function f1(x: T, y: U) { >f1 : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -39,7 +39,7 @@ function f1(x: T, y: U) { // V > U > T function f2(x: T, y: U, z: V) { >f2 : (x: T, y: U, z: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -125,7 +125,7 @@ function f2(x: T, y: U, z: V) { // Date > U > T function f3(x: T, y: U) { >f3 : (x: T, y: U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : U @@ -270,7 +270,7 @@ module c { function f4(x: T) { >f4 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -320,7 +320,7 @@ function f4(x: T) { function f5(x: T) { >f5 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -351,7 +351,7 @@ function f5(x: T) { function f6(x: T) { >f6 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -382,7 +382,7 @@ function f6(x: T) { function f7(x: T) { >f7 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -413,7 +413,7 @@ function f7(x: T) { function f8(x: T) { >f8 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -448,7 +448,7 @@ function f8(x: T) { function f9(x: T) { >f9 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -479,7 +479,7 @@ function f9(x: T) { function f10(x: T) { >f10 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >foo : number > : ^^^^^^ >x : T @@ -520,7 +520,7 @@ function f10(x: T) { function f11 void>(x: T) { >f11 : void>(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -551,7 +551,7 @@ function f11 void>(x: T) { function f12(x: U) => U>(x: T) { >f12 : (x: U) => U>(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : U > : ^ >x : T @@ -559,13 +559,13 @@ function f12(x: U) => U>(x: T) { var r8 = true ? (x: T) => { return x } : x; // ok >r8 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >true ? (x: T) => { return x } : x : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >true : true > : ^^^^ >(x: T) => { return x } : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >x : T > : ^ >x : T @@ -575,15 +575,15 @@ function f12(x: U) => U>(x: T) { var r8b = true ? x : (x: T) => { return x }; // ok, type parameters not identical across declarations >r8b : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >true ? x : (x: T) => { return x } : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >true : true > : ^^^^ >x : T > : ^ >(x: T) => { return x } : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^^^^ >x : T > : ^ >x : T @@ -592,7 +592,7 @@ function f12(x: U) => U>(x: T) { function f13(x: T) { >f13 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -627,7 +627,7 @@ function f13(x: T) { function f14(x: T) { >f14 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -662,7 +662,7 @@ function f14(x: T) { function f15>(x: T) { >f15 : >(x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -697,7 +697,7 @@ function f15>(x: T) { function f16(x: T) { >f16 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -760,7 +760,7 @@ function f16(x: T) { function f17(x: T) { >f17 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >f : typeof f > : ^^^^^^^^ >x : T @@ -799,7 +799,7 @@ function f17(x: T) { function f18(x: T) { >f18 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >c : typeof c > : ^^^^^^^^ >x : T @@ -838,13 +838,13 @@ function f18(x: T) { function f19(x: T) { >f19 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ function f17(a: U) { >f17 : (a: U) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : U > : ^ @@ -875,7 +875,7 @@ function f19(x: T) { function f18(a: V) { >f18 : (a: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : V > : ^ @@ -907,7 +907,7 @@ function f19(x: T) { function f20(x: T) { >f20 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -942,7 +942,7 @@ function f20(x: T) { function f21(x: T) { >f21 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints3.types b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints3.types index 31b32f08af17d..828604b4abd55 100644 --- a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints3.types +++ b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints3.types @@ -5,7 +5,7 @@ function f(t: T, u: U, v: V) { >f : (t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints4.types b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints4.types index 49b088e99e29c..dfb403c048218 100644 --- a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints4.types +++ b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints4.types @@ -11,7 +11,7 @@ class Foo { foo: number; } function f(t: T, u: U, v: V) { >f : (t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/subtypesOfTypeParameterWithRecursiveConstraints.types b/tests/baselines/reference/subtypesOfTypeParameterWithRecursiveConstraints.types index 1539b4d2cd064..ebba503d98312 100644 --- a/tests/baselines/reference/subtypesOfTypeParameterWithRecursiveConstraints.types +++ b/tests/baselines/reference/subtypesOfTypeParameterWithRecursiveConstraints.types @@ -11,7 +11,7 @@ class Foo { foo: T; } function f, U extends Foo, V extends Foo>(t: T, u: U, v: V) { >f : , U extends Foo, V extends Foo>(t: T, u: U, v: V) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >t : T > : ^ >u : U diff --git a/tests/baselines/reference/subtypesOfUnion.types b/tests/baselines/reference/subtypesOfUnion.types index 891aab78e96b2..59e2a8378f5f6 100644 --- a/tests/baselines/reference/subtypesOfUnion.types +++ b/tests/baselines/reference/subtypesOfUnion.types @@ -111,7 +111,7 @@ interface I1 { foo13: (x: T) => T; // error >foo13 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -198,7 +198,7 @@ interface I2 { foo13: (x: T) => T; // error >foo13 : (x: T_1) => T_1 -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/subtypingWithCallSignatures.types b/tests/baselines/reference/subtypingWithCallSignatures.types index 938d1445c988b..df80e4d71d092 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures.types +++ b/tests/baselines/reference/subtypingWithCallSignatures.types @@ -42,7 +42,7 @@ module CallSignature { >foo1 : { (cb: (x: number) => void): typeof cb; (cb: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" @@ -89,7 +89,7 @@ module CallSignature { >foo2 : { (cb: (x: number, y: number) => void): typeof cb; (cb: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" diff --git a/tests/baselines/reference/subtypingWithCallSignatures2.types b/tests/baselines/reference/subtypingWithCallSignatures2.types index 092c2c532d2e3..2714aa9d71d55 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures2.types +++ b/tests/baselines/reference/subtypingWithCallSignatures2.types @@ -312,7 +312,7 @@ declare function foo16(a: { >foo16 : { (a: { (x: T): number[]; (x: U): number[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (x: T): number[]; >x : T @@ -324,7 +324,7 @@ declare function foo16(a: { }): typeof a; >a : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ declare function foo16(a: any): any; >foo16 : { (a: { (x: T): number[]; (x: U): number[]; }): typeof a; (a: any): any; } @@ -401,9 +401,9 @@ declare function foo18(a: any): any; var r1arg1 = (x: T) => [x]; >r1arg1 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >(x: T) => [x] : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >x : T > : ^ >[x] : T[] @@ -431,7 +431,7 @@ var r1 = foo1(r1arg1); // any, return types are not subtype of first overload >foo1 : { (a: (x: number) => number[]): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r1arg1 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ var r1a = [r1arg2, r1arg1]; // generic signature, subtype in both directions >r1a : ((x: number) => number[])[] @@ -441,7 +441,7 @@ var r1a = [r1arg2, r1arg1]; // generic signature, subtype in both directions >r1arg2 : (x: number) => number[] > : ^ ^^ ^^^^^^^^^^^^^ >r1arg1 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ var r1b = [r1arg1, r1arg2]; // generic signature, subtype in both directions >r1b : ((x: number) => number[])[] @@ -449,15 +449,15 @@ var r1b = [r1arg1, r1arg2]; // generic signature, subtype in both directions >[r1arg1, r1arg2] : ((x: number) => number[])[] > : ^^ ^^ ^^^^^^^^^^^^^^^^ >r1arg1 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^ >r1arg2 : (x: number) => number[] > : ^ ^^ ^^^^^^^^^^^^^ var r2arg1 = (x: T) => ['']; >r2arg1 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >(x: T) => [''] : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ >[''] : string[] @@ -485,7 +485,7 @@ var r2 = foo2(r2arg1); >foo2 : { (a: (x: number) => string[]): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r2arg1 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ var r2a = [r2arg1, r2arg2]; >r2a : ((x: number) => string[])[] @@ -493,7 +493,7 @@ var r2a = [r2arg1, r2arg2]; >[r2arg1, r2arg2] : ((x: number) => string[])[] > : ^^ ^^ ^^^^^^^^^^^^^^^^ >r2arg1 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >r2arg2 : (x: number) => string[] > : ^ ^^ ^^^^^^^^^^^^^ @@ -505,13 +505,13 @@ var r2b = [r2arg2, r2arg1]; >r2arg2 : (x: number) => string[] > : ^ ^^ ^^^^^^^^^^^^^ >r2arg1 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ var r3arg1 = (x: T) => x; >r3arg1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: T) => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ >x : T @@ -533,7 +533,7 @@ var r3 = foo3(r3arg1); >foo3 : { (a: (x: number) => void): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r3arg1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var r3a = [r3arg1, r3arg2]; >r3a : ((x: number) => void)[] @@ -541,7 +541,7 @@ var r3a = [r3arg1, r3arg2]; >[r3arg1, r3arg2] : ((x: number) => void)[] > : ^^ ^^ ^^^^^^^^^^^^ >r3arg1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >r3arg2 : (x: number) => void > : ^ ^^ ^^^^^^^^^ @@ -553,13 +553,13 @@ var r3b = [r3arg2, r3arg1]; >r3arg2 : (x: number) => void > : ^ ^^ ^^^^^^^^^ >r3arg1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var r4arg1 = (x: T, y: U) => x; >r4arg1 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >(x: T, y: U) => x : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : U @@ -587,7 +587,7 @@ var r4 = foo4(r4arg1); // any >foo4 : { (a: (x: string, y: number) => string): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r4arg1 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ var r4a = [r4arg1, r4arg2]; >r4a : ((x: string, y: number) => string)[] @@ -595,7 +595,7 @@ var r4a = [r4arg1, r4arg2]; >[r4arg1, r4arg2] : ((x: string, y: number) => string)[] > : ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >r4arg1 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ >r4arg2 : (x: string, y: number) => string > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ @@ -607,13 +607,13 @@ var r4b = [r4arg2, r4arg1]; >r4arg2 : (x: string, y: number) => string > : ^ ^^ ^^ ^^ ^^^^^^^^^^^ >r4arg1 : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^ var r5arg1 = (x: (arg: T) => U) => null; >r5arg1 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U) => null : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -641,7 +641,7 @@ var r5 = foo5(r5arg1); // any >foo5 : { (a: (x: (arg: string) => number) => string): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r5arg1 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r5a = [r5arg1, r5arg2]; >r5a : ((x: (arg: string) => number) => string)[] @@ -649,7 +649,7 @@ var r5a = [r5arg1, r5arg2]; >[r5arg1, r5arg2] : ((x: (arg: string) => number) => string)[] > : ^^ ^^ ^^^^^^^^^^^^^^ >r5arg1 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >r5arg2 : (x: (arg: string) => number) => string > : ^ ^^ ^^^^^^^^^^^ @@ -661,13 +661,13 @@ var r5b = [r5arg2, r5arg1]; >r5arg2 : (x: (arg: string) => number) => string > : ^ ^^ ^^^^^^^^^^^ >r5arg1 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r6arg1 = (x: (arg: T) => U) => null; >r6arg1 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: (arg: T) => U) => null : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -695,7 +695,7 @@ var r6 = foo6(r6arg1); // any >foo6 : { (a: (x: (arg: Base) => Derived) => Base): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r6arg1 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r6a = [r6arg1, r6arg2]; >r6a : ((x: (arg: Base) => Derived) => Base)[] @@ -703,7 +703,7 @@ var r6a = [r6arg1, r6arg2]; >[r6arg1, r6arg2] : ((x: (arg: Base) => Derived) => Base)[] > : ^^ ^^ ^^^^^ ^^^ >r6arg1 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r6arg2 : (x: (arg: Base) => Derived) => Base > : ^ ^^ ^^^^^ @@ -715,13 +715,13 @@ var r6b = [r6arg2, r6arg1]; >r6arg2 : (x: (arg: Base) => Derived) => Base > : ^ ^^ ^^^^^ >r6arg1 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r7arg1 = (x: (arg: T) => U) => (r: T) => null; >r7arg1 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U) => (r: T) => null : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -757,7 +757,7 @@ var r7 = foo7(r7arg1); // any >foo7 : { (a: (x: (arg: Base) => Derived) => (r: Base) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r7arg1 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r7a = [r7arg1, r7arg2]; >r7a : ((x: (arg: Base) => Derived) => (r: Base) => Derived)[] @@ -765,7 +765,7 @@ var r7a = [r7arg1, r7arg2]; >[r7arg1, r7arg2] : ((x: (arg: Base) => Derived) => (r: Base) => Derived)[] > : ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^ >r7arg1 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r7arg2 : (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^^^^^ ^^ ^^^^^ @@ -777,13 +777,13 @@ var r7b = [r7arg2, r7arg1]; >r7arg2 : (x: (arg: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^^^^^ ^^ ^^^^^ >r7arg1 : (x: (arg: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r8arg1 = (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => null; >r8arg1 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -827,7 +827,7 @@ var r8 = foo8(r8arg1); // any >foo8 : { (a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r8arg1 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r8a = [r8arg1, r8arg2]; >r8a : ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived)[] @@ -835,7 +835,7 @@ var r8a = [r8arg1, r8arg2]; >[r8arg1, r8arg2] : ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived)[] > : ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^ >r8arg1 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r8arg2 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ @@ -847,13 +847,13 @@ var r8b = [r8arg2, r8arg1]; >r8arg2 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r8arg1 : (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r9arg1 = (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => null; >r9arg1 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -901,7 +901,7 @@ var r9 = foo9(r9arg1); // any >foo9 : { (a: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r9arg1 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r9a = [r9arg1, r9arg2]; >r9a : ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived)[] @@ -909,7 +909,7 @@ var r9a = [r9arg1, r9arg2]; >[r9arg1, r9arg2] : ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived)[] > : ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^ >r9arg1 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r9arg2 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ @@ -921,13 +921,13 @@ var r9b = [r9arg2, r9arg1]; >r9arg2 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r9arg1 : (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r10arg1 = (...x: T[]) => x[0]; >r10arg1 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^ >(...x: T[]) => x[0] : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^ >x : T[] > : ^^^ >x[0] : T @@ -955,7 +955,7 @@ var r10 = foo10(r10arg1); // any >foo10 : { (a: (...x: Derived[]) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r10arg1 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^ var r10a = [r10arg1, r10arg2]; >r10a : ((...x: Derived[]) => Derived)[] @@ -963,7 +963,7 @@ var r10a = [r10arg1, r10arg2]; >[r10arg1, r10arg2] : ((...x: Derived[]) => Derived)[] > : ^^^^^ ^^ ^^^^^ ^^^ >r10arg1 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^ >r10arg2 : (...x: Derived[]) => Derived > : ^^^^ ^^ ^^^^^ @@ -975,13 +975,13 @@ var r10b = [r10arg2, r10arg1]; >r10arg2 : (...x: Derived[]) => Derived > : ^^^^ ^^ ^^^^^ >r10arg1 : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^ var r11arg1 = (x: T, y: T) => x; >r11arg1 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >(x: T, y: T) => x : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : T > : ^ >y : T @@ -1015,7 +1015,7 @@ var r11 = foo11(r11arg1); // any >foo11 : { (a: (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r11arg1 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r11a = [r11arg1, r11arg2]; >r11a : ((x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] @@ -1023,7 +1023,7 @@ var r11a = [r11arg1, r11arg2]; >[r11arg1, r11arg2] : ((x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r11arg1 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >r11arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ @@ -1035,13 +1035,13 @@ var r11b = [r11arg2, r11arg1]; >r11arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ >r11arg1 : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r12arg1 = >(x: Array, y: T) => >null; >r12arg1 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >>(x: Array, y: T) => >null : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -1069,7 +1069,7 @@ var r12 = foo12(r12arg1); // any >foo12 : { (a: (x: Array, y: Array) => Array): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r12arg1 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r12a = [r12arg1, r12arg2]; >r12a : ((x: Array, y: Array) => Array)[] @@ -1077,7 +1077,7 @@ var r12a = [r12arg1, r12arg2]; >[r12arg1, r12arg2] : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r12arg1 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r12arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ @@ -1089,13 +1089,13 @@ var r12b = [r12arg2, r12arg1]; >r12arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >r12arg1 : >(x: Array, y: T) => Array -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r13arg1 = >(x: Array, y: T) => y; >r13arg1 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >>(x: Array, y: T) => y : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -1123,7 +1123,7 @@ var r13 = foo13(r13arg1); // any >foo13 : { (a: (x: Array, y: Array) => Array): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r13arg1 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r13a = [r13arg1, r13arg2]; >r13a : ((x: Array, y: Array) => Array)[] @@ -1131,7 +1131,7 @@ var r13a = [r13arg1, r13arg2]; >[r13arg1, r13arg2] : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r13arg1 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >r13arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ @@ -1143,13 +1143,13 @@ var r13b = [r13arg2, r13arg1]; >r13arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >r13arg1 : >(x: Array, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r14arg1 = (x: { a: T; b: T }) => x.a; >r14arg1 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >(x: { a: T; b: T }) => x.a : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -1183,33 +1183,33 @@ var r14 = foo14(r14arg1); // any >foo14 : { (a: (x: { a: string; b: number; }) => Object): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r14arg1 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var r14a = [r14arg1, r14arg2]; >r14a : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => Object))[] -> : ^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ >[r14arg1, r14arg2] : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => Object))[] -> : ^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ >r14arg1 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >r14arg2 : (x: { a: string; b: number; }) => Object > : ^ ^^ ^^^^^ var r14b = [r14arg2, r14arg1]; >r14b : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => Object))[] -> : ^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ >[r14arg2, r14arg1] : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => Object))[] -> : ^^^ ^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^ >r14arg2 : (x: { a: string; b: number; }) => Object > : ^ ^^ ^^^^^ >r14arg1 : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ var r15arg1 = (x: T) => null >r15arg1 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => null : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >null : T[] @@ -1221,13 +1221,13 @@ var r15 = foo15(r15arg1); // any >foo15 : { (a: { (x: number): number[]; (x: string): string[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r15arg1 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r16arg1 = (x: T) => [1]; >r16arg1 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ >(x: T) => [1] : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ >[1] : number[] @@ -1237,19 +1237,19 @@ var r16arg1 = (x: T) => [1]; var r16 = foo16(r16arg1); >r16 : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo16(r16arg1) : { (x: T): number[]; (x: U): number[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo16 : { (a: { (x: T): number[]; (x: U): number[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r16arg1 : (x: T) => number[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ var r17arg1 = (x: (a: T) => T) => null; >r17arg1 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: (a: T) => T) => null : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -1263,13 +1263,13 @@ var r17 = foo17(r17arg1); // any >foo17 : { (a: { (x: (a: number) => number): number[]; (x: (a: string) => string): string[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r17arg1 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r18arg1 = (x: (a: T) => T) => null; >r18arg1 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: (a: T) => T) => null : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -1285,5 +1285,5 @@ var r18 = foo18(r18arg1); >foo18 : { (a: { (x: { (a: number): number; (a: string): string; }): any[]; (x: { (a: boolean): boolean; (a: Date): Date; }): any[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r18arg1 : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/subtypingWithCallSignatures3.types b/tests/baselines/reference/subtypingWithCallSignatures3.types index 8e5ad84640194..aff24dfd35ab1 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures3.types +++ b/tests/baselines/reference/subtypingWithCallSignatures3.types @@ -219,7 +219,7 @@ module Errors { (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -232,7 +232,7 @@ module Errors { }): any[]; (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -260,7 +260,7 @@ module Errors { >foo2 : { (a2: (x: number) => string[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >(x: T) => null : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ >null : U[] @@ -280,7 +280,7 @@ module Errors { >'' : "" > : ^^ >(x: T) => null : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ >null : U[] @@ -292,7 +292,7 @@ module Errors { >[(x: T) => null, (x: number) => ['']] : ((x: number) => string[])[] > : ^^ ^^ ^^^^^^^^^^^^^^^^ >(x: T) => null : (x: T) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : T > : ^ >null : U[] @@ -308,9 +308,9 @@ module Errors { var r2arg = (x: (arg: T) => U) => (r: T) => null; >r2arg : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U) => (r: T) => null : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -346,7 +346,7 @@ module Errors { >foo7 : { (a2: (x: (arg: Base) => Derived) => (r: Base) => Derived2): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r2arg : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r2a = [r2arg2, r2arg]; >r2a : ((x: (arg: Base) => Derived) => (r: Base) => Derived2)[] @@ -356,7 +356,7 @@ module Errors { >r2arg2 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^ ^^ ^^^^^^ ^^ ^^^^^ >r2arg : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r2b = [r2arg, r2arg2]; >r2b : ((x: (arg: Base) => Derived) => (r: Base) => Derived2)[] @@ -364,15 +364,15 @@ module Errors { >[r2arg, r2arg2] : ((x: (arg: Base) => Derived) => (r: Base) => Derived2)[] > : ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^ >r2arg : (x: (arg: T) => U) => (r: T) => V -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r2arg2 : (x: (arg: Base) => Derived) => (r: Base) => Derived2 > : ^ ^^ ^^^^^^ ^^ ^^^^^ var r3arg = (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => null; >r3arg : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => null : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -416,33 +416,33 @@ module Errors { >foo8 : { (a2: (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r3arg : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r3a = [r3arg2, r3arg]; >r3a : (((x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U) | ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived))[] -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ >[r3arg2, r3arg] : (((x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U) | ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived))[] -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ >r3arg2 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r3arg : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r3b = [r3arg, r3arg2]; >r3b : (((x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U) | ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived))[] -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ >[r3arg, r3arg2] : (((x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U) | ((x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived))[] -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ ^^^^ >r3arg : (x: (arg: T) => U, y: (arg2: { foo: number; }) => U) => (r: T) => U -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ >r3arg2 : (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived > : ^ ^^ ^^ ^^ ^^^^^^ ^^ ^^^^^ var r4arg = (...x: T[]) => null; >r4arg : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(...x: T[]) => null : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ >null : T @@ -466,7 +466,7 @@ module Errors { >foo10 : { (a2: (...x: Base[]) => Base): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r4arg : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ var r4a = [r4arg2, r4arg]; >r4a : ((...x: Base[]) => Base)[] @@ -476,7 +476,7 @@ module Errors { >r4arg2 : (...x: Base[]) => Base > : ^^^^ ^^ ^^^^^ >r4arg : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ var r4b = [r4arg, r4arg2]; >r4b : ((...x: Base[]) => Base)[] @@ -484,15 +484,15 @@ module Errors { >[r4arg, r4arg2] : ((...x: Base[]) => Base)[] > : ^^^^^ ^^ ^^^^^ ^^^ >r4arg : (...x: T[]) => T -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >r4arg2 : (...x: Base[]) => Base > : ^^^^ ^^ ^^^^^ var r5arg = (x: T, y: T) => null; >r5arg : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(x: T, y: T) => null : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -526,7 +526,7 @@ module Errors { >foo11 : { (a2: (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r5arg : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r5a = [r5arg2, r5arg]; >r5a : ((x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] @@ -536,7 +536,7 @@ module Errors { >r5arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ >r5arg : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r5b = [r5arg, r5arg2]; >r5b : ((x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] @@ -544,7 +544,7 @@ module Errors { >[r5arg, r5arg2] : ((x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r5arg : (x: T, y: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r5arg2 : (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^ ^^ ^^ ^^ ^^^^^ @@ -562,9 +562,9 @@ module Errors { var r6arg2 = >(x: Array, y: Array) => null; >r6arg2 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >>(x: Array, y: Array) => null : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -588,7 +588,7 @@ module Errors { >[r6arg2, r6arg] : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r6arg2 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r6arg : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ @@ -600,13 +600,13 @@ module Errors { >r6arg : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ >r6arg2 : >(x: Array, y: Array) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r7arg = (x: { a: T; b: T }) => null; >r7arg : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: { a: T; b: T }) => null : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -636,33 +636,33 @@ module Errors { >foo15 : { (a2: (x: { a: string; b: number; }) => number): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r7arg : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r7a = [r7arg2, r7arg]; >r7a : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => number))[] -> : ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ >[r7arg2, r7arg] : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => number))[] -> : ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ >r7arg2 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^^^^^^^ >r7arg : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r7b = [r7arg, r7arg2]; >r7b : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => number))[] -> : ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ >[r7arg, r7arg2] : (((x: { a: T; b: T; }) => T) | ((x: { a: string; b: number; }) => number))[] -> : ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^ ^^ ^^^^^ ^^^^^^ ^^ ^^^^^^^^^^^^^^^ >r7arg : (x: { a: T; b: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >r7arg2 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^^^^^^^ var r7arg3 = (x: { a: T; b: T }) => 1; >r7arg3 : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >(x: { a: T; b: T }) => 1 : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -678,33 +678,33 @@ module Errors { >foo15 : { (a2: (x: { a: string; b: number; }) => number): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r7arg3 : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ var r7d = [r7arg2, r7arg3]; >r7d : (((x: { a: string; b: number; }) => number) | ((x: { a: T; b: T; }) => number))[] -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ >[r7arg2, r7arg3] : (((x: { a: string; b: number; }) => number) | ((x: { a: T; b: T; }) => number))[] -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ >r7arg2 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^^^^^^^ >r7arg3 : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ var r7e = [r7arg3, r7arg2]; >r7e : (((x: { a: string; b: number; }) => number) | ((x: { a: T; b: T; }) => number))[] -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ >[r7arg3, r7arg2] : (((x: { a: string; b: number; }) => number) | ((x: { a: T; b: T; }) => number))[] -> : ^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ >r7arg3 : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >r7arg2 : (x: { a: string; b: number; }) => number > : ^ ^^ ^^^^^^^^^^^ var r8arg = (x: (a: T) => T) => null; >r8arg : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: (a: T) => T) => null : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -718,13 +718,13 @@ module Errors { >foo16 : { (a2: { (x: { (a: number): number; (a?: number): number; }): number[]; (x: { (a: boolean): boolean; (a?: boolean): boolean; }): boolean[]; }): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r8arg : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r9arg = (x: (a: T) => T) => null; >r9arg : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: (a: T) => T) => null : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -740,7 +740,7 @@ module Errors { >foo17 : { (a2: { (x: { (a: T): T; (a: T): T; }): any[]; (x: { (a: T): T; (a: T): T; }): any[]; }): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r9arg : (x: (a: T) => T) => any[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } module WithGenericSignaturesInBaseType { @@ -751,11 +751,11 @@ module WithGenericSignaturesInBaseType { >foo2 : { (a2: (x: T) => T[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >a2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ declare function foo2(a2: any): any; >foo2 : { (a2: (x: T) => T[]): typeof a2; (a2: any): any; } @@ -764,9 +764,9 @@ module WithGenericSignaturesInBaseType { var r2arg2 = (x: T) => ['']; >r2arg2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >(x: T) => [''] : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ >[''] : string[] @@ -780,17 +780,17 @@ module WithGenericSignaturesInBaseType { >foo2 : { (a2: (x: T) => T[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r2arg2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ declare function foo3(a2: (x: T) => string[]): typeof a2; >foo3 : { (a2: (x: T) => string[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ declare function foo3(a2: any): any; >foo3 : { (a2: (x: T) => string[]): typeof a2; (a2: any): any; } @@ -799,9 +799,9 @@ module WithGenericSignaturesInBaseType { var r3arg2 = (x: T) => null; >r3arg2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => null : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >null : T[] @@ -813,5 +813,5 @@ module WithGenericSignaturesInBaseType { >foo3 : { (a2: (x: T) => string[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r3arg2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/subtypingWithCallSignatures4.types b/tests/baselines/reference/subtypingWithCallSignatures4.types index 78cf2e7e51526..ba759bf7ae7b2 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures4.types +++ b/tests/baselines/reference/subtypingWithCallSignatures4.types @@ -37,7 +37,7 @@ declare function foo1(a: (x: T) => T[]); >foo1 : { (a: (x: T) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -50,7 +50,7 @@ declare function foo2(a2: (x: T) => string[]); >foo2 : { (a2: (x: T) => string[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -63,7 +63,7 @@ declare function foo3(a3: (x: T) => void); >foo3 : { (a3: (x: T) => void): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -76,7 +76,7 @@ declare function foo4(a4: (x: T, y: U) => string); >foo4 : { (a4: (x: T, y: U) => string): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a4 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -91,7 +91,7 @@ declare function foo5(a5: (x: (arg: T) => U) => T); >foo5 : { (a5: (x: (arg: T) => U) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a5 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -106,7 +106,7 @@ declare function foo6(a6: (x: (arg: T) => Derived) => T); >foo6 : { (a6: (x: (arg: T) => Derived) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -121,7 +121,7 @@ declare function foo11(a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base); >foo11 : { (a11: (x: { foo: T; }, y: { foo: T; bar: T; }) => Base): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -142,7 +142,7 @@ declare function foo15(a15: (x: { a: T; b: T }) => T[]); >foo15 : { (a15: (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a15 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -159,7 +159,7 @@ declare function foo16(a16: (x: { a: T; b: T }) => T[]); >foo16 : { (a16: (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a16 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -176,7 +176,7 @@ declare function foo17(a17: { >foo17 : { (a17: { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a17 : { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (x: (a: T) => T): T[]; >x : (a: T) => T @@ -204,7 +204,7 @@ declare function foo18(a18: { (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -217,7 +217,7 @@ declare function foo18(a18: { }): any[]; (x: { >x : { (a: T): T; (a: T): T; } -> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ (a: T): T; >a : T @@ -236,9 +236,9 @@ declare function foo18(a: any): any; var r1arg = (x: T) => null; >r1arg : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => null : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >null : T[] @@ -246,9 +246,9 @@ var r1arg = (x: T) => null; var r1arg2 = (x: T) => null; >r1arg2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => null : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >null : T[] @@ -260,33 +260,33 @@ var r1 = foo1(r1arg); >foo1 : { (a: (x: T) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r1arg : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r1a = [r1arg, r1arg2]; >r1a : ((x: T) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >[r1arg, r1arg2] : ((x: T) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >r1arg : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >r1arg2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r1b = [r1arg2, r1arg]; >r1b : ((x: T) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >[r1arg2, r1arg] : ((x: T) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >r1arg2 : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >r1arg : (x: T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r2arg = (x: T) => ['']; >r2arg : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >(x: T) => [''] : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ >[''] : string[] @@ -296,9 +296,9 @@ var r2arg = (x: T) => ['']; var r2arg2 = (x: T) => ['']; >r2arg2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >(x: T) => [''] : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ >[''] : string[] @@ -312,33 +312,33 @@ var r2 = foo2(r2arg); >foo2 : { (a2: (x: T) => string[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r2arg : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ var r2a = [r2arg, r2arg2]; >r2a : ((x: T) => string[])[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^ >[r2arg, r2arg2] : ((x: T) => string[])[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^ >r2arg : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >r2arg2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ var r2b = [r2arg2, r2arg]; >r2b : ((x: T) => string[])[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^ >[r2arg2, r2arg] : ((x: T) => string[])[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^^^^^ >r2arg2 : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ >r2arg : (x: T) => string[] -> : ^ ^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^ var r3arg = (x: T) => null; >r3arg : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: T) => null : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >null : T @@ -346,9 +346,9 @@ var r3arg = (x: T) => null; var r3arg2 = (x: T) => { }; >r3arg2 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >(x: T) => { } : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -358,33 +358,33 @@ var r3 = foo3(r3arg); >foo3 : { (a3: (x: T) => void): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r3arg : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r3a = [r3arg, r3arg2]; >r3a : ((x: T) => void)[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^ >[r3arg, r3arg2] : ((x: T) => void)[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^ >r3arg : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >r3arg2 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ var r3b = [r3arg2, r3arg]; >r3b : ((x: T) => void)[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^ >[r3arg2, r3arg] : ((x: T) => void)[] -> : ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^ ^^ ^^^^^^^^^^^^ >r3arg2 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >r3arg : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r4arg = (x: T, y: U) => ''; >r4arg : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >(x: T, y: U) => '' : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : U @@ -394,9 +394,9 @@ var r4arg = (x: T, y: U) => ''; var r4arg2 = (x: T, y: U) => ''; >r4arg2 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >(x: T, y: U) => '' : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >y : U @@ -410,33 +410,33 @@ var r4 = foo4(r4arg); >foo4 : { (a4: (x: T, y: U) => string): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r4arg : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ var r4a = [r4arg, r4arg2]; >r4a : ((x: T, y: U) => string)[] -> : ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >[r4arg, r4arg2] : ((x: T, y: U) => string)[] -> : ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >r4arg : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >r4arg2 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ var r4b = [r4arg2, r4arg]; >r4b : ((x: T, y: U) => string)[] -> : ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >[r4arg2, r4arg] : ((x: T, y: U) => string)[] -> : ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >r4arg2 : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ >r4arg : (x: T, y: U) => string -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ var r5arg = (x: (arg: T) => U) => null; >r5arg : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U) => null : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -446,9 +446,9 @@ var r5arg = (x: (arg: T) => U) => null; var r5arg2 = (x: (arg: T) => U) => null; >r5arg2 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(x: (arg: T) => U) => null : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -462,33 +462,33 @@ var r5 = foo5(r5arg); >foo5 : { (a5: (x: (arg: T) => U) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r5arg : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r5a = [r5arg, r5arg2]; >r5a : ((x: (arg: T) => U) => T)[] -> : ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^^ >[r5arg, r5arg2] : ((x: (arg: T) => U) => T)[] -> : ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^^ >r5arg : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >r5arg2 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r5b = [r5arg2, r5arg]; >r5b : ((x: (arg: T) => U) => T)[] -> : ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^^ >[r5arg2, r5arg] : ((x: (arg: T) => U) => T)[] -> : ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^^^ ^^^ >r5arg2 : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >r5arg : (x: (arg: T) => U) => T -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r6arg = (x: (arg: T) => U) => null; >r6arg : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: (arg: T) => U) => null : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -498,9 +498,9 @@ var r6arg = (x: (arg: T) => U) => null; var r6arg2 = (x: (arg: T) => Derived) => null; >r6arg2 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: (arg: T) => Derived) => null : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -514,33 +514,33 @@ var r6 = foo6(r6arg); >foo6 : { (a6: (x: (arg: T) => Derived) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r6arg : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r6a = [r6arg, r6arg2]; >r6a : ((x: (arg: T) => U) => T)[] -> : ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r6arg, r6arg2] : ((x: (arg: T) => U) => T)[] -> : ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r6arg : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r6arg2 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ var r6b = [r6arg2, r6arg]; >r6b : ((x: (arg: T) => U) => T)[] -> : ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r6arg2, r6arg] : ((x: (arg: T) => U) => T)[] -> : ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r6arg2 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >r6arg : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r11arg = (x: { foo: T }, y: { foo: U; bar: U }) => null; >r11arg : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >(x: { foo: T }, y: { foo: U; bar: U }) => null : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -556,9 +556,9 @@ var r11arg = (x: { foo: T }, y: { foo: U; bar: U }) => null; var r11arg2 = (x: { foo: T }, y: { foo: T; bar: T }) => null; >r11arg2 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >(x: { foo: T }, y: { foo: T; bar: T }) => null : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -578,33 +578,33 @@ var r11 = foo11(r11arg); >foo11 : { (a11: (x: { foo: T; }, y: { foo: T; bar: T; }) => Base): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r11arg : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var r11a = [r11arg, r11arg2]; >r11a : ((x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r11arg, r11arg2] : ((x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r11arg : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >r11arg2 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ var r11b = [r11arg2, r11arg]; >r11b : ((x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r11arg2, r11arg] : ((x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r11arg2 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >r11arg : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ var r15arg = (x: { a: U; b: V; }) => null; >r15arg : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >(x: { a: U; b: V; }) => null : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x : { a: U; b: V; } > : ^^^^^ ^^^^^ ^^^ >a : U @@ -616,9 +616,9 @@ var r15arg = (x: { a: U; b: V; }) => null; var r15arg2 = (x: { a: T; b: T }) => null; >r15arg2 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: { a: T; b: T }) => null : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -634,33 +634,33 @@ var r15 = foo15(r15arg); >foo15 : { (a15: (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r15arg : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r15a = [r15arg, r15arg2]; >r15a : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >[r15arg, r15arg2] : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >r15arg : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >r15arg2 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r15b = [r15arg2, r15arg]; >r15b : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >[r15arg2, r15arg] : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^ ^^ ^^^^^ ^^^ >r15arg2 : (x: { a: T; b: T; }) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >r15arg : (x: { a: U; b: V; }) => U[] -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ var r16arg = (x: { a: T; b: T }) => null; >r16arg : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: { a: T; b: T }) => null : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -672,9 +672,9 @@ var r16arg = (x: { a: T; b: T }) => null; var r16arg2 = (x: { a: T; b: T }) => null; >r16arg2 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >(x: { a: T; b: T }) => null : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -690,33 +690,33 @@ var r16 = foo16(r16arg); >foo16 : { (a16: (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r16arg : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ var r16a = [r16arg, r16arg2]; >r16a : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r16arg, r16arg2] : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r16arg : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >r16arg2 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ var r16b = [r16arg2, r16arg]; >r16b : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r16arg2, r16arg] : ((x: { a: T; b: T; }) => T[])[] -> : ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r16arg2 : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >r16arg : (x: { a: T; b: T; }) => T[] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ var r17arg = (x: (a: T) => T) => null; >r17arg : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(x: (a: T) => T) => null : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -730,7 +730,7 @@ var r17 = foo17(r17arg); >foo17 : { (a17: { (x: (a: T) => T): T[]; (x: (a: T) => T): T[]; }): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r17arg : (x: (a: T) => T) => T[] -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ var r18arg = (x: (a: T) => T) => null; >r18arg : (x: (a: T) => T) => any[] @@ -738,7 +738,7 @@ var r18arg = (x: (a: T) => T) => null; >(x: (a: T) => T) => null : (x: (a: T) => T) => any[] > : ^ ^^ ^^^^^ >x : (a: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >a : T > : ^ >null : any[] diff --git a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types index 998b51c20d623..28443f47aa612 100644 --- a/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types +++ b/tests/baselines/reference/subtypingWithCallSignaturesWithSpecializedSignatures.types @@ -100,7 +100,7 @@ module MemberWithCallSignature { } a3: (x: T) => void; >a3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -124,7 +124,7 @@ module MemberWithCallSignature { a3: (x: T) => string; // ok because base returns void >a3 : (x: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -145,7 +145,7 @@ module MemberWithCallSignature { } a2: (x: T) => T; >a2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -165,7 +165,7 @@ module MemberWithCallSignature { // N's a2: (x: T) => string; // error because base returns non-void; >a2 : (x: T) => string -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/subtypingWithConstructSignatures.types b/tests/baselines/reference/subtypingWithConstructSignatures.types index a73396e328bf2..806029143db17 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures.types @@ -38,7 +38,7 @@ module ConstructSignature { var rarg2: new (x: T) => string; >rarg2 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -50,7 +50,7 @@ module ConstructSignature { >foo1 : { (cb: new (x: number) => void): typeof cb; (cb: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >rarg2 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ declare function foo2(cb: new (x: number, y: number) => void): typeof cb; >foo2 : { (cb: new (x: number, y: number) => void): typeof cb; (cb: any): any; } @@ -89,7 +89,7 @@ module ConstructSignature { var r4arg1: new (x: T) => string; >r4arg1 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -101,5 +101,5 @@ module ConstructSignature { >foo2 : { (cb: new (x: number, y: number) => void): typeof cb; (cb: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r4arg1 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/subtypingWithConstructSignatures2.types b/tests/baselines/reference/subtypingWithConstructSignatures2.types index eaec3c61c7ea2..4930f33146c8d 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures2.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures2.types @@ -312,7 +312,7 @@ declare function foo16(a: { >foo16 : { (a: { new (x: T): number[]; new (x: U): number[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: T): number[]; >x : T @@ -324,7 +324,7 @@ declare function foo16(a: { }): typeof a; >a : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ declare function foo16(a: any): any; >foo16 : { (a: { new (x: T): number[]; new (x: U): number[]; }): typeof a; (a: any): any; } @@ -401,7 +401,7 @@ declare function foo18(a: any): any; var r1arg1: new (x: T) => T[]; >r1arg1 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -419,7 +419,7 @@ var r1 = foo1(r1arg1); // any, return types are not subtype of first overload >foo1 : { (a: new (x: number) => number[]): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r1arg1 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1a = [r1arg2, r1arg1]; // generic signature, subtype in both directions >r1a : (new (x: number) => number[])[] @@ -429,7 +429,7 @@ var r1a = [r1arg2, r1arg1]; // generic signature, subtype in both directions >r1arg2 : new (x: number) => number[] > : ^^^^^ ^^ ^^^^^ >r1arg1 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b = [r1arg1, r1arg2]; // generic signature, subtype in both directions >r1b : (new (x: number) => number[])[] @@ -437,13 +437,13 @@ var r1b = [r1arg1, r1arg2]; // generic signature, subtype in both directions >[r1arg1, r1arg2] : (new (x: number) => number[])[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r1arg1 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r1arg2 : new (x: number) => number[] > : ^^^^^ ^^ ^^^^^ var r2arg1: new (x: T) => string[]; >r2arg1 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -461,7 +461,7 @@ var r2 = foo2(r2arg1); >foo2 : { (a: new (x: number) => string[]): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r2arg1 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2a = [r2arg1, r2arg2]; >r2a : (new (x: number) => string[])[] @@ -469,7 +469,7 @@ var r2a = [r2arg1, r2arg2]; >[r2arg1, r2arg2] : (new (x: number) => string[])[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r2arg1 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r2arg2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ @@ -481,11 +481,11 @@ var r2b = [r2arg2, r2arg1]; >r2arg2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ >r2arg1 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3arg1: new (x: T) => T; >r3arg1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -503,7 +503,7 @@ var r3 = foo3(r3arg1); >foo3 : { (a: new (x: number) => void): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r3arg1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3a = [r3arg1, r3arg2]; >r3a : (new (x: number) => void)[] @@ -511,7 +511,7 @@ var r3a = [r3arg1, r3arg2]; >[r3arg1, r3arg2] : (new (x: number) => void)[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r3arg1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r3arg2 : new (x: number) => void > : ^^^^^ ^^ ^^^^^ @@ -523,11 +523,11 @@ var r3b = [r3arg2, r3arg1]; >r3arg2 : new (x: number) => void > : ^^^^^ ^^ ^^^^^ >r3arg1 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4arg1: new (x: T, y: U) => T; >r4arg1 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -549,7 +549,7 @@ var r4 = foo4(r4arg1); // any >foo4 : { (a: new (x: string, y: number) => string): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r4arg1 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r4a = [r4arg1, r4arg2]; >r4a : (new (x: string, y: number) => string)[] @@ -557,7 +557,7 @@ var r4a = [r4arg1, r4arg2]; >[r4arg1, r4arg2] : (new (x: string, y: number) => string)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r4arg1 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >r4arg2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -569,11 +569,11 @@ var r4b = [r4arg2, r4arg1]; >r4arg2 : new (x: string, y: number) => string > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r4arg1 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r5arg1: new (x: new (arg: T) => U) => T; >r5arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -595,7 +595,7 @@ var r5 = foo5(r5arg1); // any >foo5 : { (a: new (x: new (arg: string) => number) => string): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r5arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r5a = [r5arg1, r5arg2]; >r5a : (new (x: new (arg: string) => number) => string)[] @@ -603,7 +603,7 @@ var r5a = [r5arg1, r5arg2]; >[r5arg1, r5arg2] : (new (x: new (arg: string) => number) => string)[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r5arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >r5arg2 : new (x: new (arg: string) => number) => string > : ^^^^^ ^^ ^^^^^ @@ -615,11 +615,11 @@ var r5b = [r5arg2, r5arg1]; >r5arg2 : new (x: new (arg: string) => number) => string > : ^^^^^ ^^ ^^^^^ >r5arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r6arg1: new (x: new (arg: T) => U) => T; >r6arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -641,7 +641,7 @@ var r6 = foo6(r6arg1); // any >foo6 : { (a: new (x: new (arg: Base) => Derived) => Base): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r6arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r6a = [r6arg1, r6arg2]; >r6a : (new (x: new (arg: Base) => Derived) => Base)[] @@ -649,7 +649,7 @@ var r6a = [r6arg1, r6arg2]; >[r6arg1, r6arg2] : (new (x: new (arg: Base) => Derived) => Base)[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r6arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r6arg2 : new (x: new (arg: Base) => Derived) => Base > : ^^^^^ ^^ ^^^^^ @@ -661,11 +661,11 @@ var r6b = [r6arg2, r6arg1]; >r6arg2 : new (x: new (arg: Base) => Derived) => Base > : ^^^^^ ^^ ^^^^^ >r6arg1 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r7arg1: new (x: new (arg: T) => U) => new (r: T) => U; >r7arg1 : new (x: new (arg: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -691,7 +691,7 @@ var r7 = foo7(r7arg1); // any >foo7 : { (a: new (x: new (arg: Base) => Derived) => new (r: Base) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r7arg1 : new (x: new (arg: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r7a = [r7arg1, r7arg2]; >r7a : (new (x: new (arg: Base) => Derived) => new (r: Base) => Derived)[] @@ -699,7 +699,7 @@ var r7a = [r7arg1, r7arg2]; >[r7arg1, r7arg2] : (new (x: new (arg: Base) => Derived) => new (r: Base) => Derived)[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r7arg1 : new (x: new (arg: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r7arg2 : new (x: new (arg: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^^^^ @@ -711,11 +711,11 @@ var r7b = [r7arg2, r7arg1]; >r7arg2 : new (x: new (arg: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^^^^ >r7arg1 : new (x: new (arg: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r8arg1: new (x: new (arg: T) => U, y: new (arg2: T) => U) => new (r: T) => U; >r8arg1 : new (x: new (arg: T) => U, y: new (arg2: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -749,7 +749,7 @@ var r8 = foo8(r8arg1); // any >foo8 : { (a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r8arg1 : new (x: new (arg: T) => U, y: new (arg2: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r8a = [r8arg1, r8arg2]; >r8a : (new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived)[] @@ -757,7 +757,7 @@ var r8a = [r8arg1, r8arg2]; >[r8arg1, r8arg2] : (new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r8arg1 : new (x: new (arg: T) => U, y: new (arg2: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r8arg2 : new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -769,11 +769,11 @@ var r8b = [r8arg2, r8arg1]; >r8arg2 : new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r8arg1 : new (x: new (arg: T) => U, y: new (arg2: T) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r9arg1: new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => new (r: T) => U; >r9arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -809,31 +809,31 @@ var r9 = foo9(r9arg1); // any >foo9 : { (a: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r9arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r9a = [r9arg1, r9arg2]; >r9a : ((new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U) | (new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >[r9arg1, r9arg2] : ((new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U) | (new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >r9arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r9arg2 : new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ var r9b = [r9arg2, r9arg1]; >r9b : ((new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U) | (new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >[r9arg2, r9arg1] : ((new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U) | (new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >r9arg2 : new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r9arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r10arg1: new (...x: T[]) => T; >r10arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -851,7 +851,7 @@ var r10 = foo10(r10arg1); // any >foo10 : { (a: new (...x: Derived[]) => Derived): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r10arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ var r10a = [r10arg1, r10arg2]; >r10a : (new (...x: Derived[]) => Derived)[] @@ -859,7 +859,7 @@ var r10a = [r10arg1, r10arg2]; >[r10arg1, r10arg2] : (new (...x: Derived[]) => Derived)[] > : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r10arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >r10arg2 : new (...x: Derived[]) => Derived > : ^^^^^^^^ ^^ ^^^^^ @@ -871,11 +871,11 @@ var r10b = [r10arg2, r10arg1]; >r10arg2 : new (...x: Derived[]) => Derived > : ^^^^^^^^ ^^ ^^^^^ >r10arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ var r11arg1: new (x: T, y: T) => T; >r11arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -903,7 +903,7 @@ var r11 = foo11(r11arg1); // any >foo11 : { (a: new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r11arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r11a = [r11arg1, r11arg2]; >r11a : (new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] @@ -911,7 +911,7 @@ var r11a = [r11arg1, r11arg2]; >[r11arg1, r11arg2] : (new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r11arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r11arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -923,11 +923,11 @@ var r11b = [r11arg2, r11arg1]; >r11arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r11arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r12arg1: new >(x: Array, y: T) => Array; >r12arg1 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -949,7 +949,7 @@ var r12 = foo12(r12arg1); // any >foo12 : { (a: new (x: Array, y: Array) => Array): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r12arg1 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r12a = [r12arg1, r12arg2]; >r12a : (new (x: Array, y: Array) => Array)[] @@ -957,7 +957,7 @@ var r12a = [r12arg1, r12arg2]; >[r12arg1, r12arg2] : (new (x: Array, y: Array) => Array)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r12arg1 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r12arg2 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -969,11 +969,11 @@ var r12b = [r12arg2, r12arg1]; >r12arg2 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r12arg1 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r13arg1: new >(x: Array, y: T) => T; >r13arg1 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -995,7 +995,7 @@ var r13 = foo13(r13arg1); // any >foo13 : { (a: new (x: Array, y: Array) => Array): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r13arg1 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r13a = [r13arg1, r13arg2]; >r13a : (new (x: Array, y: Array) => Array)[] @@ -1003,7 +1003,7 @@ var r13a = [r13arg1, r13arg2]; >[r13arg1, r13arg2] : (new (x: Array, y: Array) => Array)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r13arg1 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r13arg2 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -1015,11 +1015,11 @@ var r13b = [r13arg2, r13arg1]; >r13arg2 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r13arg1 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r14arg1: new (x: { a: T; b: T }) => T; >r14arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -1043,31 +1043,31 @@ var r14 = foo14(r14arg1); // any >foo14 : { (a: new (x: { a: string; b: number; }) => Object): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r14arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r14a = [r14arg1, r14arg2]; >r14a : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => Object))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >[r14arg1, r14arg2] : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => Object))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >r14arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r14arg2 : new (x: { a: string; b: number; }) => Object > : ^^^^^ ^^ ^^^^^ var r14b = [r14arg2, r14arg1]; >r14b : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => Object))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >[r14arg2, r14arg1] : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => Object))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >r14arg2 : new (x: { a: string; b: number; }) => Object > : ^^^^^ ^^ ^^^^^ >r14arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r15arg1: new (x: T) => T[]; >r15arg1 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -1077,27 +1077,27 @@ var r15 = foo15(r15arg1); // any >foo15 : { (a: { new (x: number): number[]; new (x: string): string[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r15arg1 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r16arg1: new (x: T) => number[]; >r16arg1 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ var r16 = foo16(r16arg1); >r16 : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo16(r16arg1) : { new (x: T): number[]; new (x: U): number[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ >foo16 : { (a: { new (x: T): number[]; new (x: U): number[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r16arg1 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r17arg1: new (x: (a: T) => T) => T[]; >r17arg1 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -1109,11 +1109,11 @@ var r17 = foo17(r17arg1); // any >foo17 : { (a: { new (x: (a: number) => number): number[]; new (x: (a: string) => string): string[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r17arg1 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r18arg1: new (x: (a: T) => T) => T[]; >r18arg1 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : (a: T) => T > : ^ ^^ ^^^^^ >a : T @@ -1125,5 +1125,5 @@ var r18 = foo18(r18arg1); >foo18 : { (a: { new (x: { new (a: number): number; new (a: string): string; }): any[]; new (x: { new (a: boolean): boolean; new (a: Date): Date; }): any[]; }): typeof a; (a: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r18arg1 : new (x: (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ diff --git a/tests/baselines/reference/subtypingWithConstructSignatures3.types b/tests/baselines/reference/subtypingWithConstructSignatures3.types index d6cd126a6f618..882138c705d16 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures3.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures3.types @@ -219,7 +219,7 @@ module Errors { new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -232,7 +232,7 @@ module Errors { }): any[]; new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -254,7 +254,7 @@ module Errors { var r1arg1: new (x: T) => U[]; >r1arg1 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -272,7 +272,7 @@ module Errors { >foo2 : { (a2: new (x: number) => string[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r1arg1 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r1a = [r1arg2, r1arg1]; >r1a : (new (x: number) => string[])[] @@ -282,7 +282,7 @@ module Errors { >r1arg2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ >r1arg1 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r1b = [r1arg1, r1arg2]; >r1b : (new (x: number) => string[])[] @@ -290,13 +290,13 @@ module Errors { >[r1arg1, r1arg2] : (new (x: number) => string[])[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r1arg1 : new (x: T) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >r1arg2 : new (x: number) => string[] > : ^^^^^ ^^ ^^^^^ var r2arg1: new (x: new (arg: T) => U) => new (r: T) => V; >r2arg1 : new (x: new (arg: T) => U) => new (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -322,7 +322,7 @@ module Errors { >foo7 : { (a2: new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r2arg1 : new (x: new (arg: T) => U) => new (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r2a = [r2arg2, r2arg1]; >r2a : (new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2)[] @@ -332,7 +332,7 @@ module Errors { >r2arg2 : new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2 > : ^^^^^ ^^ ^^^^^ >r2arg1 : new (x: new (arg: T) => U) => new (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r2b = [r2arg1, r2arg2]; >r2b : (new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2)[] @@ -340,13 +340,13 @@ module Errors { >[r2arg1, r2arg2] : (new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2)[] > : ^^^^^^ ^^ ^^^^^ ^^^ >r2arg1 : new (x: new (arg: T) => U) => new (r: T) => V -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r2arg2 : new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2 > : ^^^^^ ^^ ^^^^^ var r3arg1: new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U; >r3arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -380,31 +380,31 @@ module Errors { >foo8 : { (a2: new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r3arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r3a = [r3arg2, r3arg1]; >r3a : ((new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U) | (new (x: (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >[r3arg2, r3arg1] : ((new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U) | (new (x: (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >r3arg2 : new (x: (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r3arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r3b = [r3arg1, r3arg2]; >r3b : ((new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U) | (new (x: (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >[r3arg1, r3arg2] : ((new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U) | (new (x: (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived))[] -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^^ >r3arg1 : new (x: new (arg: T) => U, y: (arg2: { foo: number; }) => U) => new (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r3arg2 : new (x: (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived > : ^^^^^ ^^ ^^ ^^ ^^^^^ var r4arg1: new (...x: T[]) => T; >r4arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ @@ -422,7 +422,7 @@ module Errors { >foo10 : { (a2: new (...x: Base[]) => Base): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r4arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ var r4a = [r4arg2, r4arg1]; >r4a : (new (...x: Base[]) => Base)[] @@ -432,7 +432,7 @@ module Errors { >r4arg2 : new (...x: Base[]) => Base > : ^^^^^^^^ ^^ ^^^^^ >r4arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ var r4b = [r4arg1, r4arg2]; >r4b : (new (...x: Base[]) => Base)[] @@ -440,13 +440,13 @@ module Errors { >[r4arg1, r4arg2] : (new (...x: Base[]) => Base)[] > : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r4arg1 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >r4arg2 : new (...x: Base[]) => Base > : ^^^^^^^^ ^^ ^^^^^ var r5arg1: new (x: T, y: T) => T; >r5arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -474,7 +474,7 @@ module Errors { >foo11 : { (a2: new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r5arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r5a = [r5arg2, r5arg1]; >r5a : (new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] @@ -484,7 +484,7 @@ module Errors { >r5arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r5arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r5b = [r5arg1, r5arg2]; >r5b : (new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] @@ -492,7 +492,7 @@ module Errors { >[r5arg1, r5arg2] : (new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r5arg1 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r5arg2 : new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -506,7 +506,7 @@ module Errors { var r6arg2: new >(x: Array, y: Array) => T; >r6arg2 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -528,7 +528,7 @@ module Errors { >[r6arg2, r6arg1] : (new (x: Array, y: Array) => Array)[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r6arg2 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r6arg1 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ @@ -540,11 +540,11 @@ module Errors { >r6arg1 : new (x: Array, y: Array) => Array > : ^^^^^ ^^ ^^ ^^ ^^^^^ >r6arg2 : new >(x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r7arg1: new (x: { a: T; b: T }) => T; >r7arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -568,31 +568,31 @@ module Errors { >foo15 : { (a2: new (x: { a: string; b: number; }) => number): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r7arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7a = [r7arg2, r7arg1]; >r7a : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => number))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >[r7arg2, r7arg1] : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => number))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >r7arg2 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ >r7arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r7b = [r7arg1, r7arg2]; >r7b : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => number))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >[r7arg1, r7arg2] : ((new (x: { a: T; b: T; }) => T) | (new (x: { a: string; b: number; }) => number))[] -> : ^^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^ ^^^^^ ^^^^ >r7arg1 : new (x: { a: T; b: T; }) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r7arg2 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ var r7arg3: new (x: { a: T; b: T }) => number; >r7arg3 : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -606,31 +606,31 @@ module Errors { >foo15 : { (a2: new (x: { a: string; b: number; }) => number): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r7arg3 : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r7d = [r7arg2, r7arg3]; >r7d : ((new (x: { a: string; b: number; }) => number) | (new (x: { a: T; b: T; }) => number))[] -> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ >[r7arg2, r7arg3] : ((new (x: { a: string; b: number; }) => number) | (new (x: { a: T; b: T; }) => number))[] -> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ >r7arg2 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ >r7arg3 : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r7e = [r7arg3, r7arg2]; >r7e : ((new (x: { a: string; b: number; }) => number) | (new (x: { a: T; b: T; }) => number))[] -> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ >[r7arg3, r7arg2] : ((new (x: { a: string; b: number; }) => number) | (new (x: { a: T; b: T; }) => number))[] -> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ +> : ^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^^ >r7arg3 : new (x: { a: T; b: T; }) => number -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r7arg2 : new (x: { a: string; b: number; }) => number > : ^^^^^ ^^ ^^^^^ var r8arg: new (x: new (a: T) => T) => T[]; >r8arg : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -642,11 +642,11 @@ module Errors { >foo16 : { (a2: { new (x: { new (a: number): number; new (a?: number): number; }): number[]; new (x: { new (a: boolean): boolean; new (a?: boolean): boolean; }): boolean[]; }): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r8arg : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r9arg: new (x: new (a: T) => T) => any[]; >r9arg : new (x: new (a: T) => T) => any[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -660,7 +660,7 @@ module Errors { >foo17 : { (a2: { new (x: { new (a: T): T; new (a: T): T; }): any[]; new (x: { new (a: T): T; new (a: T): T; }): any[]; }): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r9arg : new (x: new (a: T) => T) => any[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ } module WithGenericSignaturesInBaseType { @@ -671,11 +671,11 @@ module WithGenericSignaturesInBaseType { >foo2 : { (a2: new (x: T) => T[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ >a2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ declare function foo2(a2: any): any; >foo2 : { (a2: new (x: T) => T[]): typeof a2; (a2: any): any; } @@ -684,7 +684,7 @@ module WithGenericSignaturesInBaseType { var r2arg2: new (x: T) => string[]; >r2arg2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -694,17 +694,17 @@ module WithGenericSignaturesInBaseType { >foo2 : { (a2: new (x: T) => T[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r2arg2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ declare function foo3(a2: new (x: T) => string[]): typeof a2; >foo3 : { (a2: new (x: T) => string[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ declare function foo3(a2: any): any; >foo3 : { (a2: new (x: T) => string[]): typeof a2; (a2: any): any; } @@ -713,7 +713,7 @@ module WithGenericSignaturesInBaseType { var r3arg2: new (x: T) => T[]; >r3arg2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -723,5 +723,5 @@ module WithGenericSignaturesInBaseType { >foo3 : { (a2: new (x: T) => string[]): typeof a2; (a2: any): any; } > : ^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >r3arg2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ } diff --git a/tests/baselines/reference/subtypingWithConstructSignatures4.types b/tests/baselines/reference/subtypingWithConstructSignatures4.types index ddb86070c245b..6994db857a00d 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures4.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures4.types @@ -37,7 +37,7 @@ declare function foo1(a: new (x: T) => T[]); >foo1 : { (a: new (x: T) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -50,7 +50,7 @@ declare function foo2(a2: new (x: T) => string[]); >foo2 : { (a2: new (x: T) => string[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -63,7 +63,7 @@ declare function foo3(a3: new (x: T) => void); >foo3 : { (a3: new (x: T) => void): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -76,7 +76,7 @@ declare function foo4(a4: new (x: T, y: U) => string); >foo4 : { (a4: new (x: T, y: U) => string): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -91,7 +91,7 @@ declare function foo5(a5: new (x: new (arg: T) => U) => T); >foo5 : { (a5: new (x: new (arg: T) => U) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a5 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -106,7 +106,7 @@ declare function foo6(a6: new (x: new (arg: T) => Derived) => T) >foo6 : { (a6: new (x: new (arg: T) => Derived) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a6 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => Derived > : ^^^^^ ^^ ^^^^^ >arg : T @@ -121,7 +121,7 @@ declare function foo11(a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Bas >foo11 : { (a11: new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -142,7 +142,7 @@ declare function foo15(a15: new (x: { a: T; b: T }) => T[]); >foo15 : { (a15: new (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -159,7 +159,7 @@ declare function foo16(a16: new (x: { a: T; b: T }) => T[]); >foo16 : { (a16: new (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -176,7 +176,7 @@ declare function foo17(a17: { >foo17 : { (a17: { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; }): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >a17 : { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (x: new (a: T) => T): T[]; >x : new (a: T) => T @@ -204,7 +204,7 @@ declare function foo18(a18: { new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -217,7 +217,7 @@ declare function foo18(a18: { }): any[]; new (x: { >x : { new (a: T): T; new (a: T): T; } -> : ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ new (a: T): T; >a : T @@ -236,13 +236,13 @@ declare function foo18(a: any): any; var r1arg: new (x: T) => T[]; >r1arg : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var r1arg2: new (x: T) => T[]; >r1arg2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -252,37 +252,37 @@ var r1 = foo1(r1arg); >foo1 : { (a: new (x: T) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r1arg : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1a = [r1arg, r1arg2]; >r1a : (new (x: T) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r1arg, r1arg2] : (new (x: T) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r1arg : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r1arg2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r1b = [r1arg2, r1arg]; >r1b : (new (x: T) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r1arg2, r1arg] : (new (x: T) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r1arg2 : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r1arg : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2arg: new (x: T) => string[]; >r2arg : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var r2arg2: new (x: T) => string[]; >r2arg2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -292,37 +292,37 @@ var r2 = foo2(r2arg); >foo2 : { (a2: new (x: T) => string[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r2arg : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2a = [r2arg, r2arg2]; >r2a : (new (x: T) => string[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r2arg, r2arg2] : (new (x: T) => string[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r2arg : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r2arg2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r2b = [r2arg2, r2arg]; >r2b : (new (x: T) => string[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r2arg2, r2arg] : (new (x: T) => string[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r2arg2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r2arg : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3arg: new (x: T) => T; >r3arg : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ var r3arg2: new (x: T) => void; >r3arg2 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ @@ -332,31 +332,31 @@ var r3 = foo3(r3arg); >foo3 : { (a3: new (x: T) => void): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r3arg : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3a = [r3arg, r3arg2]; >r3a : (new (x: T) => void)[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r3arg, r3arg2] : (new (x: T) => void)[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r3arg : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r3arg2 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r3b = [r3arg2, r3arg]; >r3b : (new (x: T) => void)[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r3arg2, r3arg] : (new (x: T) => void)[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r3arg2 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r3arg : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r4arg: new (x: T, y: U) => string; >r4arg : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -364,7 +364,7 @@ var r4arg: new (x: T, y: U) => string; var r4arg2: new (x: T, y: U) => string; >r4arg2 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -376,31 +376,31 @@ var r4 = foo4(r4arg); >foo4 : { (a4: new (x: T, y: U) => string): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r4arg : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r4a = [r4arg, r4arg2]; >r4a : (new (x: T, y: U) => string)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r4arg, r4arg2] : (new (x: T, y: U) => string)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r4arg : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >r4arg2 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r4b = [r4arg2, r4arg]; >r4b : (new (x: T, y: U) => string)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r4arg2, r4arg] : (new (x: T, y: U) => string)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r4arg2 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >r4arg : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r5arg: new (x: new (arg: T) => U) => T; >r5arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -408,7 +408,7 @@ var r5arg: new (x: new (arg: T) => U) => T; var r5arg2: new (x: new (arg: T) => U) => T; >r5arg2 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -420,31 +420,31 @@ var r5 = foo5(r5arg); >foo5 : { (a5: new (x: new (arg: T) => U) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r5arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r5a = [r5arg, r5arg2]; >r5a : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >[r5arg, r5arg2] : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >r5arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >r5arg2 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r5b = [r5arg2, r5arg]; >r5b : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >[r5arg2, r5arg] : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^ ^^ ^^^^^ ^^^ >r5arg2 : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >r5arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r6arg: new (x: new (arg: T) => U) => T; >r6arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => U > : ^^^^^ ^^ ^^^^^ >arg : T @@ -452,7 +452,7 @@ var r6arg: new (x: new (arg: T) => U) => T; var r6arg2: new (x: new (arg: T) => Derived) => T; >r6arg2 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : new (arg: T) => Derived > : ^^^^^ ^^ ^^^^^ >arg : T @@ -464,31 +464,31 @@ var r6 = foo6(r6arg); >foo6 : { (a6: new (x: new (arg: T) => Derived) => T): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r6arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r6a = [r6arg, r6arg2]; >r6a : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r6arg, r6arg2] : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r6arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r6arg2 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r6b = [r6arg2, r6arg]; >r6b : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r6arg2, r6arg] : (new (x: new (arg: T) => U) => T)[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r6arg2 : new (x: new (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r6arg : new (x: new (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r11arg: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; >r11arg : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -502,7 +502,7 @@ var r11arg: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; var r11arg2: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >r11arg2 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -520,31 +520,31 @@ var r11 = foo11(r11arg); >foo11 : { (a11: new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r11arg : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r11a = [r11arg, r11arg2]; >r11a : (new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r11arg, r11arg2] : (new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r11arg : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >r11arg2 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r11b = [r11arg2, r11arg]; >r11b : (new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r11arg2, r11arg] : (new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base)[] -> : ^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ ^^^ >r11arg2 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >r11arg : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ var r15arg: new (x: { a: U; b: V; }) => U[]; >r15arg : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : { a: U; b: V; } > : ^^^^^ ^^^^^ ^^^ >a : U @@ -554,7 +554,7 @@ var r15arg: new (x: { a: U; b: V; }) => U[]; var r15arg2: new (x: { a: T; b: T }) => T[]; >r15arg2 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -568,31 +568,31 @@ var r15 = foo15(r15arg); >foo15 : { (a15: new (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r15arg : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r15a = [r15arg, r15arg2]; >r15a : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r15arg, r15arg2] : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r15arg : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >r15arg2 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r15b = [r15arg2, r15arg]; >r15b : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >[r15arg2, r15arg] : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^ ^^ ^^^^^ ^^^ >r15arg2 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >r15arg : new (x: { a: U; b: V; }) => U[] -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ var r16arg: new (x: { a: T; b: T }) => T[]; >r16arg : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -602,7 +602,7 @@ var r16arg: new (x: { a: T; b: T }) => T[]; var r16arg2: new (x: { a: T; b: T }) => T[]; >r16arg2 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -616,31 +616,31 @@ var r16 = foo16(r16arg); >foo16 : { (a16: new (x: { a: T; b: T; }) => T[]): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r16arg : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r16a = [r16arg, r16arg2]; >r16a : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r16arg, r16arg2] : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r16arg : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r16arg2 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r16b = [r16arg2, r16arg]; >r16b : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >[r16arg2, r16arg] : (new (x: { a: T; b: T; }) => T[])[] -> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ +> : ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^^ >r16arg2 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >r16arg : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ var r17arg: new (x: new (a: T) => T) => T[]; >r17arg : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : new (a: T) => T > : ^^^^^ ^^ ^^^^^ >a : T @@ -652,13 +652,13 @@ var r17 = foo17(r17arg); >foo17 : { (a17: { new (x: new (a: T) => T): T[]; new (x: new (a: T) => T): T[]; }): any; (a: any): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^ ^^^ >r17arg : new (x: new (a: T) => T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ var r18arg: new (x: new (a: T) => T) => any[]; >r18arg : new (x: new (a: T) => T) => any[] > : ^^^^^ ^^ ^^^^^ >x : new (a: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >a : T > : ^ diff --git a/tests/baselines/reference/subtypingWithConstructSignatures5.types b/tests/baselines/reference/subtypingWithConstructSignatures5.types index c358622008e63..39b3d39564a3d 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures5.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures5.types @@ -166,7 +166,7 @@ interface A { // T interface B extends A { a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -176,25 +176,25 @@ interface I extends B { // N's a: new (x: T) => T[]; // ok, instantiation of N is a subtype of M, T is number >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; // ok >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => T; // ok since Base returns void >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => T; // ok, instantiation of N is a subtype of M, T is string, U is number >a4 : new (x: T, y: U) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -202,7 +202,7 @@ interface I extends B { a5: new (x: (arg: T) => U) => T; // ok, U is in a parameter position so inferences can be made >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -210,7 +210,7 @@ interface I extends B { a6: new (x: (arg: T) => U) => T; // ok, same as a5 but with object type hierarchy >a6 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -218,7 +218,7 @@ interface I extends B { a7: new (x: (arg: T) => U) => (r: T) => U; // ok >a7 : new (x: (arg: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -228,7 +228,7 @@ interface I extends B { a8: new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U; // ok >a8 : new (x: (arg: T) => U, y: (arg2: T) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -242,7 +242,7 @@ interface I extends B { a9: new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number }) => U) => (r: T) => U; // ok, same as a8 with compatible object literal >a9 : new (x: (arg: T) => U, y: (arg2: { foo: string; bing: number; }) => U) => (r: T) => U -> : ^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -260,13 +260,13 @@ interface I extends B { a10: new (...x: T[]) => T; // ok >a10 : new (...x: T[]) => T -> : ^^^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : T[] > : ^^^ a11: new (x: T, y: T) => T; // ok >a11 : new (x: T, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -274,7 +274,7 @@ interface I extends B { a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type >a12 : new >(x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -282,7 +282,7 @@ interface I extends B { a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds >a13 : new >(x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -290,7 +290,7 @@ interface I extends B { a14: new (x: { a: T; b: U }) => T; // ok >a14 : new (x: { a: T; b: U; }) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: U; } > : ^^^^^ ^^^^^ ^^^ >a : T diff --git a/tests/baselines/reference/subtypingWithConstructSignatures6.types b/tests/baselines/reference/subtypingWithConstructSignatures6.types index 4d1aea91bcf84..ead5ce375366a 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures6.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures6.types @@ -39,25 +39,25 @@ interface A { // T // M's a: new (x: T) => T[]; >a : new (x: T) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a2: new (x: T) => string[]; >a2 : new (x: T) => string[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -65,7 +65,7 @@ interface A { // T a5: new (x: (arg: T) => U) => T; >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -73,7 +73,7 @@ interface A { // T a6: new (x: (arg: T) => Derived) => T; >a6 : new (x: (arg: T) => Derived) => T -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : T @@ -81,7 +81,7 @@ interface A { // T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T @@ -95,7 +95,7 @@ interface A { // T a15: new (x: { a: T; b: T }) => T[]; >a15 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -105,7 +105,7 @@ interface A { // T a16: new (x: { a: T; b: T }) => T[]; >a16 : new (x: { a: T; b: T; }) => T[] -> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -142,7 +142,7 @@ interface I3 extends A { interface I4 extends A { a4: new (x: T, y: U) => string; >a4 : new (x: T, y: U) => string -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -152,7 +152,7 @@ interface I4 extends A { interface I5 extends A { a5: new (x: (arg: T) => U) => T; >a5 : new (x: (arg: T) => U) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -162,7 +162,7 @@ interface I5 extends A { interface I7 extends A { a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; >a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : { foo: T; } > : ^^^^^^^ ^^^ >foo : T diff --git a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types index 3a9928b1f7bd1..7313dde906162 100644 --- a/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types +++ b/tests/baselines/reference/subtypingWithConstructSignaturesWithSpecializedSignatures.types @@ -100,7 +100,7 @@ module MemberWithCallSignature { } a3: new (x: T) => void; >a3 : new (x: T) => void -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -124,7 +124,7 @@ module MemberWithCallSignature { a3: new (x: T) => string; // ok because base returns void >a3 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -145,7 +145,7 @@ module MemberWithCallSignature { } a2: new (x: T) => T; >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -165,7 +165,7 @@ module MemberWithCallSignature { // N's a2: new (x: T) => string; // error because base returns non-void; >a2 : new (x: T) => string -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } diff --git a/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.types b/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.types index b8c259a1bc176..f4e6f4e455017 100644 --- a/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.types +++ b/tests/baselines/reference/subtypingWithGenericCallSignaturesWithOptionalParameters.types @@ -193,23 +193,23 @@ module GenericSignaturesInvalid { interface Base2 { a: () => T; >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a2: (x?: T) => T; >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y?: T) => T; >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -217,7 +217,7 @@ module GenericSignaturesInvalid { a5: (x?: T, y?: T) => T; >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -378,23 +378,23 @@ module GenericSignaturesValid { interface Base2 { a: () => T; >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ a2: (x?: T) => T; >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ a3: (x: T) => T; >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ a4: (x: T, y?: T) => T; >a4 : (x: T, y?: T) => T -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -402,7 +402,7 @@ module GenericSignaturesValid { a5: (x?: T, y?: T) => T; >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -413,13 +413,13 @@ module GenericSignaturesValid { interface I1 extends Base2 { a: () => T; // ok, same number of required params >a : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } interface I2 extends Base2 { a: (x?: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ } @@ -427,7 +427,7 @@ module GenericSignaturesValid { interface I3 extends Base2 { a: (x: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -436,13 +436,13 @@ module GenericSignaturesValid { interface I4 extends Base2 { a2: () => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a2 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } interface I5 extends Base2 { a2: (x?: T) => T; // ok, identical >a2 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ } @@ -450,7 +450,7 @@ module GenericSignaturesValid { interface I6 extends Base2 { a2: (x: T) => T; // ok, same number of params >a2 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -459,13 +459,13 @@ module GenericSignaturesValid { interface I7 extends Base2 { a3: () => T; // error, no inferences for T so {} not assignable to {} in return type >a3 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } interface I8 extends Base2 { a3: (x?: T) => T; // ok, fewer required params >a3 : (x?: T) => T -> : ^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^^^^ >x : T > : ^ } @@ -473,7 +473,7 @@ module GenericSignaturesValid { interface I9 extends Base2 { a3: (x: T) => T; // ok, identical, same number of required params >a3 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -481,7 +481,7 @@ module GenericSignaturesValid { interface I10 extends Base2 { a3: (x: T, y: T) => T; // error, too many required params >a3 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -492,13 +492,13 @@ module GenericSignaturesValid { interface I11 extends Base2 { a4: () => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a4 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } interface I12 extends Base2 { a4: (x?: T, y?: T) => T; // ok, fewer required params >a4 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -508,7 +508,7 @@ module GenericSignaturesValid { interface I13 extends Base2 { a4: (x: T) => T; // ok, same T of required params >a4 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -516,7 +516,7 @@ module GenericSignaturesValid { interface I14 extends Base2 { a4: (x: T, y: T) => T; // error, too many required params >a4 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -527,13 +527,13 @@ module GenericSignaturesValid { interface I15 extends Base2 { a5: () => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a5 : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } interface I16 extends Base2 { a5: (x?: T, y?: T) => T; // ok, fewer required params >a5 : (x?: T, y?: T) => T -> : ^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -543,7 +543,7 @@ module GenericSignaturesValid { interface I17 extends Base2 { a5: (x: T) => T; // ok, all present params match >a5 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -551,7 +551,7 @@ module GenericSignaturesValid { interface I18 extends Base2 { a5: (x: T, y: T) => T; // ok, same number of params >a5 : (x: T, y: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.types b/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.types index 815642281b64a..8b8c2088f4929 100644 --- a/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.types +++ b/tests/baselines/reference/subtypingWithGenericConstructSignaturesWithOptionalParameters.types @@ -193,23 +193,23 @@ module GenericSignaturesInvalid { interface Base2 { a: new () => T; >a : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ a2: new (x?: T) => T; >a2 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ a3: new (x: T) => T; >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y?: T) => T; >a4 : new (x: T, y?: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -217,7 +217,7 @@ module GenericSignaturesInvalid { a5: new (x?: T, y?: T) => T; >a5 : new (x?: T, y?: T) => T -> : ^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -378,23 +378,23 @@ module GenericSignaturesValid { interface Base2 { a: new () => T; >a : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ a2: new (x?: T) => T; >a2 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ a3: new (x: T) => T; >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ a4: new (x: T, y?: T) => T; >a4 : new (x: T, y?: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -402,7 +402,7 @@ module GenericSignaturesValid { a5: new (x?: T, y?: T) => T; >a5 : new (x?: T, y?: T) => T -> : ^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -413,13 +413,13 @@ module GenericSignaturesValid { interface I1 extends Base2 { a: new () => T; // ok, same number of required params >a : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ } interface I2 extends Base2 { a: new (x?: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ } @@ -427,7 +427,7 @@ module GenericSignaturesValid { interface I3 extends Base2 { a: new (x: T) => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -436,13 +436,13 @@ module GenericSignaturesValid { interface I4 extends Base2 { a2: new () => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a2 : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ } interface I5 extends Base2 { a2: new (x?: T) => T; // ok, identical >a2 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ } @@ -450,7 +450,7 @@ module GenericSignaturesValid { interface I6 extends Base2 { a2: new (x: T) => T; // ok, same number of params >a2 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -459,13 +459,13 @@ module GenericSignaturesValid { interface I7 extends Base2 { a3: new () => T; // ok, fewer required params >a3 : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ } interface I8 extends Base2 { a3: new (x?: T) => T; // error, no inferences for T so {} not assignable to {} in return type >a3 : new (x?: T) => T -> : ^^^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^^^^ >x : T > : ^ } @@ -473,7 +473,7 @@ module GenericSignaturesValid { interface I9 extends Base2 { a3: new (x: T) => T; // ok, identical, same number of required params >a3 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -481,7 +481,7 @@ module GenericSignaturesValid { interface I10 extends Base2 { a3: new (x: T, y: T) => T; // error, too many required params >a3 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -492,13 +492,13 @@ module GenericSignaturesValid { interface I11 extends Base2 { a4: new () => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a4 : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ } interface I12 extends Base2 { a4: new (x?: T, y?: T) => T; // ok, fewer required params >a4 : new (x?: T, y?: T) => T -> : ^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -508,7 +508,7 @@ module GenericSignaturesValid { interface I13 extends Base2 { a4: new (x: T) => T; // ok, same T of required params >a4 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -516,7 +516,7 @@ module GenericSignaturesValid { interface I14 extends Base2 { a4: new (x: T, y: T) => T; // ok, same number of params >a4 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -527,13 +527,13 @@ module GenericSignaturesValid { interface I15 extends Base2 { a5: new () => T; // error, not identical and contextual signature instatiation can't make inference from T to T >a5 : new () => T -> : ^^^^^ ^^^^^^^ +> : ^^^^^^^^^^^^^ } interface I16 extends Base2 { a5: new (x?: T, y?: T) => T; // ok, fewer required params >a5 : new (x?: T, y?: T) => T -> : ^^^^^ ^^ ^^^ ^^ ^^^ ^^^^^ +> : ^^^^^^^^ ^^^ ^^ ^^^ ^^^^^ >x : T > : ^ >y : T @@ -543,7 +543,7 @@ module GenericSignaturesValid { interface I17 extends Base2 { a5: new (x: T) => T; // ok, all present params match >a5 : new (x: T) => T -> : ^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^^^^ >x : T > : ^ } @@ -551,7 +551,7 @@ module GenericSignaturesValid { interface I18 extends Base2 { a5: new (x: T, y: T) => T; // ok, same number of params >a5 : new (x: T, y: T) => T -> : ^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T diff --git a/tests/baselines/reference/subtypingWithOptionalProperties.types b/tests/baselines/reference/subtypingWithOptionalProperties.types index 4ae83a6d2ec3a..0306c4ce20615 100644 --- a/tests/baselines/reference/subtypingWithOptionalProperties.types +++ b/tests/baselines/reference/subtypingWithOptionalProperties.types @@ -6,7 +6,7 @@ // returns { s?: number; } function f(a: T) { >f : (a: T) => { s?: number; } -> : ^ ^^ ^^ ^^^^^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ ^^^ >a : T > : ^ @@ -29,7 +29,7 @@ var r = f({ s: new Object() }); // ok >f({ s: new Object() }) : { s?: number; } > : ^^^^^^ ^^^ >f : (a: T) => { s?: number; } -> : ^ ^^ ^^ ^^^^^^^^^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ ^^^ >{ s: new Object() } : { s: Object; } > : ^^^^^^^^^^^^^^ >s : Object diff --git a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType1.types b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType1.types index 882f73d769dc0..fce75f4e2a4f6 100644 --- a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType1.types +++ b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType1.types @@ -7,7 +7,7 @@ declare class B { m(): B; >m : () => B -> : ^ ^^^^^^^ +> : ^^^^^^^^^ static g(): B; >g : () => B diff --git a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType2.types b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType2.types index fd01494aafd24..11a807cd8ad67 100644 --- a/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType2.types +++ b/tests/baselines/reference/superCallFromClassThatDerivesFromGenericType2.types @@ -7,7 +7,7 @@ declare class B { m(): B; >m : () => B -> : ^ ^^^^^^^ +> : ^^^^^^^^^ } class D extends B { diff --git a/tests/baselines/reference/superWithGenerics.types b/tests/baselines/reference/superWithGenerics.types index 4a8a41593415f..9b3d239a17806 100644 --- a/tests/baselines/reference/superWithGenerics.types +++ b/tests/baselines/reference/superWithGenerics.types @@ -7,7 +7,7 @@ declare class B { m(): B; >m : () => B -> : ^ ^^^^^^^ +> : ^^^^^^^^^ static g(): B; >g : () => B diff --git a/tests/baselines/reference/superWithTypeArgument3.types b/tests/baselines/reference/superWithTypeArgument3.types index ef1dfa116dfa8..18284dfcde66b 100644 --- a/tests/baselines/reference/superWithTypeArgument3.types +++ b/tests/baselines/reference/superWithTypeArgument3.types @@ -11,7 +11,7 @@ class C { bar(x: U) { } >bar : (x: U) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : U > : ^ } diff --git a/tests/baselines/reference/switchStatements.types b/tests/baselines/reference/switchStatements.types index f58be32ebe6f9..6410435d2fe39 100644 --- a/tests/baselines/reference/switchStatements.types +++ b/tests/baselines/reference/switchStatements.types @@ -246,9 +246,9 @@ switch (((x: T) => '')(1)) { } >((x: T) => '')(1) : string > : ^^^^^^ >((x: T) => '') : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >(x: T) => '' : (x: T) => string -> : ^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^ >x : T > : ^ >'' : "" diff --git a/tests/baselines/reference/switchWithConstrainedTypeVariable.types b/tests/baselines/reference/switchWithConstrainedTypeVariable.types index 478e1899b3203..0211955af4a3d 100644 --- a/tests/baselines/reference/switchWithConstrainedTypeVariable.types +++ b/tests/baselines/reference/switchWithConstrainedTypeVariable.types @@ -5,7 +5,7 @@ function function1(key: T) { >function1 : (key: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : T > : ^ diff --git a/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.types b/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.types index 5e19bc3755743..a1d063e575334 100644 --- a/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.types +++ b/tests/baselines/reference/symbolLinkDeclarationEmitModuleNames.types @@ -24,11 +24,11 @@ export const CONTROLLER_CLASS = BindingKey.create(null as any); >BindingKey.create(null as any) : BindingKey > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >BindingKey.create : >(ctor: T) => BindingKey -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >BindingKey : typeof BindingKey > : ^^^^^^^^^^^^^^^^^ >create : >(ctor: T) => BindingKey -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >null as any : any === monorepo/context/src/value-promise.ts === @@ -53,7 +53,7 @@ export class BindingKey { static create>(ctor: T) { >create : >(ctor: T) => BindingKey -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ >ctor : T > : ^ diff --git a/tests/baselines/reference/symbolLinkDeclarationEmitModuleNamesRootDir.types b/tests/baselines/reference/symbolLinkDeclarationEmitModuleNamesRootDir.types index 8b1ba367165b6..b94f9d35a9eb6 100644 --- a/tests/baselines/reference/symbolLinkDeclarationEmitModuleNamesRootDir.types +++ b/tests/baselines/reference/symbolLinkDeclarationEmitModuleNamesRootDir.types @@ -24,11 +24,11 @@ export const CONTROLLER_CLASS = BindingKey.create(null as any); >BindingKey.create(null as any) : BindingKey > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >BindingKey.create : >(ctor: T) => BindingKey -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ >BindingKey : typeof BindingKey > : ^^^^^^^^^^^^^^^^^ >create : >(ctor: T) => BindingKey -> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^^^^ >null as any : any === /monorepo/context/src/value-promise.d.ts === @@ -53,7 +53,7 @@ export declare class BindingKey { static create>(ctor: T): BindingKey; >create : >(ctor: T) => BindingKey -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >ctor : T > : ^ } diff --git a/tests/baselines/reference/symbolProperty21.types b/tests/baselines/reference/symbolProperty21.types index 12c806099fec0..f2a93a0b8962c 100644 --- a/tests/baselines/reference/symbolProperty21.types +++ b/tests/baselines/reference/symbolProperty21.types @@ -25,7 +25,7 @@ interface I { declare function foo(p: I): { t: T; u: U }; >foo : (p: I) => { t: T; u: U; } -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >p : I > : ^^^^^^^ >t : T @@ -37,7 +37,7 @@ foo({ >foo({ [Symbol.isConcatSpreadable]: "", [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true}) : { t: boolean; u: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : (p: I) => { t: T; u: U; } -> : ^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >{ [Symbol.isConcatSpreadable]: "", [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true} : { [Symbol.isConcatSpreadable]: string; [Symbol.toPrimitive]: number; [Symbol.unscopables]: true; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/symbolProperty22.types b/tests/baselines/reference/symbolProperty22.types index 6e95426ea4b53..288120fa50b5a 100644 --- a/tests/baselines/reference/symbolProperty22.types +++ b/tests/baselines/reference/symbolProperty22.types @@ -17,7 +17,7 @@ interface I { declare function foo(p1: T, p2: I): U; >foo : (p1: T, p2: I) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >p1 : T > : ^ >p2 : I @@ -27,7 +27,7 @@ foo("", { [Symbol.unscopables]: s => s.length }); >foo("", { [Symbol.unscopables]: s => s.length }) : number > : ^^^^^^ >foo : (p1: T, p2: I) => U -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >"" : "" > : ^^ >{ [Symbol.unscopables]: s => s.length } : { [Symbol.unscopables]: (s: string) => number; } diff --git a/tests/baselines/reference/symbolProperty61.types b/tests/baselines/reference/symbolProperty61.types index 81c46783d7f98..31250376c1abc 100644 --- a/tests/baselines/reference/symbolProperty61.types +++ b/tests/baselines/reference/symbolProperty61.types @@ -92,7 +92,7 @@ type InteropObservable = { function from(obs: InteropObservable) { >from : (obs: InteropObservable) => { subscribe(next: (val: T) => void): void; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^ ^^^ >obs : InteropObservable > : ^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ from(new MyObservable(42)) >from(new MyObservable(42)) : { subscribe(next: (val: number) => void): void; } > : ^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^ ^^^ ^^^ >from : (obs: InteropObservable) => { subscribe(next: (val: T) => void): void; } -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^ ^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^ ^^^ ^^^ >new MyObservable(42) : MyObservable > : ^^^^^^^^^^^^^^^^^^^^ >MyObservable : typeof MyObservable diff --git a/tests/baselines/reference/taggedPrimitiveNarrowing.types b/tests/baselines/reference/taggedPrimitiveNarrowing.types index e2fdf7a4288d9..5cd9c7f6799ec 100644 --- a/tests/baselines/reference/taggedPrimitiveNarrowing.types +++ b/tests/baselines/reference/taggedPrimitiveNarrowing.types @@ -44,7 +44,7 @@ function getHashLength(hash: Hash): number { function getHashLength2(hash: string & T): number { >getHashLength2 : (hash: string & T) => number -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >__tag__ : unknown > : ^^^^^^^ >hash : string & T diff --git a/tests/baselines/reference/taggedTemplateContextualTyping1.types b/tests/baselines/reference/taggedTemplateContextualTyping1.types index fb0e8c4e3fa9b..a2f92316bc902 100644 --- a/tests/baselines/reference/taggedTemplateContextualTyping1.types +++ b/tests/baselines/reference/taggedTemplateContextualTyping1.types @@ -5,15 +5,15 @@ type FuncType = (x: (p: T) => T) => typeof x; >FuncType : FuncType > : ^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : T > : ^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ function tempTag1(templateStrs: TemplateStringsArray, f: FuncType, x: T): T; >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T): T; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >templateStrs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >f : FuncType @@ -23,7 +23,7 @@ function tempTag1(templateStrs: TemplateStringsArray, f: FuncType, x: T): T; function tempTag1(templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T): T; >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T_1): T_1; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >templateStrs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >f : FuncType @@ -35,7 +35,7 @@ function tempTag1(templateStrs: TemplateStringsArray, f: FuncType, h: FuncTyp function tempTag1(...rest: any[]): T { >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T_1): T_1; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T_1): T_1; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >rest : any[] > : ^^^^^ @@ -52,21 +52,21 @@ tempTag1 `${ x => { x(undefined); return x; } }${ 10 } >tempTag1 `${ x => { x(undefined); return x; } }${ 10 }` : 10 > : ^^ >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T): T; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => { x(undefined); return x; } }${ 10 }` : string > : ^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ @@ -74,103 +74,103 @@ tempTag1 `${ x => { x(undefined); return x; } }${ y => >tempTag1 `${ x => { x(undefined); return x; } }${ y => { y(undefined); return y; } }${ 10 }` : 10 > : ^^ >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T): T; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => { x(undefined); return x; } }${ y => { y(undefined); return y; } }${ 10 }` : string > : ^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y => { y(undefined); return y; } : (y: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y(undefined) : number > : ^^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >10 : 10 > : ^^ tempTag1 `${ x => { x(undefined); return x; } }${ (y: (p: T) => T) => { y(undefined); return y } }${ undefined }`; >tempTag1 `${ x => { x(undefined); return x; } }${ (y: (p: T) => T) => { y(undefined); return y } }${ undefined }` : any >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T): T; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ x => { x(undefined); return x; } }${ (y: (p: T) => T) => { y(undefined); return y } }${ undefined }` : string > : ^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >(y: (p: T) => T) => { y(undefined); return y } : (y: (p: T) => T) => (p: T) => T -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : T > : ^ >y(undefined) : number > : ^^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ tempTag1 `${ (x: (p: T) => T) => { x(undefined); return x; } }${ y => { y(undefined); return y; } }${ undefined }`; >tempTag1 `${ (x: (p: T) => T) => { x(undefined); return x; } }${ y => { y(undefined); return y; } }${ undefined }` : any >tempTag1 : { (templateStrs: TemplateStringsArray, f: FuncType, x: T): T; (templateStrs: TemplateStringsArray, f: FuncType, h: FuncType, x: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ (x: (p: T) => T) => { x(undefined); return x; } }${ y => { y(undefined); return y; } }${ undefined }` : string > : ^^^^^^ >(x: (p: T) => T) => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : T > : ^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y => { y(undefined); return y; } : (y: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >y(undefined) : number > : ^^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >y : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ diff --git a/tests/baselines/reference/taggedTemplateContextualTyping2.types b/tests/baselines/reference/taggedTemplateContextualTyping2.types index 692472f3dbb62..afa3133e8605e 100644 --- a/tests/baselines/reference/taggedTemplateContextualTyping2.types +++ b/tests/baselines/reference/taggedTemplateContextualTyping2.types @@ -5,21 +5,21 @@ type FuncType1 = (x: (p: T) => T) => typeof x; >FuncType1 : FuncType1 > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >p : T > : ^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ type FuncType2 = (x: (p: T) => T) => typeof x; >FuncType2 : FuncType2 > : ^^^^^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >p : T > : ^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ function tempTag2(templateStrs: TemplateStringsArray, f: FuncType1, x: number): number; >tempTag2 : { (templateStrs: TemplateStringsArray, f: FuncType1, x: number): number; (templateStrs: TemplateStringsArray, f: FuncType2, h: FuncType2, x: string): string; } @@ -66,17 +66,17 @@ tempTag2 `${ x => { x(undefined); return x; } }${ 0 }`; >`${ x => { x(undefined); return x; } }${ 0 }` : string > : ^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^ ^^ ^^ ^^^^^ ^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x(undefined) : number > : ^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >0 : 0 > : ^ @@ -88,27 +88,27 @@ tempTag2 `${ x => { x(undefined); return x; } }${ y => { y`${ x => { x(undefined); return x; } }${ y => { y(null); return y; } }${ "hello" }` : string > : ^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x(undefined) : string > : ^^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >y => { y(null); return y; } : (y: (p: T) => T) => (p: T) => T -> : ^ ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ >y : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >y(null) : number > : ^^^^^^ >y : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >y : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ @@ -120,17 +120,17 @@ tempTag2 `${ x => { x(undefined); return x; } }${ undefined }${ >`${ x => { x(undefined); return x; } }${ undefined }${ "hello" }` : string > : ^^^^^^ >x => { x(undefined); return x; } : (x: (p: T) => T) => (p: T) => T -> : ^ ^^^^^^ ^^ ^^ ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >x(undefined) : string > : ^^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >x : (p: T) => T -> : ^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^^^^ >undefined : undefined > : ^^^^^^^^^ >"hello" : "hello" diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.types b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.types index afa9e6413589d..f925cbc695b3a 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.types +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.types @@ -4,7 +4,7 @@ // Generic tag with one parameter function noParams(n: T) { } >noParams : (n: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >n : T > : ^ @@ -12,7 +12,7 @@ noParams ``; >noParams `` : void > : ^^^^ >noParams : (n: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >`` : "" > : ^^ @@ -34,7 +34,7 @@ noGenericParams ``; // Generic tag with multiple type parameters and only one used in parameter type annotation function someGenerics1a(n: T, m: number) { } >someGenerics1a : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : number @@ -44,7 +44,7 @@ someGenerics1a `${3}`; >someGenerics1a `${3}` : void > : ^^^^ >someGenerics1a : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${3}` : string > : ^^^^^^ >3 : 3 @@ -52,7 +52,7 @@ someGenerics1a `${3}`; function someGenerics1b(n: TemplateStringsArray, m: U) { } >someGenerics1b : (n: TemplateStringsArray, m: U) => void -> : ^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >m : U @@ -62,7 +62,7 @@ someGenerics1b `${3}`; >someGenerics1b `${3}` : void > : ^^^^ >someGenerics1b : (n: TemplateStringsArray, m: U) => void -> : ^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${3}` : string > : ^^^^^^ >3 : 3 @@ -71,7 +71,7 @@ someGenerics1b `${3}`; // Generic tag with argument of function type whose parameter is of type parameter type function someGenerics2a(strs: TemplateStringsArray, n: (x: T) => void) { } >someGenerics2a : (strs: TemplateStringsArray, n: (x: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : (x: T) => void @@ -83,7 +83,7 @@ someGenerics2a `${(n: string) => n}`; >someGenerics2a `${(n: string) => n}` : void > : ^^^^ >someGenerics2a : (strs: TemplateStringsArray, n: (x: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${(n: string) => n}` : string > : ^^^^^^ >(n: string) => n : (n: string) => string @@ -95,7 +95,7 @@ someGenerics2a `${(n: string) => n}`; function someGenerics2b(strs: TemplateStringsArray, n: (x: T, y: U) => void) { } >someGenerics2b : (strs: TemplateStringsArray, n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : (x: T, y: U) => void @@ -109,7 +109,7 @@ someGenerics2b `${ (n: string, x: number) => n }`; >someGenerics2b `${ (n: string, x: number) => n }` : void > : ^^^^ >someGenerics2b : (strs: TemplateStringsArray, n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ (n: string, x: number) => n }` : string > : ^^^^^^ >(n: string, x: number) => n : (n: string, x: number) => string @@ -124,7 +124,7 @@ someGenerics2b `${ (n: string, x: number) => 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: TemplateStringsArray, producer: () => T) { } >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >producer : () => T @@ -134,7 +134,7 @@ someGenerics3 `${() => ''}`; >someGenerics3 `${() => ''}` : void > : ^^^^ >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${() => ''}` : string > : ^^^^^^ >() => '' : () => string @@ -146,7 +146,7 @@ someGenerics3 `${() => undefined}`; >someGenerics3 `${() => undefined}` : void > : ^^^^ >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${() => undefined}` : string > : ^^^^^^ >() => undefined : () => any @@ -158,7 +158,7 @@ someGenerics3 `${() => 3}`; >someGenerics3 `${() => 3}` : void > : ^^^^ >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${() => 3}` : string > : ^^^^^^ >() => 3 : () => number @@ -169,7 +169,7 @@ someGenerics3 `${() => 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: TemplateStringsArray, n: T, f: (x: U) => void) { } >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -183,7 +183,7 @@ someGenerics4 `${4}${ () => null }`; >someGenerics4 `${4}${ () => null }` : void > : ^^^^ >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${4}${ () => null }` : string > : ^^^^^^ >4 : 4 @@ -195,7 +195,7 @@ someGenerics4 `${''}${ () => 3 }`; >someGenerics4 `${''}${ () => 3 }` : void > : ^^^^ >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${''}${ () => 3 }` : string > : ^^^^^^ >'' : "" @@ -209,14 +209,14 @@ someGenerics4 `${ null }${ null }`; >someGenerics4 `${ null }${ null }` : void > : ^^^^ >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ null }${ null }` : string > : ^^^^^^ // 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: TemplateStringsArray, n: T, f: (x: U) => void) { } >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -230,7 +230,7 @@ someGenerics5 `${ 4 } ${ () => null }`; >someGenerics5 `${ 4 } ${ () => null }` : void > : ^^^^ >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ 4 } ${ () => null }` : string > : ^^^^^^ >4 : 4 @@ -242,7 +242,7 @@ someGenerics5 `${ '' }${ () => 3 }`; >someGenerics5 `${ '' }${ () => 3 }` : void > : ^^^^ >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ '' }${ () => 3 }` : string > : ^^^^^^ >'' : "" @@ -256,14 +256,14 @@ someGenerics5 `${null}${null}`; >someGenerics5 `${null}${null}` : void > : ^^^^ >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${null}${null}` : string > : ^^^^^^ // Generic tag with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) { } >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >a : (a: A) => A @@ -283,7 +283,7 @@ someGenerics6 `${ n => n }${ n => n}${ n => n}`; >someGenerics6 `${ n => n }${ n => n}${ n => n}` : void > : ^^^^ >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n}${ n => n}` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -309,7 +309,7 @@ someGenerics6 `${ n => n }${ n => n}${ n => n}`; >someGenerics6 `${ n => n }${ n => n}${ n => n}` : void > : ^^^^ >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n}${ n => n}` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -335,7 +335,7 @@ someGenerics6 `${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }`; >someGenerics6 `${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }` : void > : ^^^^ >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }` : string > : ^^^^^^ >(n: number) => n : (n: number) => number @@ -360,7 +360,7 @@ someGenerics6 `${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }`; // Generic tag with multiple arguments of function types that each have parameters of different generic type function someGenerics7(strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) { } >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >a : (a: A) => A @@ -380,7 +380,7 @@ someGenerics7 `${ n => n }${ n => n }${ n => n }`; >someGenerics7 `${ n => n }${ n => n }${ n => n }` : void > : ^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n }${ n => n }` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -406,7 +406,7 @@ someGenerics7 `${ n => n }${ n => n }${ n => n }`; >someGenerics7 `${ n => n }${ n => n }${ n => n }` : void > : ^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n }${ n => n }` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -432,7 +432,7 @@ someGenerics7 `${(n: number) => n}${ (n: string) => n}${ (n: number) => n}`; >someGenerics7 `${(n: number) => n}${ (n: string) => n}${ (n: number) => n}` : void > : ^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${(n: number) => n}${ (n: string) => n}${ (n: number) => n}` : string > : ^^^^^^ >(n: number) => n : (n: number) => number @@ -457,7 +457,7 @@ someGenerics7 `${(n: number) => n}${ (n: string) => n}${ (n: number) => n}`; // Generic tag with argument of generic function type function someGenerics8(strs: TemplateStringsArray, n: T): T { return n; } >someGenerics8 : (strs: TemplateStringsArray, n: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -467,28 +467,28 @@ function someGenerics8(strs: TemplateStringsArray, n: T): T { return n; } var x = someGenerics8 `${ someGenerics7 }`; >x : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >someGenerics8 `${ someGenerics7 }` : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >someGenerics8 : (strs: TemplateStringsArray, n: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >`${ someGenerics7 }` : string > : ^^^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ x `${null}${null}${null}`; >x `${null}${null}${null}` : void > : ^^^^ >x : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${null}${null}${null}` : string > : ^^^^^^ // Generic tag with multiple parameters of generic type passed arguments with no best common type function someGenerics9(strs: TemplateStringsArray, a: T, b: T, c: T): T { >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >a : T @@ -506,7 +506,7 @@ var a9a = someGenerics9 `${ '' }${ 0 }${ [] }`; >someGenerics9 `${ '' }${ 0 }${ [] }` : "" > : ^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ '' }${ 0 }${ [] }` : string > : ^^^^^^ >'' : "" @@ -546,7 +546,7 @@ var a9e = someGenerics9 `${ undefined }${ { x: 6, z: new Date() } }${ { x: 6, y: >someGenerics9 `${ undefined }${ { x: 6, z: new Date() } }${ { x: 6, y: '' } }` : { x: number; z: Date; y?: undefined; } | { x: number; y: string; z?: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ undefined }${ { x: 6, z: new Date() } }${ { x: 6, y: '' } }` : string > : ^^^^^^ >undefined : undefined @@ -585,7 +585,7 @@ var a9d = someGenerics9 `${ { x: 3 }}${ { x: 6 }}${ { x: 6 } }`; >someGenerics9 `${ { x: 3 }}${ { x: 6 }}${ { x: 6 } }` : { x: number; } > : ^^^^^^^^^^^^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ { x: 3 }}${ { x: 6 }}${ { x: 6 } }` : string > : ^^^^^^ >{ x: 3 } : { x: number; } @@ -624,7 +624,7 @@ var a = someGenerics9 `${ 7 }${ anyVar }${ 4 }`; >someGenerics9 `${ 7 }${ anyVar }${ 4 }` : any > : ^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ 7 }${ anyVar }${ 4 }` : string > : ^^^^^^ >7 : 7 @@ -645,7 +645,7 @@ var arr = someGenerics9 `${ [] }${ null }${ undefined }`; >someGenerics9 `${ [] }${ null }${ undefined }` : any[] > : ^^^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ [] }${ null }${ undefined }` : string > : ^^^^^^ >[] : undefined[] diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.types b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.types index 47b2ba7eb753b..499a4fe126d05 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.types +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.types @@ -4,7 +4,7 @@ // Generic tag with one parameter function noParams(n: T) { } >noParams : (n: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >n : T > : ^ @@ -12,7 +12,7 @@ noParams ``; >noParams `` : void > : ^^^^ >noParams : (n: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >`` : "" > : ^^ @@ -34,7 +34,7 @@ noGenericParams ``; // Generic tag with multiple type parameters and only one used in parameter type annotation function someGenerics1a(n: T, m: number) { } >someGenerics1a : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : T > : ^ >m : number @@ -44,7 +44,7 @@ someGenerics1a `${3}`; >someGenerics1a `${3}` : void > : ^^^^ >someGenerics1a : (n: T, m: number) => void -> : ^ ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${3}` : string > : ^^^^^^ >3 : 3 @@ -52,7 +52,7 @@ someGenerics1a `${3}`; function someGenerics1b(n: TemplateStringsArray, m: U) { } >someGenerics1b : (n: TemplateStringsArray, m: U) => void -> : ^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >n : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >m : U @@ -62,7 +62,7 @@ someGenerics1b `${3}`; >someGenerics1b `${3}` : void > : ^^^^ >someGenerics1b : (n: TemplateStringsArray, m: U) => void -> : ^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${3}` : string > : ^^^^^^ >3 : 3 @@ -71,7 +71,7 @@ someGenerics1b `${3}`; // Generic tag with argument of function type whose parameter is of type parameter type function someGenerics2a(strs: TemplateStringsArray, n: (x: T) => void) { } >someGenerics2a : (strs: TemplateStringsArray, n: (x: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : (x: T) => void @@ -83,7 +83,7 @@ someGenerics2a `${(n: string) => n}`; >someGenerics2a `${(n: string) => n}` : void > : ^^^^ >someGenerics2a : (strs: TemplateStringsArray, n: (x: T) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${(n: string) => n}` : string > : ^^^^^^ >(n: string) => n : (n: string) => string @@ -95,7 +95,7 @@ someGenerics2a `${(n: string) => n}`; function someGenerics2b(strs: TemplateStringsArray, n: (x: T, y: U) => void) { } >someGenerics2b : (strs: TemplateStringsArray, n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : (x: T, y: U) => void @@ -109,7 +109,7 @@ someGenerics2b `${ (n: string, x: number) => n }`; >someGenerics2b `${ (n: string, x: number) => n }` : void > : ^^^^ >someGenerics2b : (strs: TemplateStringsArray, n: (x: T, y: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ (n: string, x: number) => n }` : string > : ^^^^^^ >(n: string, x: number) => n : (n: string, x: number) => string @@ -124,7 +124,7 @@ someGenerics2b `${ (n: string, x: number) => 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: TemplateStringsArray, producer: () => T) { } >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >producer : () => T @@ -134,7 +134,7 @@ someGenerics3 `${() => ''}`; >someGenerics3 `${() => ''}` : void > : ^^^^ >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${() => ''}` : string > : ^^^^^^ >() => '' : () => string @@ -146,7 +146,7 @@ someGenerics3 `${() => undefined}`; >someGenerics3 `${() => undefined}` : void > : ^^^^ >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${() => undefined}` : string > : ^^^^^^ >() => undefined : () => any @@ -158,7 +158,7 @@ someGenerics3 `${() => 3}`; >someGenerics3 `${() => 3}` : void > : ^^^^ >someGenerics3 : (strs: TemplateStringsArray, producer: () => T) => void -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^^^^^ >`${() => 3}` : string > : ^^^^^^ >() => 3 : () => number @@ -169,7 +169,7 @@ someGenerics3 `${() => 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: TemplateStringsArray, n: T, f: (x: U) => void) { } >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -183,7 +183,7 @@ someGenerics4 `${4}${ () => null }`; >someGenerics4 `${4}${ () => null }` : void > : ^^^^ >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${4}${ () => null }` : string > : ^^^^^^ >4 : 4 @@ -195,7 +195,7 @@ someGenerics4 `${''}${ () => 3 }`; >someGenerics4 `${''}${ () => 3 }` : void > : ^^^^ >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${''}${ () => 3 }` : string > : ^^^^^^ >'' : "" @@ -209,14 +209,14 @@ someGenerics4 `${ null }${ null }`; >someGenerics4 `${ null }${ null }` : void > : ^^^^ >someGenerics4 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ null }${ null }` : string > : ^^^^^^ // 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: TemplateStringsArray, n: T, f: (x: U) => void) { } >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -230,7 +230,7 @@ someGenerics5 `${ 4 } ${ () => null }`; >someGenerics5 `${ 4 } ${ () => null }` : void > : ^^^^ >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ 4 } ${ () => null }` : string > : ^^^^^^ >4 : 4 @@ -242,7 +242,7 @@ someGenerics5 `${ '' }${ () => 3 }`; >someGenerics5 `${ '' }${ () => 3 }` : void > : ^^^^ >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ '' }${ () => 3 }` : string > : ^^^^^^ >'' : "" @@ -256,14 +256,14 @@ someGenerics5 `${null}${null}`; >someGenerics5 `${null}${null}` : void > : ^^^^ >someGenerics5 : (strs: TemplateStringsArray, n: T, f: (x: U) => void) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${null}${null}` : string > : ^^^^^^ // Generic tag with multiple arguments of function types that each have parameters of the same generic type function someGenerics6(strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) { } >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >a : (a: A) => A @@ -283,7 +283,7 @@ someGenerics6 `${ n => n }${ n => n}${ n => n}`; >someGenerics6 `${ n => n }${ n => n}${ n => n}` : void > : ^^^^ >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n}${ n => n}` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -309,7 +309,7 @@ someGenerics6 `${ n => n }${ n => n}${ n => n}`; >someGenerics6 `${ n => n }${ n => n}${ n => n}` : void > : ^^^^ >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n}${ n => n}` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -335,7 +335,7 @@ someGenerics6 `${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }`; >someGenerics6 `${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }` : void > : ^^^^ >someGenerics6 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: A) => A, c: (c: A) => A) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }` : string > : ^^^^^^ >(n: number) => n : (n: number) => number @@ -360,7 +360,7 @@ someGenerics6 `${ (n: number) => n }${ (n: number) => n }${ (n: number) => n }`; // Generic tag with multiple arguments of function types that each have parameters of different generic type function someGenerics7(strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) { } >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >a : (a: A) => A @@ -380,7 +380,7 @@ someGenerics7 `${ n => n }${ n => n }${ n => n }`; >someGenerics7 `${ n => n }${ n => n }${ n => n }` : void > : ^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n }${ n => n }` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -406,7 +406,7 @@ someGenerics7 `${ n => n }${ n => n }${ n => n }`; >someGenerics7 `${ n => n }${ n => n }${ n => n }` : void > : ^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${ n => n }${ n => n }${ n => n }` : string > : ^^^^^^ >n => n : (n: unknown) => unknown @@ -432,7 +432,7 @@ someGenerics7 `${(n: number) => n}${ (n: string) => n}${ (n: number) => n}`; >someGenerics7 `${(n: number) => n}${ (n: string) => n}${ (n: number) => n}` : void > : ^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${(n: number) => n}${ (n: string) => n}${ (n: number) => n}` : string > : ^^^^^^ >(n: number) => n : (n: number) => number @@ -457,7 +457,7 @@ someGenerics7 `${(n: number) => n}${ (n: string) => n}${ (n: number) => n}`; // Generic tag with argument of generic function type function someGenerics8(strs: TemplateStringsArray, n: T): T { return n; } >someGenerics8 : (strs: TemplateStringsArray, n: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -467,28 +467,28 @@ function someGenerics8(strs: TemplateStringsArray, n: T): T { return n; } var x = someGenerics8 `${ someGenerics7 }`; >x : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >someGenerics8 `${ someGenerics7 }` : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >someGenerics8 : (strs: TemplateStringsArray, n: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >`${ someGenerics7 }` : string > : ^^^^^^ >someGenerics7 : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ x `${null}${null}${null}`; >x `${null}${null}${null}` : void > : ^^^^ >x : (strs: TemplateStringsArray, a: (a: A) => A, b: (b: B) => B, c: (c: C) => C) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >`${null}${null}${null}` : string > : ^^^^^^ // Generic tag with multiple parameters of generic type passed arguments with no best common type function someGenerics9(strs: TemplateStringsArray, a: T, b: T, c: T): T { >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >a : T @@ -506,7 +506,7 @@ var a9a = someGenerics9 `${ '' }${ 0 }${ [] }`; >someGenerics9 `${ '' }${ 0 }${ [] }` : "" > : ^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ '' }${ 0 }${ [] }` : string > : ^^^^^^ >'' : "" @@ -546,7 +546,7 @@ var a9e = someGenerics9 `${ undefined }${ { x: 6, z: new Date() } }${ { x: 6, y: >someGenerics9 `${ undefined }${ { x: 6, z: new Date() } }${ { x: 6, y: '' } }` : { x: number; z: Date; y?: undefined; } | { x: number; y: string; z?: undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ undefined }${ { x: 6, z: new Date() } }${ { x: 6, y: '' } }` : string > : ^^^^^^ >undefined : undefined @@ -585,7 +585,7 @@ var a9d = someGenerics9 `${ { x: 3 }}${ { x: 6 }}${ { x: 6 } }`; >someGenerics9 `${ { x: 3 }}${ { x: 6 }}${ { x: 6 } }` : { x: number; } > : ^^^^^^^^^^^^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ { x: 3 }}${ { x: 6 }}${ { x: 6 } }` : string > : ^^^^^^ >{ x: 3 } : { x: number; } @@ -624,7 +624,7 @@ var a = someGenerics9 `${ 7 }${ anyVar }${ 4 }`; >someGenerics9 `${ 7 }${ anyVar }${ 4 }` : any > : ^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ 7 }${ anyVar }${ 4 }` : string > : ^^^^^^ >7 : 7 @@ -645,7 +645,7 @@ var arr = someGenerics9 `${ [] }${ null }${ undefined }`; >someGenerics9 `${ [] }${ null }${ undefined }` : any[] > : ^^^^^ >someGenerics9 : (strs: TemplateStringsArray, a: T, b: T, c: T) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >`${ [] }${ null }${ undefined }` : string > : ^^^^^^ >[] : undefined[] diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types index ee85e9070e043..bfa2bec8d04eb 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types @@ -47,7 +47,7 @@ fn1 `${ {} }`; // Error function fn2(strs: TemplateStringsArray, s: string, n: number): number; >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >s : string @@ -57,7 +57,7 @@ function fn2(strs: TemplateStringsArray, s: string, n: number): number; function fn2(strs: TemplateStringsArray, n: number, t: T): T; >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : number @@ -67,7 +67,7 @@ function fn2(strs: TemplateStringsArray, n: number, t: T): T; function fn2() { return undefined; } >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -77,7 +77,7 @@ var d1: Date = fn2 `${ 0 }${ undefined }`; // contextually typed >fn2 `${ 0 }${ undefined }` : any > : ^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ undefined }` : string > : ^^^^^^ >0 : 0 @@ -91,7 +91,7 @@ var d2 = fn2 `${ 0 }${ undefined }`; // any >fn2 `${ 0 }${ undefined }` : any > : ^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ undefined }` : string > : ^^^^^^ >0 : 0 @@ -120,7 +120,7 @@ fn2 `${ 0 }${ '' }`; // OK >fn2 `${ 0 }${ '' }` : "" > : ^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ '' }` : string > : ^^^^^^ >0 : 0 @@ -133,7 +133,7 @@ fn2 `${ '' }${ 0 }`; // OK >fn2 `${ '' }${ 0 }` : number > : ^^^^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ '' }${ 0 }` : string > : ^^^^^^ >'' : "" @@ -144,7 +144,7 @@ fn2 `${ '' }${ 0 }`; // OK // Generic overloads with differing arity function fn3(strs: TemplateStringsArray, n: T): string; >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T_1, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T_1): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -152,7 +152,7 @@ function fn3(strs: TemplateStringsArray, n: T): string; function fn3(strs: TemplateStringsArray, s: string, t: T, u: U): U; >fn3 : { (strs: TemplateStringsArray, n: T_1): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U_1, t: T_1): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >s : string @@ -164,7 +164,7 @@ function fn3(strs: TemplateStringsArray, s: string, t: T, u: U): U; function fn3(strs: TemplateStringsArray, v: V, u: U, t: T): number; >fn3 : { (strs: TemplateStringsArray, n: T_1): string; (strs: TemplateStringsArray, s: string, t: T_1, u: U_1): U_1; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >v : V @@ -176,7 +176,7 @@ function fn3(strs: TemplateStringsArray, v: V, u: U, t: T): number; function fn3() { return null; } >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ var s = fn3 `${ 3 }`; >s : string @@ -184,7 +184,7 @@ var s = fn3 `${ 3 }`; >fn3 `${ 3 }` : string > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 3 }` : string > : ^^^^^^ >3 : 3 @@ -196,7 +196,7 @@ var s = fn3 `${'' }${ 3 }${ '' }`; >fn3 `${'' }${ 3 }${ '' }` : "" > : ^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${'' }${ 3 }${ '' }` : string > : ^^^^^^ >'' : "" @@ -212,7 +212,7 @@ var n = fn3 `${ 5 }${ 5 }${ 5 }`; >fn3 `${ 5 }${ 5 }${ 5 }` : number > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 5 }${ 5 }${ 5 }` : string > : ^^^^^^ >5 : 5 @@ -233,7 +233,7 @@ var s = fn3 `${ 4 }` >fn3 `${ 4 }` : string > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 4 }` : string > : ^^^^^^ >4 : 4 @@ -245,7 +245,7 @@ var s = fn3 `${ '' }${ '' }${ '' }`; >fn3 `${ '' }${ '' }${ '' }` : "" > : ^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ '' }${ '' }${ '' }` : string > : ^^^^^^ >'' : "" @@ -261,7 +261,7 @@ var n = fn3 `${ '' }${ '' }${ 3 }`; >fn3 `${ '' }${ '' }${ 3 }` : 3 > : ^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ '' }${ '' }${ 3 }` : string > : ^^^^^^ >'' : "" @@ -276,14 +276,14 @@ fn3 ``; // Error >fn3 `` : string > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`` : "" > : ^^ // Generic overloads with constraints function fn4(strs: TemplateStringsArray, n: T, m: U); >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T_1, m: U_1): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -293,7 +293,7 @@ function fn4(strs: TemplateStringsArray, n: function fn4(strs: TemplateStringsArray, n: T, m: U); >fn4 : { (strs: TemplateStringsArray, n: T_1, m: U_1): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -303,20 +303,20 @@ function fn4(strs: TemplateStringsArray, n: function fn4(strs: TemplateStringsArray) >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ function fn4() { } >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ // Generic overloads with constraints tagged with types that satisfy the constraints fn4 `${ '' }${ 3 }`; >fn4 `${ '' }${ 3 }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ '' }${ 3 }` : string > : ^^^^^^ >'' : "" @@ -328,7 +328,7 @@ fn4 `${ 3 }${ '' }`; >fn4 `${ 3 }${ '' }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ 3 }${ '' }` : string > : ^^^^^^ >3 : 3 @@ -340,7 +340,7 @@ fn4 `${ 3 }${ undefined }`; >fn4 `${ 3 }${ undefined }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ 3 }${ undefined }` : string > : ^^^^^^ >3 : 3 @@ -352,7 +352,7 @@ fn4 `${ '' }${ null }`; >fn4 `${ '' }${ null }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ '' }${ null }` : string > : ^^^^^^ >'' : "" @@ -363,7 +363,7 @@ fn4 `${ null }${ null }`; // Error >fn4 `${ null }${ null }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ null }${ null }` : string > : ^^^^^^ @@ -372,7 +372,7 @@ fn4 `${ true }${ null }`; >fn4 `${ true }${ null }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ true }${ null }` : string > : ^^^^^^ >true : true @@ -382,7 +382,7 @@ fn4 `${ null }${ true }`; >fn4 `${ null }${ true }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ null }${ true }` : string > : ^^^^^^ >true : true diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types index 9e1442ca52092..aac36175750d5 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types @@ -47,7 +47,7 @@ fn1 `${ {} }`; // Error function fn2(strs: TemplateStringsArray, s: string, n: number): number; >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >s : string @@ -57,7 +57,7 @@ function fn2(strs: TemplateStringsArray, s: string, n: number): number; function fn2(strs: TemplateStringsArray, n: number, t: T): T; >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : number @@ -67,7 +67,7 @@ function fn2(strs: TemplateStringsArray, n: number, t: T): T; function fn2() { return undefined; } >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >undefined : undefined > : ^^^^^^^^^ @@ -77,7 +77,7 @@ var d1: Date = fn2 `${ 0 }${ undefined }`; // contextually typed >fn2 `${ 0 }${ undefined }` : any > : ^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ undefined }` : string > : ^^^^^^ >0 : 0 @@ -91,7 +91,7 @@ var d2 = fn2 `${ 0 }${ undefined }`; // any >fn2 `${ 0 }${ undefined }` : any > : ^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ undefined }` : string > : ^^^^^^ >0 : 0 @@ -120,7 +120,7 @@ fn2 `${ 0 }${ '' }`; // OK >fn2 `${ 0 }${ '' }` : "" > : ^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 0 }${ '' }` : string > : ^^^^^^ >0 : 0 @@ -133,7 +133,7 @@ fn2 `${ '' }${ 0 }`; // OK >fn2 `${ '' }${ 0 }` : number > : ^^^^^^ >fn2 : { (strs: TemplateStringsArray, s: string, n: number): number; (strs: TemplateStringsArray, n: number, t: T): T; } -> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ '' }${ 0 }` : string > : ^^^^^^ >'' : "" @@ -144,7 +144,7 @@ fn2 `${ '' }${ 0 }`; // OK // Generic overloads with differing arity function fn3(strs: TemplateStringsArray, n: T): string; >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T_1, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T_1): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -152,7 +152,7 @@ function fn3(strs: TemplateStringsArray, n: T): string; function fn3(strs: TemplateStringsArray, s: string, t: T, u: U): U; >fn3 : { (strs: TemplateStringsArray, n: T_1): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U_1, t: T_1): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >s : string @@ -164,7 +164,7 @@ function fn3(strs: TemplateStringsArray, s: string, t: T, u: U): U; function fn3(strs: TemplateStringsArray, v: V, u: U, t: T): number; >fn3 : { (strs: TemplateStringsArray, n: T_1): string; (strs: TemplateStringsArray, s: string, t: T_1, u: U_1): U_1; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >v : V @@ -176,7 +176,7 @@ function fn3(strs: TemplateStringsArray, v: V, u: U, t: T): number; function fn3() { return null; } >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ var s = fn3 `${ 3 }`; >s : string @@ -184,7 +184,7 @@ var s = fn3 `${ 3 }`; >fn3 `${ 3 }` : string > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 3 }` : string > : ^^^^^^ >3 : 3 @@ -196,7 +196,7 @@ var s = fn3 `${'' }${ 3 }${ '' }`; >fn3 `${'' }${ 3 }${ '' }` : "" > : ^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${'' }${ 3 }${ '' }` : string > : ^^^^^^ >'' : "" @@ -212,7 +212,7 @@ var n = fn3 `${ 5 }${ 5 }${ 5 }`; >fn3 `${ 5 }${ 5 }${ 5 }` : number > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 5 }${ 5 }${ 5 }` : string > : ^^^^^^ >5 : 5 @@ -233,7 +233,7 @@ var s = fn3 `${ 4 }` >fn3 `${ 4 }` : string > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ 4 }` : string > : ^^^^^^ >4 : 4 @@ -245,7 +245,7 @@ var s = fn3 `${ '' }${ '' }${ '' }`; >fn3 `${ '' }${ '' }${ '' }` : "" > : ^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ '' }${ '' }${ '' }` : string > : ^^^^^^ >'' : "" @@ -261,7 +261,7 @@ var n = fn3 `${ '' }${ '' }${ 3 }`; >fn3 `${ '' }${ '' }${ 3 }` : 3 > : ^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`${ '' }${ '' }${ 3 }` : string > : ^^^^^^ >'' : "" @@ -276,14 +276,14 @@ fn3 ``; // Error >fn3 `` : string > : ^^^^^^ >fn3 : { (strs: TemplateStringsArray, n: T): string; (strs: TemplateStringsArray, s: string, t: T, u: U): U; (strs: TemplateStringsArray, v: V, u: U, t: T): number; } -> : ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ >`` : "" > : ^^ // Generic overloads with constraints function fn4(strs: TemplateStringsArray, n: T, m: U); >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T_1, m: U_1): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -293,7 +293,7 @@ function fn4(strs: TemplateStringsArray, n: function fn4(strs: TemplateStringsArray, n: T, m: U); >fn4 : { (strs: TemplateStringsArray, n: T_1, m: U_1): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >n : T @@ -303,20 +303,20 @@ function fn4(strs: TemplateStringsArray, n: function fn4(strs: TemplateStringsArray) >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ function fn4() { } >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ // Generic overloads with constraints tagged with types that satisfy the constraints fn4 `${ '' }${ 3 }`; >fn4 `${ '' }${ 3 }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ '' }${ 3 }` : string > : ^^^^^^ >'' : "" @@ -328,7 +328,7 @@ fn4 `${ 3 }${ '' }`; >fn4 `${ 3 }${ '' }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ 3 }${ '' }` : string > : ^^^^^^ >3 : 3 @@ -340,7 +340,7 @@ fn4 `${ 3 }${ undefined }`; >fn4 `${ 3 }${ undefined }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ 3 }${ undefined }` : string > : ^^^^^^ >3 : 3 @@ -352,7 +352,7 @@ fn4 `${ '' }${ null }`; >fn4 `${ '' }${ null }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ '' }${ null }` : string > : ^^^^^^ >'' : "" @@ -363,7 +363,7 @@ fn4 `${ null }${ null }`; // Error >fn4 `${ null }${ null }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ null }${ null }` : string > : ^^^^^^ @@ -372,7 +372,7 @@ fn4 `${ true }${ null }`; >fn4 `${ true }${ null }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ true }${ null }` : string > : ^^^^^^ >true : true @@ -382,7 +382,7 @@ fn4 `${ null }${ true }`; >fn4 `${ null }${ true }` : any > : ^^^ >fn4 : { (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray, n: T, m: U): any; (strs: TemplateStringsArray): any; } -> : ^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ >`${ null }${ true }` : string > : ^^^^^^ >true : true diff --git a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.types b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.types index b8497dca75e20..0b686c0dcbfb6 100644 --- a/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.types +++ b/tests/baselines/reference/taggedTemplateWithoutDeclaredHelper.types @@ -3,7 +3,7 @@ === foo.ts === function id(x: T) { >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -18,7 +18,7 @@ export const result = id `hello world`; >id `hello world` : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >`hello world` : "hello world" > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/taggedTemplatesInModuleAndGlobal.types b/tests/baselines/reference/taggedTemplatesInModuleAndGlobal.types index f1d4d66df6f9c..335dfa4c6c86f 100644 --- a/tests/baselines/reference/taggedTemplatesInModuleAndGlobal.types +++ b/tests/baselines/reference/taggedTemplatesInModuleAndGlobal.types @@ -7,7 +7,7 @@ namespace n { function id(x: T): T { >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -24,7 +24,7 @@ namespace n { >id`hello world` : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >`hello world` : "hello world" > : ^^^^^^^^^^^^^ } @@ -46,7 +46,7 @@ namespace n { export { } function id(x: T): T { >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -63,7 +63,7 @@ function templateObjectFactory() { >id`hello world` : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >`hello world` : "hello world" > : ^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/taggedTemplatesWithTypeArguments1.types b/tests/baselines/reference/taggedTemplatesWithTypeArguments1.types index b204d519ef059..f97fa3a39ed1b 100644 --- a/tests/baselines/reference/taggedTemplatesWithTypeArguments1.types +++ b/tests/baselines/reference/taggedTemplatesWithTypeArguments1.types @@ -3,7 +3,7 @@ === taggedTemplatesWithTypeArguments1.ts === declare function f(strs: TemplateStringsArray, ...callbacks: Array<(x: T) => any>): void; >f : (strs: TemplateStringsArray, ...callbacks: Array<(x: T) => any>) => void -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >callbacks : ((x: T) => any)[] @@ -31,7 +31,7 @@ export const a = f ` >f ` hello ${stuff => stuff.x} brave ${stuff => stuff.y} world ${stuff => stuff.z}` : void > : ^^^^ >f : (strs: TemplateStringsArray, ...callbacks: Array<(x: T) => any>) => void -> : ^ ^^ ^^ ^^^^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ ^^ ^^^^^ >` hello ${stuff => stuff.x} brave ${stuff => stuff.y} world ${stuff => stuff.z}` : string > : ^^^^^^ @@ -78,7 +78,7 @@ export const a = f ` declare function g( >g : (strs: TemplateStringsArray, t: (i: Input) => T, u: (i: Input) => U, v: (i: Input) => V) => T | U | V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ strs: TemplateStringsArray, >strs : TemplateStringsArray @@ -104,7 +104,7 @@ export const b = g ` >g ` hello ${stuff => stuff.x} brave ${stuff => stuff.y} world ${stuff => stuff.z}` : string | number | boolean > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >g : (strs: TemplateStringsArray, t: (i: Input) => T, u: (i: Input) => U, v: (i: Input) => V) => T | U | V -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >` hello ${stuff => stuff.x} brave ${stuff => stuff.y} world ${stuff => stuff.z}` : string > : ^^^^^^ @@ -155,7 +155,7 @@ declare let obj: { prop: (strs: TemplateStringsArray, x: (input: T) => T) => { >prop : (strs: TemplateStringsArray, x: (input: T) => T) => { returnedObjProp: T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >strs : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >x : (input: T) => T @@ -175,7 +175,7 @@ export let c = obj["prop"] `${(input) => ({ ...input })}` >obj["prop"] `${(input) => ({ ...input })}` : { returnedObjProp: Stuff; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj["prop"] : (strs: TemplateStringsArray, x: (input: T) => T) => { returnedObjProp: T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >obj : { prop: (strs: TemplateStringsArray, x: (input: T) => T) => { returnedObjProp: T; }; } > : ^^^^^^^^ ^^^ >"prop" : "prop" @@ -237,11 +237,11 @@ c = obj.prop `${(input) => ({ ...input })}` >obj.prop `${(input) => ({ ...input })}` : { returnedObjProp: Stuff; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ >obj.prop : (strs: TemplateStringsArray, x: (input: T) => T) => { returnedObjProp: T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >obj : { prop: (strs: TemplateStringsArray, x: (input: T) => T) => { returnedObjProp: T; }; } > : ^^^^^^^^ ^^^ >prop : (strs: TemplateStringsArray, x: (input: T) => T) => { returnedObjProp: T; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >`${(input) => ({ ...input })}` : string > : ^^^^^^ >(input) => ({ ...input }) : (input: Stuff) => { x: number; y: string; z: boolean; } diff --git a/tests/baselines/reference/templateLiteralConstantEvaluation.types b/tests/baselines/reference/templateLiteralConstantEvaluation.types index fa84571697298..d9374c96d59e2 100644 --- a/tests/baselines/reference/templateLiteralConstantEvaluation.types +++ b/tests/baselines/reference/templateLiteralConstantEvaluation.types @@ -5,7 +5,7 @@ function fn(arg: T): T { >fn : (arg: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >arg : T > : ^ @@ -52,7 +52,7 @@ fn(`${b} 3`); >fn(`${b} 3`) : "1 2 3" > : ^^^^^^^ >fn : (arg: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >`${b} 3` : "1 2 3" > : ^^^^^^^ >b : string diff --git a/tests/baselines/reference/templateLiteralIntersection4.types b/tests/baselines/reference/templateLiteralIntersection4.types index 52c110bae8984..c27e6104cf5c6 100644 --- a/tests/baselines/reference/templateLiteralIntersection4.types +++ b/tests/baselines/reference/templateLiteralIntersection4.types @@ -25,7 +25,7 @@ type StoreUtils = Omit<{ declare function createStore(store: Store): StoreUtils; >createStore : (store: Store) => StoreUtils -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >K : string > : ^^^^^^ >store : Store @@ -43,7 +43,7 @@ const { Provider, useUsername, useAge, useStore } = createStore({ >createStore({ username: "Aral", age: 31}) : StoreUtils<{ username: string; age: number; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >createStore : (store: Store) => StoreUtils -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{ username: "Aral", age: 31} : { username: string; age: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/templateLiteralTypes1.types b/tests/baselines/reference/templateLiteralTypes1.types index e4b0af8fc90d1..357e25fa0d66c 100644 --- a/tests/baselines/reference/templateLiteralTypes1.types +++ b/tests/baselines/reference/templateLiteralTypes1.types @@ -9,13 +9,13 @@ Instantiation count: 2,500 const createScopedActionType = (scope: S) => (type: T) => `${scope}/${type}` as `${S}/${T}`; >createScopedActionType : (scope: S) => (type: T) => `${S}/${T}` -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >(scope: S) => (type: T) => `${scope}/${type}` as `${S}/${T}` : (scope: S) => (type: T) => `${S}/${T}` -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >scope : S > : ^ >(type: T) => `${scope}/${type}` as `${S}/${T}` : (type: T) => `${S}/${T}` -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >type : T > : ^ >`${scope}/${type}` as `${S}/${T}` : `${S}/${T}` @@ -33,7 +33,7 @@ const createActionInMyScope = createScopedActionType("MyScope"); // createScopedActionType("MyScope") : (type: T) => `MyScope/${T}` > : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >createScopedActionType : (scope: S) => (type: T) => `${S}/${T}` -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >"MyScope" : "MyScope" > : ^^^^^^^^^ @@ -109,7 +109,7 @@ type TCA2 = Cases<'BAR'>; // 'BAR bar BAR bAR' function test(name: `get${Capitalize}`) { >test : (name: `get${Capitalize}`) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >name : `get${Capitalize}` > : ^^^^^^^^^^^^^^^^^^^^^ @@ -128,7 +128,7 @@ function test(name: `get${Capitalize}`) { function fa1(x: T, y: { [P in keyof T]: T[P] }, z: { [P in keyof T & string as `p_${P}`]: T[P] }) { >fa1 : (x: T, y: { [P in keyof T]: T[P]; }, z: { [P in keyof T & string as `p_${P}`]: T[P]; }) => void -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : { [P in keyof T]: T[P]; } @@ -155,7 +155,7 @@ function fa1(x: T, y: { [P in keyof T]: T[P] }, z: { [P in keyof T & string a function fa2(x: { [P in B as `p_${P}`]: T }, y: { [Q in A as `p_${Q}`]: U }) { >fa2 : (x: { [P in B as `p_${P}`]: T; }, y: { [Q in A as `p_${Q}`]: U; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : { [P in B as `p_${P}`]: T; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >y : { [Q in A as `p_${Q}`]: U; } @@ -359,7 +359,7 @@ type T43 = Split; // string[] declare function getProp(obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; >getProp : { (obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; (obj: T_1, path: `${P0_1}.${P1_1}`): T_1[P0_1][P1_1]; (obj: T_1, path: P0_1): T_1[P0_1]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >obj : T > : ^ >path : `${P0}.${P1}.${P2}` @@ -367,7 +367,7 @@ declare function getProp(obj: T, path: `${P0}.${P1}`): T[P0][P1]; >getProp : { (obj: T_1, path: `${P0_1}.${P1_1}.${P2}`): T_1[P0_1][P1_1][P2]; (obj: T, path: `${P0}.${P1}`): T[P0][P1]; (obj: T_1, path: P0_1): T_1[P0_1]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >obj : T > : ^ >path : `${P0}.${P1}` @@ -375,7 +375,7 @@ declare function getProp(obj: T, path: P0): T[P0]; >getProp : { (obj: T_1, path: `${P0_1}.${P1}.${P2}`): T_1[P0_1][P1][P2]; (obj: T_1, path: `${P0_1}.${P1}`): T_1[P0_1][P1]; (obj: T, path: P0): T[P0]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >obj : T > : ^ >path : P0 @@ -383,7 +383,7 @@ declare function getProp(obj: T, path: P0): T[P0 declare function getProp(obj: object, path: string): unknown; >getProp : { (obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; (obj: T, path: `${P0}.${P1}`): T[P0][P1]; (obj: T, path: P0): T[P0]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >obj : object > : ^^^^^^ >path : string @@ -395,7 +395,7 @@ let p1 = getProp({ a: { b: {c: 42, d: 'hello' }}} as const, 'a'); >getProp({ a: { b: {c: 42, d: 'hello' }}} as const, 'a') : { readonly b: { readonly c: 42; readonly d: "hello"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getProp : { (obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; (obj: T, path: `${P0}.${P1}`): T[P0][P1]; (obj: T, path: P0): T[P0]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >{ a: { b: {c: 42, d: 'hello' }}} as const : { readonly a: { readonly b: { readonly c: 42; readonly d: "hello"; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: { b: {c: 42, d: 'hello' }}} : { readonly a: { readonly b: { readonly c: 42; readonly d: "hello"; }; }; } @@ -425,7 +425,7 @@ let p2 = getProp({ a: { b: {c: 42, d: 'hello' }}} as const, 'a.b'); >getProp({ a: { b: {c: 42, d: 'hello' }}} as const, 'a.b') : { readonly c: 42; readonly d: "hello"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getProp : { (obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; (obj: T, path: `${P0}.${P1}`): T[P0][P1]; (obj: T, path: P0): T[P0]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >{ a: { b: {c: 42, d: 'hello' }}} as const : { readonly a: { readonly b: { readonly c: 42; readonly d: "hello"; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: { b: {c: 42, d: 'hello' }}} : { readonly a: { readonly b: { readonly c: 42; readonly d: "hello"; }; }; } @@ -455,7 +455,7 @@ let p3 = getProp({ a: { b: {c: 42, d: 'hello' }}} as const, 'a.b.d'); >getProp({ a: { b: {c: 42, d: 'hello' }}} as const, 'a.b.d') : "hello" > : ^^^^^^^ >getProp : { (obj: T, path: `${P0}.${P1}.${P2}`): T[P0][P1][P2]; (obj: T, path: `${P0}.${P1}`): T[P0][P1]; (obj: T, path: P0): T[P0]; (obj: object, path: string): unknown; } -> : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ ^^ ^^ ^^ ^^^ ^^^ >{ a: { b: {c: 42, d: 'hello' }}} as const : { readonly a: { readonly b: { readonly c: 42; readonly d: "hello"; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ a: { b: {c: 42, d: 'hello' }}} : { readonly a: { readonly b: { readonly c: 42; readonly d: "hello"; }; }; } @@ -490,7 +490,7 @@ type PropType = declare function getPropValue(obj: T, path: P): PropType; >getPropValue : (obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >path : P @@ -526,7 +526,7 @@ getPropValue(obj, 'a'); // { b: {c: number, d: string } } >getPropValue(obj, 'a') : { b: { c: number; d: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getPropValue : (obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: { b: { c: number; d: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'a' : "a" @@ -536,7 +536,7 @@ getPropValue(obj, 'a.b'); // {c: number, d: string } >getPropValue(obj, 'a.b') : { c: number; d: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >getPropValue : (obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: { b: { c: number; d: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'a.b' : "a.b" @@ -546,7 +546,7 @@ getPropValue(obj, 'a.b.d'); // string >getPropValue(obj, 'a.b.d') : string > : ^^^^^^ >getPropValue : (obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: { b: { c: number; d: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'a.b.d' : "a.b.d" @@ -556,7 +556,7 @@ getPropValue(obj, 'a.b.x'); // unknown >getPropValue(obj, 'a.b.x') : unknown > : ^^^^^^^ >getPropValue : (obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: { b: { c: number; d: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'a.b.x' : "a.b.x" @@ -566,7 +566,7 @@ getPropValue(obj, s); // unknown >getPropValue(obj, s) : unknown > : ^^^^^^^ >getPropValue : (obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : { a: { b: { c: number; d: string; }; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >s : string @@ -821,7 +821,7 @@ type SubKeys = K extends keyof T ? `${K}.${PathKeys}` declare function getProp2>(obj: T, path: P): PropType; >getProp2 : >(obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : T > : ^ >path : P @@ -886,7 +886,7 @@ let make = getProp2(obj2, 'cars.1.make'); // 'Trabant' >getProp2(obj2, 'cars.1.make') : "Trabant" > : ^^^^^^^^^ >getProp2 : >(obj: T, path: P) => PropType -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj2 : { readonly name: "John"; readonly age: 42; readonly cars: readonly [{ readonly make: "Ford"; readonly age: 10; }, { readonly make: "Trabant"; readonly age: 35; }]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'cars.1.make' : "cars.1.make" diff --git a/tests/baselines/reference/templateLiteralTypes2.types b/tests/baselines/reference/templateLiteralTypes2.types index aa664dda40406..cf33e8d04fc55 100644 --- a/tests/baselines/reference/templateLiteralTypes2.types +++ b/tests/baselines/reference/templateLiteralTypes2.types @@ -3,7 +3,7 @@ === templateLiteralTypes2.ts === function ft1(s: string, n: number, u: 'foo' | 'bar' | 'baz', t: T) { >ft1 : (s: string, n: number, u: "foo" | "bar" | "baz", t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s : string > : ^^^^^^ >n : number @@ -328,13 +328,13 @@ function ft12(s: string) { declare function widening(x: T): T; >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function nonWidening(x: T): T; >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -352,7 +352,7 @@ function ft13(s: string, cond: boolean) { >widening(`foo${s}`) : string > : ^^^^^^ >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >`foo${s}` : string > : ^^^^^^ >s : string @@ -364,7 +364,7 @@ function ft13(s: string, cond: boolean) { >widening(cond ? 'a' : `foo${s}`) : string > : ^^^^^^ >widening : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >cond ? 'a' : `foo${s}` : string > : ^^^^^^ >cond : boolean @@ -382,7 +382,7 @@ function ft13(s: string, cond: boolean) { >nonWidening(`foo${s}`) : `foo${string}` > : ^^^^^^^^^^^^^^ >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`foo${s}` : `foo${string}` > : ^^^^^^^^^^^^^^ >s : string @@ -394,7 +394,7 @@ function ft13(s: string, cond: boolean) { >nonWidening(cond ? 'a' : `foo${s}`) : `foo${string}` | "a" > : ^^^^^^^^^^^^^^^^^^^^ >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >cond ? 'a' : `foo${s}` : `foo${string}` | "a" > : ^^^^^^^^^^^^^^^^^^^^ >cond : boolean @@ -452,13 +452,13 @@ function ft14(t: `foo${number}`) { declare function g1(x: T): T; >g1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ declare function g2(x: T): T; >g2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -474,7 +474,7 @@ function ft20(s: string) { >g1(`xyz-${s}`) : string > : ^^^^^^ >g1 : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >`xyz-${s}` : string > : ^^^^^^ >s : string @@ -486,7 +486,7 @@ function ft20(s: string) { >g2(`xyz-${s}`) : `xyz-${string}` > : ^^^^^^^^^^^^^^^ >g2 : (x: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`xyz-${s}` : `xyz-${string}` > : ^^^^^^^^^^^^^^^ >s : string @@ -497,7 +497,7 @@ function ft20(s: string) { declare function takesLiteral(literal: T): T extends `foo.bar.${infer R}` ? R : unknown; >takesLiteral : (literal: T) => T extends `foo.bar.${infer R}` ? R : unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >literal : T > : ^ @@ -507,7 +507,7 @@ const t1 = takesLiteral("foo.bar.baz"); // "baz" >takesLiteral("foo.bar.baz") : "baz" > : ^^^^^ >takesLiteral : (literal: T) => T extends `foo.bar.${infer R}` ? R : unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"foo.bar.baz" : "foo.bar.baz" > : ^^^^^^^^^^^^^ @@ -523,7 +523,7 @@ const t2 = takesLiteral(id2); // "baz" >takesLiteral(id2) : "baz" > : ^^^^^ >takesLiteral : (literal: T) => T extends `foo.bar.${infer R}` ? R : unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >id2 : "foo.bar.baz" > : ^^^^^^^^^^^^^ @@ -537,7 +537,7 @@ const t3 = takesLiteral(`foo.bar.${someString}`); // string >takesLiteral(`foo.bar.${someString}`) : string > : ^^^^^^ >takesLiteral : (literal: T) => T extends `foo.bar.${infer R}` ? R : unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`foo.bar.${someString}` : `foo.bar.${string}` > : ^^^^^^^^^^^^^^^^^^^ >someString : string @@ -557,7 +557,7 @@ const t4 = takesLiteral(id4); // unknown >takesLiteral(id4) : unknown > : ^^^^^^^ >takesLiteral : (literal: T) => T extends `foo.bar.${infer R}` ? R : unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >id4 : string > : ^^^^^^ @@ -571,7 +571,7 @@ const t5 = takesLiteral(`foo.bar.${someUnion}`); // "abc" | "def" | "ghi" >takesLiteral(`foo.bar.${someUnion}`) : "abc" | "def" | "ghi" > : ^^^^^^^^^^^^^^^^^^^^^ >takesLiteral : (literal: T) => T extends `foo.bar.${infer R}` ? R : unknown -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`foo.bar.${someUnion}` : "foo.bar.abc" | "foo.bar.def" | "foo.bar.ghi" > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >someUnion : "abc" | "def" | "ghi" diff --git a/tests/baselines/reference/templateLiteralTypes3.types b/tests/baselines/reference/templateLiteralTypes3.types index 2f1532ca92237..3904d31e72d2d 100644 --- a/tests/baselines/reference/templateLiteralTypes3.types +++ b/tests/baselines/reference/templateLiteralTypes3.types @@ -53,13 +53,13 @@ type T11 = Foo1<`**${boolean}**${boolean}**`>; declare function foo1(arg: `*${V}*`): V; >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >arg : `*${V}*` > : ^^^^^^^^ function f1(s: string, n: number, b: boolean, t: T) { >f1 : (s: string, n: number, b: boolean, t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s : string > : ^^^^^^ >n : number @@ -75,7 +75,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1('hello') : string > : ^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'hello' : "hello" > : ^^^^^^^ @@ -85,7 +85,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1('*hello*') : "hello" > : ^^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'*hello*' : "*hello*" > : ^^^^^^^^^ @@ -95,7 +95,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1('**hello**') : "*hello*" > : ^^^^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >'**hello**' : "**hello**" > : ^^^^^^^^^^^ @@ -105,7 +105,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1(`*${s}*` as const) : string > : ^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`*${s}*` as const : `*${string}*` > : ^^^^^^^^^^^^^ >`*${s}*` : `*${string}*` @@ -119,7 +119,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1(`*${n}*` as const) : `${number}` > : ^^^^^^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`*${n}*` as const : `*${number}*` > : ^^^^^^^^^^^^^ >`*${n}*` : `*${number}*` @@ -133,7 +133,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1(`*${b}*` as const) : "false" | "true" > : ^^^^^^^^^^^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`*${b}*` as const : "*false*" | "*true*" > : ^^^^^^^^^^^^^^^^^^^^ >`*${b}*` : "*false*" | "*true*" @@ -147,7 +147,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1(`*${t}*` as const) : T > : ^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`*${t}*` as const : `*${T}*` > : ^^^^^^^^ >`*${t}*` : `*${T}*` @@ -161,7 +161,7 @@ function f1(s: string, n: number, b: boolean, t: T) { >foo1(`**${s}**` as const) : `*${string}*` > : ^^^^^^^^^^^^^ >foo1 : (arg: `*${V}*`) => V -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >`**${s}**` as const : `**${string}**` > : ^^^^^^^^^^^^^^^ >`**${s}**` : `**${string}**` @@ -286,7 +286,7 @@ function f2() { function f3(s: string, n: number, b: boolean, t: T) { >f3 : (s: string, n: number, b: boolean, t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s : string > : ^^^^^^ >n : number @@ -387,7 +387,7 @@ function f3(s: string, n: number, b: boolean, t: T) { function f4(s: string, n: number, b: boolean, t: T) { >f4 : (s: string, n: number, b: boolean, t: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >s : string > : ^^^^^^ >n : number @@ -598,7 +598,7 @@ type Schema = { a: { b: { c: number } } }; declare function chain(field: F | `${F}.${F}`): void; >chain : (field: F | `${F}.${F}`) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >field : F | `${F}.${F}` > : ^^^^^^^^^^^^^^^ @@ -606,7 +606,7 @@ chain("a"); >chain("a") : void > : ^^^^ >chain : (field: F | `${F}.${F}`) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >"a" : "a" > : ^^^ @@ -646,7 +646,7 @@ function ff1(x: `foo-${string}`, y: `${string}-bar`, z: `baz-${string}`) { function ff2(x: `foo-${T}`, y: `${T}-bar`, z: `baz-${T}`) { >ff2 : (x: `foo-${T}`, y: `${T}-bar`, z: `baz-${T}`) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : `foo-${T}` > : ^^^^^^^^^^ >y : `${T}-bar` @@ -792,13 +792,13 @@ type DotString = `${string}.${string}.${string}`; declare function noSpread

]: { a: P } }; function f3(obj: Mapped3, key: Uppercase) { >f3 : (obj: Mapped3, key: Uppercase) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Mapped3 > : ^^^^^^^^^^ >key : Uppercase @@ -91,7 +91,7 @@ type Mapped4 = { function f4(obj: Mapped4, key: keyof Mapped4) { >f4 : (obj: Mapped4, key: keyof Mapped4) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Mapped4 > : ^^^^^^^^^^ >key : K @@ -117,7 +117,7 @@ type Mapped5 = { function f5(obj: Mapped5, key: keyof Mapped5) { >f5 : (obj: Mapped5, key: keyof Mapped5) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Mapped5 > : ^^^^^^^^^^ >key : K extends `_${string}` ? K : never @@ -145,7 +145,7 @@ type Mapped6 = { function f6(obj: Mapped6, key: keyof Mapped6) { >f6 : (obj: Mapped6, key: keyof Mapped6) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Mapped6 > : ^^^^^^^^^^ >key : keyof Mapped6 @@ -173,9 +173,9 @@ type Foo = { const get = (t: T, foo: Foo): T => foo[`get${t}`]; // Type 'Foo[`get${T}`]' is not assignable to type 'T' >get : (t: T, foo: Foo) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >(t: T, foo: Foo): T => foo[`get${t}`] : (t: T, foo: Foo) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t : T > : ^ >foo : Foo @@ -210,7 +210,7 @@ type NumericBoundsOf = { function validate(obj: T, bounds: NumericBoundsOf) { >validate : (obj: T, bounds: NumericBoundsOf) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >obj : T > : ^ >bounds : NumericBoundsOf @@ -224,11 +224,11 @@ function validate(obj: T, bounds: NumericBoundsOf) { >Object.entries(obj) : [string, any][] > : ^^^^^^^^^^^^^^^ >Object.entries : { (o: { [s: string]: T_1; } | ArrayLike): [string, T_1][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >entries : { (o: { [s: string]: T_1; } | ArrayLike): [string, T_1][]; (o: {}): [string, any][]; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^ ^^ ^^^ ^^^ ^^ ^^^ ^^^ >obj : T > : ^ @@ -294,7 +294,7 @@ type ObjectWithUnderscoredKeys = { function genericTest(objectWithUnderscoredKeys: ObjectWithUnderscoredKeys, key: K) { >genericTest : (objectWithUnderscoredKeys: ObjectWithUnderscoredKeys, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >objectWithUnderscoredKeys : ObjectWithUnderscoredKeys > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : K diff --git a/tests/baselines/reference/mappedTypeContextualTypesApplied.types b/tests/baselines/reference/mappedTypeContextualTypesApplied.types index bbbaf78c97218..90875c32a387e 100644 --- a/tests/baselines/reference/mappedTypeContextualTypesApplied.types +++ b/tests/baselines/reference/mappedTypeContextualTypesApplied.types @@ -11,55 +11,55 @@ type TakeString = (s: string) => any; // Note these all use mapped types. declare function mapped1(obj: T): void; >mapped1 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : T > : ^ declare function mapped2(obj: T): void; >mapped2 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : T > : ^ declare function mapped3(obj: T): void; >mapped3 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : T > : ^ declare function mapped4(obj: T & {[P in keyof T]: TakeString}): void; >mapped4 : (obj: T & { [P in keyof T]: TakeString; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >obj : T & { [P in keyof T]: TakeString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function mapped5(obj: T & {[P in K]: TakeString}): void; >mapped5 : (obj: T & { [P in K]: TakeString; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : T & { [P in K]: TakeString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function mapped6(obj: {[P in K]: TakeString}): void; >mapped6 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : { [P in K]: TakeString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ declare function mapped7(obj: {[P in K]: TakeString}): void; >mapped7 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : { [P in K]: TakeString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ declare function mapped8(obj: {[P in K]: TakeString}): void; >mapped8 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : { [P in K]: TakeString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ declare function mapped9(obj: {[P in K]: TakeString}): void; >mapped9 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >obj : { [P in K]: TakeString; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -67,7 +67,7 @@ mapped1({foo: s => 42}); >mapped1({foo: s => 42}) : void > : ^^^^ >mapped1 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -83,7 +83,7 @@ mapped2({foo: s => 42}); >mapped2({foo: s => 42}) : void > : ^^^^ >mapped2 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -99,7 +99,7 @@ mapped3({foo: s => 42}); >mapped3({foo: s => 42}) : void > : ^^^^ >mapped3 : (obj: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -115,7 +115,7 @@ mapped4({foo: s => 42}); >mapped4({foo: s => 42}) : void > : ^^^^ >mapped4 : (obj: T & { [P in keyof T]: TakeString; }) => void -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -131,7 +131,7 @@ mapped5({foo: s => 42}); >mapped5({foo: s => 42}) : void > : ^^^^ >mapped5 : (obj: T & { [P in K]: TakeString; }) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -147,7 +147,7 @@ mapped6({foo: s => 42}); >mapped6({foo: s => 42}) : void > : ^^^^ >mapped6 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -163,7 +163,7 @@ mapped7({foo: s => 42}); >mapped7({foo: s => 42}) : void > : ^^^^ >mapped7 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -179,7 +179,7 @@ mapped8({foo: s => 42}); >mapped8({foo: s => 42}) : void > : ^^^^ >mapped8 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number @@ -195,7 +195,7 @@ mapped9({foo: s => 42}); >mapped9({foo: s => 42}) : void > : ^^^^ >mapped9 : (obj: { [P in K]: TakeString; }) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >{foo: s => 42} : { foo: (s: string) => number; } > : ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >foo : (s: string) => number diff --git a/tests/baselines/reference/mappedTypeErrors.types b/tests/baselines/reference/mappedTypeErrors.types index 64c394243f6fd..0cab317773573 100644 --- a/tests/baselines/reference/mappedTypeErrors.types +++ b/tests/baselines/reference/mappedTypeErrors.types @@ -83,7 +83,7 @@ type T16 = Pick; // Error function f1(x: T) { >f1 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -94,7 +94,7 @@ function f1(x: T) { function f2(x: T) { >f2 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -105,7 +105,7 @@ function f2(x: T) { function f3(x: T) { >f3 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -116,7 +116,7 @@ function f3(x: T) { function f4(x: T) { >f4 : (x: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -186,7 +186,7 @@ function f12() { declare function objAndReadonly(primary: T, secondary: Readonly): T; >objAndReadonly : (primary: T, secondary: Readonly) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >primary : T > : ^ >secondary : Readonly @@ -194,7 +194,7 @@ declare function objAndReadonly(primary: T, secondary: Readonly): T; declare function objAndPartial(primary: T, secondary: Partial): T; >objAndPartial : (primary: T, secondary: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >primary : T > : ^ >secondary : Partial @@ -210,7 +210,7 @@ function f20() { >objAndReadonly({ x: 0, y: 0 }, { x: 1 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >objAndReadonly : (primary: T, secondary: Readonly) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 0, y: 0 } : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -234,7 +234,7 @@ function f20() { >objAndReadonly({ x: 0, y: 0 }, { x: 1, y: 1 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >objAndReadonly : (primary: T, secondary: Readonly) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 0, y: 0 } : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -262,7 +262,7 @@ function f20() { >objAndReadonly({ x: 0, y: 0 }, { x: 1, y: 1, z: 1 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >objAndReadonly : (primary: T, secondary: Readonly) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 0, y: 0 } : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -299,7 +299,7 @@ function f21() { >objAndPartial({ x: 0, y: 0 }, { x: 1 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >objAndPartial : (primary: T, secondary: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 0, y: 0 } : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -323,7 +323,7 @@ function f21() { >objAndPartial({ x: 0, y: 0 }, { x: 1, y: 1 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >objAndPartial : (primary: T, secondary: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 0, y: 0 } : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -351,7 +351,7 @@ function f21() { >objAndPartial({ x: 0, y: 0 }, { x: 1, y: 1, z: 1 }) : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >objAndPartial : (primary: T, secondary: Partial) => T -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >{ x: 0, y: 0 } : { x: number; y: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : number @@ -392,7 +392,7 @@ interface Foo { function setState(obj: T, props: Pick) { >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : T > : ^ >props : Pick @@ -440,7 +440,7 @@ setState(foo, { a: "test", b: 43 }) >setState(foo, { a: "test", b: 43 }) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >{ a: "test", b: 43 } : { a: string; b: number; } @@ -458,7 +458,7 @@ setState(foo, { a: "hi" }); >setState(foo, { a: "hi" }) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >{ a: "hi" } : { a: string; } @@ -472,7 +472,7 @@ setState(foo, { b: undefined }); >setState(foo, { b: undefined }) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >{ b: undefined } : { b: undefined; } @@ -486,7 +486,7 @@ setState(foo, { }); >setState(foo, { }) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >{ } : {} @@ -496,7 +496,7 @@ setState(foo, foo); >setState(foo, foo) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >foo : Foo @@ -506,7 +506,7 @@ setState(foo, { a: undefined }); // Error >setState(foo, { a: undefined }) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >{ a: undefined } : { a: undefined; } @@ -520,7 +520,7 @@ setState(foo, { c: true }); // Error >setState(foo, { c: true }) : void > : ^^^^ >setState : (obj: T, props: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >foo : Foo > : ^^^ >{ c: true } : { c: boolean; } @@ -540,7 +540,7 @@ class C { setState(props: Pick) { >setState : (props: Pick) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >props : Pick > : ^^^^^^^^^^ @@ -800,7 +800,7 @@ let f: Foo2 = { function test1(obj: Pick) { >test1 : (obj: Pick) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : Pick > : ^^^^^^^^^^ @@ -817,7 +817,7 @@ function test1(obj: Pick) { function test2(obj: Record) { >test2 : (obj: Record) => void -> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >obj : Record > : ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeGenericIndexedAccess.types b/tests/baselines/reference/mappedTypeGenericIndexedAccess.types index 4cb47fadcc2de..19d7e7a66ed6b 100644 --- a/tests/baselines/reference/mappedTypeGenericIndexedAccess.types +++ b/tests/baselines/reference/mappedTypeGenericIndexedAccess.types @@ -56,7 +56,7 @@ class Test { addEntry(name: T, entry: Types[T]) { >addEntry : (name: T, entry: Types[T]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >name : T > : ^ >entry : Types[T] @@ -212,9 +212,9 @@ const typeHandlers: TypeHandlers = { const onSomeEvent = (p: P) => >onSomeEvent : (p: P) => void | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >(p: P) => typeHandlers[p.t]?.(p) : (p: P) => void | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >p : P > : ^^^^ diff --git a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types index cdbf993eebbb1..d3df08d3eac06 100644 --- a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types +++ b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesHomomorphism.types @@ -3,7 +3,7 @@ === internal.ts === export declare function usePrivateType(...args: T): PrivateMapped; >usePrivateType : (...args: T) => PrivateMapped -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >args : T > : ^ @@ -14,19 +14,19 @@ type PrivateMapped = {[K in keyof Obj]: Obj[K]}; === api.ts === import {usePrivateType} from './internal'; >usePrivateType : (...args: T) => T[any] extends infer T_1 ? { [K in keyof T_1]: T[any][K]; } : never -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ export const mappedUnionWithPrivateType = (...args: T) => usePrivateType(...args); >mappedUnionWithPrivateType : (...args: T) => T[any] extends infer T_1 ? { [K in keyof T_1]: T[any][K]; } : never -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >(...args: T) => usePrivateType(...args) : (...args: T) => T[any] extends infer T_1 ? { [K in keyof T_1]: T[any][K]; } : never -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >args : T > : ^ >usePrivateType(...args) : T[any] extends infer T_1 ? { [K in keyof T_1]: T[any][K]; } : never > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >usePrivateType : (...args: T_1) => T_1[any] extends infer T_2 ? { [K in keyof T_2]: T_1[any][K]; } : never -> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ >...args : unknown > : ^^^^^^^ >args : T diff --git a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesInlineForm.types b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesInlineForm.types index 760933e8f5b57..aea517a496c6c 100644 --- a/tests/baselines/reference/mappedTypeGenericInstantiationPreservesInlineForm.types +++ b/tests/baselines/reference/mappedTypeGenericInstantiationPreservesInlineForm.types @@ -5,9 +5,9 @@ export const test1 = >(schema: { >test1 : >(schema: { [K in keyof Required]: T[K]; }) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >>(schema: { [K in keyof Required]: T[K];}) => {} : >(schema: { [K in keyof Required]: T[K]; }) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >schema : { [K in keyof Required]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -16,7 +16,7 @@ export const test1 = >(schema: { export function test2>(schema: { >test2 : >(schema: { [K in keyof Required]: T[K]; }) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >schema : { [K in keyof Required]: T[K]; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeGenericWithKnownKeys.types b/tests/baselines/reference/mappedTypeGenericWithKnownKeys.types index 20495f1892e36..88844905b9972 100644 --- a/tests/baselines/reference/mappedTypeGenericWithKnownKeys.types +++ b/tests/baselines/reference/mappedTypeGenericWithKnownKeys.types @@ -5,7 +5,7 @@ function test>(shape: Shape, key: keyof Shape) { >test : >(shape: Shape, key: keyof Shape) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >shape : Shape > : ^^^^^ >key : keyof Shape diff --git a/tests/baselines/reference/mappedTypeIndexedAccessConstraint.types b/tests/baselines/reference/mappedTypeIndexedAccessConstraint.types index bed8d769bb832..c8fbb2f7286d6 100644 --- a/tests/baselines/reference/mappedTypeIndexedAccessConstraint.types +++ b/tests/baselines/reference/mappedTypeIndexedAccessConstraint.types @@ -27,7 +27,7 @@ type M3 = { [K in keyof Identity>]: M0[K] }; function foo(m1: M1[K], m2: M2[K], m3: M3[K]) { >foo : (m1: M1[K], m2: M2[K], m3: M3[K]) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >m1 : M1[K] > : ^^^^^ >m2 : M2[K] @@ -120,9 +120,9 @@ const mapped: { [K in keyof Partial]: Obj[K] } = {}; const resolveMapped = (key: K) => mapped[key].toString(); // Error >resolveMapped : (key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >(key: K) => mapped[key].toString() : (key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >mapped : { a?: 1 | undefined; b?: 2 | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : K @@ -261,9 +261,9 @@ const mapper: { [K in keyof PartMappings]: (o: MapperArgs) => PartMappings[K] const resolveMapper1 = ( >resolveMapper1 : (key: K, o: MapperArgs) => PartMappings[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >( key: K, o: MapperArgs) => mapper[key](o) : (key: K, o: MapperArgs) => PartMappings[K] -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >mapper : { "12": (o: MapperArgs<"12">) => PartMappings["12"]; 42: (o: MapperArgs<42>) => PartMappings[42]; foo?: ((o: MapperArgs<"foo">) => PartMappings["foo"]) | undefined; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ @@ -285,9 +285,9 @@ const resolveMapper1 = ( const resolveMapper2 = ( >resolveMapper2 : (key: K, o: MapperArgs) => PartMappings[K] | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >( key: K, o: MapperArgs) => mapper[key]?.(o) : (key: K, o: MapperArgs) => PartMappings[K] | undefined -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >mapper : { "12": (o: MapperArgs<"12">) => PartMappings["12"]; 42: (o: MapperArgs<42>) => PartMappings[42]; foo?: ((o: MapperArgs<"foo">) => PartMappings["foo"]) | undefined; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^ @@ -346,9 +346,9 @@ declare const mapIntersection: { const accessMapped = (key: K) => mapIntersection[key].toString(); >accessMapped : (key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >(key: K) => mapIntersection[key].toString() : (key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >key : K > : ^ >mapIntersection[key].toString() : string @@ -376,9 +376,9 @@ declare const resolved: { a?: number | undefined; b: number; c: number }; const accessResolved = (key: K) => resolved[key].toString(); >accessResolved : (key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >(key: K) => resolved[key].toString() : (key: K) => string -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >key : K > : ^ >resolved[key].toString() : string @@ -407,7 +407,7 @@ type Foo = { function test(obj: Pick & Partial, K>, key: K) { >test : (obj: Pick & Partial, K>, key: K) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : Pick & Partial, K> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : K diff --git a/tests/baselines/reference/mappedTypeInferenceAliasSubstitution.types b/tests/baselines/reference/mappedTypeInferenceAliasSubstitution.types index 62c4fb3404fc1..c0d01a627037b 100644 --- a/tests/baselines/reference/mappedTypeInferenceAliasSubstitution.types +++ b/tests/baselines/reference/mappedTypeInferenceAliasSubstitution.types @@ -23,9 +23,9 @@ type Field = { [K in A]: R } const f = (x: { [K in A]: Field }): R => ({} as any); >f : (x: { [K in A]: Field; }) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(x: { [K in A]: Field }): R => ({} as any) : (x: { [K in A]: Field; }) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : { [K in A]: Field; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ >({} as any) : any @@ -39,15 +39,15 @@ const r1 = f(v); >f(v) : number > : ^^^^^^ >f : (x: { [K in A]: Field; }) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >v : { test: { smth: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ const g = (x: Field>): R => ({} as any); >g : (x: Field>) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >(x: Field>): R => ({} as any) : (x: Field>) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >x : Field> > : ^^^^^^^^^^^^^^^^^^^^^ >({} as any) : any @@ -61,7 +61,7 @@ const r2 = g(v); >g(v) : number > : ^^^^^^ >g : (x: Field>) => R -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ >v : { test: { smth: number; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/mappedTypeInferenceErrors.types b/tests/baselines/reference/mappedTypeInferenceErrors.types index 0120c7e85bb72..7b6cb5b8cd0a9 100644 --- a/tests/baselines/reference/mappedTypeInferenceErrors.types +++ b/tests/baselines/reference/mappedTypeInferenceErrors.types @@ -12,7 +12,7 @@ type ComputedOf = { declare function foo(options: { props: P, computed: ComputedOf } & ThisType

diff --git a/tests/baselines/reference/identityForSignaturesWithTypeParametersAndAny.types b/tests/baselines/reference/identityForSignaturesWithTypeParametersAndAny.types index a5584881a2eb5..5f24ad9a08a4d 100644 --- a/tests/baselines/reference/identityForSignaturesWithTypeParametersAndAny.types +++ b/tests/baselines/reference/identityForSignaturesWithTypeParametersAndAny.types @@ -3,7 +3,7 @@ === identityForSignaturesWithTypeParametersAndAny.ts === var f: (x: T, y: U) => T; >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -11,7 +11,7 @@ var f: (x: T, y: U) => T; var f: (x: any, y: any) => any; >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >y : any @@ -19,7 +19,7 @@ var f: (x: any, y: any) => any; var g: (x: T, y: U) => T; >g : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -27,7 +27,7 @@ var g: (x: T, y: U) => T; var g: (x: any, y: any) => any; >g : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >y : any @@ -35,7 +35,7 @@ var g: (x: any, y: any) => any; var h: (x: T, y: U) => T; >h : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -43,7 +43,7 @@ var h: (x: T, y: U) => T; var h: (x: any, y: any) => any; >h : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >y : any @@ -51,7 +51,7 @@ var h: (x: any, y: any) => any; var i: (x: T, y: U) => T; >i : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -59,7 +59,7 @@ var i: (x: T, y: U) => T; var i: (x: any, y: string) => any; >i : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >y : string @@ -67,7 +67,7 @@ var i: (x: any, y: string) => any; var j: (x: T, y: U) => T; >j : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -75,7 +75,7 @@ var j: (x: T, y: U) => T; var j: (x: any, y: any) => string; >j : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : any > : ^^^ >y : any diff --git a/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types b/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types index c820265626dd0..d9c48a9470515 100644 --- a/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types +++ b/tests/baselines/reference/identityForSignaturesWithTypeParametersSwitched.types @@ -3,7 +3,7 @@ === identityForSignaturesWithTypeParametersSwitched.ts === var f: (x: T, y: U) => T; >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -11,7 +11,7 @@ var f: (x: T, y: U) => T; var f: (x: U, y: T) => U; >f : (x: T, y: U) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^ ^^ ^^ ^^ ^^^^^ >x : U > : ^ >y : T diff --git a/tests/baselines/reference/identityRelationNeverTypes.types b/tests/baselines/reference/identityRelationNeverTypes.types index bec78ed2759b1..5cc3fd0043369 100644 --- a/tests/baselines/reference/identityRelationNeverTypes.types +++ b/tests/baselines/reference/identityRelationNeverTypes.types @@ -25,7 +25,7 @@ declare class State { matches(stateValue: TSV): this is State & { value: TSV }; >matches : (stateValue: TSV) => this is State & { value: TSV; } -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^ ^^^^^ >stateValue : TSV > : ^^^ >value : TSV @@ -46,21 +46,21 @@ function f1(state: State<{ foo: number }>) { >state.matches('a') : boolean > : ^^^^^^^ >state.matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } -> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^ ^ ^^^ >state : State<{ foo: number; }> > : ^^^^^^^^^^^^^ ^^^^ >matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } -> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^ ^ ^^^ >'a' : "a" > : ^^^ >state.matches('a.b') : boolean > : ^^^^^^^ >state.matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } -> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^ ^ ^^^ >state : State<{ foo: number; }> & { value: "a"; } > : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >matches : (stateValue: TSV) => this is State<{ foo: number; }> & { value: TSV; } -> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^^^^ ^ ^^^ >'a.b' : "a.b" > : ^^^^^ diff --git a/tests/baselines/reference/illegalGenericWrapping1.types b/tests/baselines/reference/illegalGenericWrapping1.types index f281d7f5c817c..1bed1859e1829 100644 --- a/tests/baselines/reference/illegalGenericWrapping1.types +++ b/tests/baselines/reference/illegalGenericWrapping1.types @@ -12,7 +12,7 @@ interface Sequence { map(iterator: (value: T) => U): Sequence; >map : (iterator: (value: T) => U) => Sequence -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >iterator : (value: T) => U > : ^ ^^ ^^^^^ >value : T @@ -28,7 +28,7 @@ interface Sequence { groupBy(keySelector: (value: T) => K): Sequence<{ key: K; items: Sequence; }>; >groupBy : (keySelector: (value: T) => K) => Sequence<{ key: K; items: Sequence; }> -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >keySelector : (value: T) => K > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/implementArrayInterface.types b/tests/baselines/reference/implementArrayInterface.types index 8d7e32cd16a2a..1f8df7e69a443 100644 --- a/tests/baselines/reference/implementArrayInterface.types +++ b/tests/baselines/reference/implementArrayInterface.types @@ -15,13 +15,13 @@ declare class MyArray implements Array { concat(...items: U[]): T[]; >concat : { (...items: U[]): T[]; (...items: T[]): T[]; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >items : U[] > : ^^^ concat(...items: T[]): T[]; >concat : { (...items: U[]): T[]; (...items: T[]): T[]; } -> : ^^^ ^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ +> : ^^^^^^^^^^^^^ ^^^^^ ^^ ^^^ ^^^^^^ ^^ ^^^ ^^^ >items : T[] > : ^^^ @@ -149,7 +149,7 @@ declare class MyArray implements Array { map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[]; >map : (callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any) => U[] -> : ^ ^^ ^^ ^^ ^^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^^ ^^^^^ >callbackfn : (value: T, index: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -177,7 +177,7 @@ declare class MyArray implements Array { reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; >reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : T @@ -193,7 +193,7 @@ declare class MyArray implements Array { reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; >reduce : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : U @@ -209,7 +209,7 @@ declare class MyArray implements Array { reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; >reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : T @@ -225,7 +225,7 @@ declare class MyArray implements Array { reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; >reduceRight : { (callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): T; (callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U; } -> : ^^^ ^^ ^^ ^^^ ^^^ ^^^ ^^ ^^ ^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^ ^^^ ^^^ ^^^^^^ ^^ ^^ ^^ ^^^ ^^^ >callbackfn : (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U > : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >previousValue : U diff --git a/tests/baselines/reference/implementGenericWithMismatchedTypes.types b/tests/baselines/reference/implementGenericWithMismatchedTypes.types index 690e4ec8434ab..b639e4978c084 100644 --- a/tests/baselines/reference/implementGenericWithMismatchedTypes.types +++ b/tests/baselines/reference/implementGenericWithMismatchedTypes.types @@ -38,7 +38,7 @@ class C2 implements IFoo2 { // error foo(x: Tstring): number { >foo : (x: Tstring) => number -> : ^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^ ^^ ^^^^^ >x : Tstring > : ^^^^^^^ diff --git a/tests/baselines/reference/implicitAnyGenericTypeInference.types b/tests/baselines/reference/implicitAnyGenericTypeInference.types index a3cffaae3e755..2e50ae17337e5 100644 --- a/tests/baselines/reference/implicitAnyGenericTypeInference.types +++ b/tests/baselines/reference/implicitAnyGenericTypeInference.types @@ -4,7 +4,7 @@ interface Comparer { compareTo(x: T, y: U): U; >compareTo : (x: T, y: U) => U -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U diff --git a/tests/baselines/reference/implicitAnyGenerics.types b/tests/baselines/reference/implicitAnyGenerics.types index 07cf56c42e57d..57bc345b5045d 100644 --- a/tests/baselines/reference/implicitAnyGenerics.types +++ b/tests/baselines/reference/implicitAnyGenerics.types @@ -100,18 +100,18 @@ var d5: D = new D(null); function foo(): T { return null; }; >foo : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ foo() >foo() : unknown > : ^^^^^^^ >foo : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ foo(); >foo() : any >foo : () => T -> : ^ ^^^^^^^ +> : ^^^^^^^^^ diff --git a/tests/baselines/reference/implicitIndexSignatures.types b/tests/baselines/reference/implicitIndexSignatures.types index e967e4fc9d366..def7dc61c6ed6 100644 --- a/tests/baselines/reference/implicitIndexSignatures.types +++ b/tests/baselines/reference/implicitIndexSignatures.types @@ -93,7 +93,7 @@ map = names2; declare function getStringIndexValue(map: { [x: string]: T }): T; >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >map : { [x: string]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : string @@ -101,7 +101,7 @@ declare function getStringIndexValue(map: { [x: string]: T }): T; declare function getNumberIndexValue(map: { [x: number]: T }): T; >getNumberIndexValue : (map: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >map : { [x: number]: T; } > : ^^^^^^^^^^^^^^^^^^^ >x : number @@ -139,7 +139,7 @@ function f1() { >getStringIndexValue(o1) : number > : ^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o1 : { a: number; b: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -149,7 +149,7 @@ function f1() { >getStringIndexValue(o2) : number > : ^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o2 : { a: number; b: number; } > : ^^^^^ ^^^^^ ^^^ } @@ -186,7 +186,7 @@ function f2() { >getStringIndexValue(o1) : string > : ^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o1 : { a: string; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -196,7 +196,7 @@ function f2() { >getStringIndexValue(o2) : string > : ^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o2 : { a: string; b: string; } > : ^^^^^ ^^^^^ ^^^ } @@ -233,7 +233,7 @@ function f3() { >getStringIndexValue(o1) : string | number > : ^^^^^^^^^^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o1 : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -243,7 +243,7 @@ function f3() { >getStringIndexValue(o2) : string | number > : ^^^^^^^^^^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o2 : { a: number; b: string; } > : ^^^^^ ^^^^^ ^^^ } @@ -286,7 +286,7 @@ function f4() { >getStringIndexValue(o1) : string | number > : ^^^^^^^^^^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o1 : { 0: string; 1: string; count: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -296,7 +296,7 @@ function f4() { >getStringIndexValue(o2) : string | number > : ^^^^^^^^^^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o2 : { 0: string; 1: string; count: number; } > : ^^^^^ ^^^^^ ^^^^^^^^^ ^^^ @@ -306,7 +306,7 @@ function f4() { >getNumberIndexValue(o1) : string > : ^^^^^^ >getNumberIndexValue : (map: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o1 : { 0: string; 1: string; count: number; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -316,7 +316,7 @@ function f4() { >getNumberIndexValue(o2) : string > : ^^^^^^ >getNumberIndexValue : (map: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >o2 : { 0: string; 1: string; count: number; } > : ^^^^^ ^^^^^ ^^^^^^^^^ ^^^ } @@ -363,7 +363,7 @@ function f5() { >getStringIndexValue(E1) : string | E1 > : ^^^^^^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E1 : typeof E1 > : ^^^^^^^^^ @@ -373,7 +373,7 @@ function f5() { >getStringIndexValue(E2) : E2 > : ^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E2 : typeof E2 > : ^^^^^^^^^ @@ -383,7 +383,7 @@ function f5() { >getStringIndexValue(E3) : string | E3.A > : ^^^^^^^^^^^^^ >getStringIndexValue : (map: { [x: string]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E3 : typeof E3 > : ^^^^^^^^^ @@ -393,7 +393,7 @@ function f5() { >getNumberIndexValue(E1) : string > : ^^^^^^ >getNumberIndexValue : (map: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E1 : typeof E1 > : ^^^^^^^^^ @@ -403,7 +403,7 @@ function f5() { >getNumberIndexValue(E2) : unknown > : ^^^^^^^ >getNumberIndexValue : (map: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E2 : typeof E2 > : ^^^^^^^^^ @@ -413,7 +413,7 @@ function f5() { >getNumberIndexValue(E3) : string > : ^^^^^^ >getNumberIndexValue : (map: { [x: number]: T; }) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >E3 : typeof E3 > : ^^^^^^^^^ } diff --git a/tests/baselines/reference/importAliasModuleExports.types b/tests/baselines/reference/importAliasModuleExports.types index 97087497eaacc..c4849ef9d64ae 100644 --- a/tests/baselines/reference/importAliasModuleExports.types +++ b/tests/baselines/reference/importAliasModuleExports.types @@ -74,11 +74,11 @@ Object.defineProperty(A.prototype, "def", { value: 0 }); >Object.defineProperty(A.prototype, "def", { value: 0 }) : A > : ^ >Object.defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ >defineProperty : (o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType) => T -> : ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >A.prototype : A > : ^ >A : typeof A diff --git a/tests/baselines/reference/importHelpers.types b/tests/baselines/reference/importHelpers.types index d786b11dda4f9..140e741b24340 100644 --- a/tests/baselines/reference/importHelpers.types +++ b/tests/baselines/reference/importHelpers.types @@ -32,7 +32,7 @@ class C { function id(x: T) { >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -47,7 +47,7 @@ export const result = id`hello world`; >id`hello world` : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >`hello world` : "hello world" > : ^^^^^^^^^^^^^ @@ -83,7 +83,7 @@ class C { function id(x: T) { >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >x : T > : ^ @@ -98,7 +98,7 @@ const result = id`hello world`; >id`hello world` : TemplateStringsArray > : ^^^^^^^^^^^^^^^^^^^^ >id : (x: T) => T -> : ^ ^^ ^^ ^^^^^^ +> : ^^^^ ^^ ^^^^^^ >`hello world` : "hello world" > : ^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=commonjs,target=es5).types b/tests/baselines/reference/importMeta(module=commonjs,target=es5).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=commonjs,target=es5).types +++ b/tests/baselines/reference/importMeta(module=commonjs,target=es5).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=commonjs,target=esnext).types b/tests/baselines/reference/importMeta(module=commonjs,target=esnext).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=commonjs,target=esnext).types +++ b/tests/baselines/reference/importMeta(module=commonjs,target=esnext).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=es2020,target=es5).types b/tests/baselines/reference/importMeta(module=es2020,target=es5).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=es2020,target=es5).types +++ b/tests/baselines/reference/importMeta(module=es2020,target=es5).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=es2020,target=esnext).types b/tests/baselines/reference/importMeta(module=es2020,target=esnext).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=es2020,target=esnext).types +++ b/tests/baselines/reference/importMeta(module=es2020,target=esnext).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=esnext,target=es5).types b/tests/baselines/reference/importMeta(module=esnext,target=es5).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=esnext,target=es5).types +++ b/tests/baselines/reference/importMeta(module=esnext,target=es5).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=esnext,target=esnext).types b/tests/baselines/reference/importMeta(module=esnext,target=esnext).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=esnext,target=esnext).types +++ b/tests/baselines/reference/importMeta(module=esnext,target=esnext).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=system,target=es5).types b/tests/baselines/reference/importMeta(module=system,target=es5).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=system,target=es5).types +++ b/tests/baselines/reference/importMeta(module=system,target=es5).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importMeta(module=system,target=esnext).types b/tests/baselines/reference/importMeta(module=system,target=esnext).types index 62a9f5654ba8c..7ac2780f7d5de 100644 --- a/tests/baselines/reference/importMeta(module=system,target=esnext).types +++ b/tests/baselines/reference/importMeta(module=system,target=esnext).types @@ -130,7 +130,7 @@ >document.body.appendChild(image) : HTMLImageElement > : ^^^^^^^^^^^^^^^^ >document.body.appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >document.body : HTMLElement > : ^^^^^^^^^^^ >document : Document @@ -138,7 +138,7 @@ >body : HTMLElement > : ^^^^^^^^^^^ >appendChild : (node: T) => T -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >image : HTMLImageElement > : ^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/importTypeGeneric.types b/tests/baselines/reference/importTypeGeneric.types index 89f99fcf06016..30d52628d60eb 100644 --- a/tests/baselines/reference/importTypeGeneric.types +++ b/tests/baselines/reference/importTypeGeneric.types @@ -15,7 +15,7 @@ export interface Foo { === usage.ts === export function getFooFrom(v: T): import(T).Foo { >getFooFrom : (v: T) => import(T).Foo -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >v : T > : ^ @@ -28,7 +28,7 @@ export function getFooFrom(v: T): import(T).Foo { export function getFooValueFrom(v: T): import(T).Foo["a"] { >getFooValueFrom : (v: T) => import(T).Foo["a"] -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >v : T > : ^ diff --git a/tests/baselines/reference/importTypeGenericArrowTypeParenthesized.types b/tests/baselines/reference/importTypeGenericArrowTypeParenthesized.types index 06465cd4faead..b280c562294f1 100644 --- a/tests/baselines/reference/importTypeGenericArrowTypeParenthesized.types +++ b/tests/baselines/reference/importTypeGenericArrowTypeParenthesized.types @@ -9,24 +9,24 @@ declare module "module" { export function fn(x: T): Modifier; >fn : (x: T) => Modifier -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ } === index.ts === import { fn } from "module"; >fn : (x: T) => import("module").Modifier -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ export const fail1 = fn((x: T): T => x); >fail1 : import("module").Modifier<((x: T) => T)> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ >fn((x: T): T => x) : import("module").Modifier<((x: T) => T)> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ >fn : (x: T) => import("module").Modifier -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >(x: T): T => x : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ >x : T @@ -34,13 +34,13 @@ export const fail1 = fn((x: T): T => x); export const fail2 = fn(function(x: T): T { >fail2 : import("module").Modifier<((x: T) => T)> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ >fn(function(x: T): T { return x;}) : import("module").Modifier<((x: T) => T)> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ >fn : (x: T) => import("module").Modifier -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >function(x: T): T { return x;} : (x: T) => T -> : ^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^^^^ >x : T > : ^ @@ -56,7 +56,7 @@ export const works1 = fn((x: number) => x); >fn((x: number) => x) : import("module").Modifier<(x: number) => number> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ >fn : (x: T) => import("module").Modifier -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >(x: number) => x : (x: number) => number > : ^ ^^ ^^^^^^^^^^^ >x : number @@ -76,7 +76,7 @@ export const works2 = fn(x => x); >fn(x => x) : import("module").Modifier > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >fn : (x: T) => import("module").Modifier -> : ^ ^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ +> : ^^^^ ^^ ^^^^^ ^^^^^^^^ ^^^^^^^^ >x => x : (x: T) => T > : ^^^^ ^^^^^^^^^ >x : T diff --git a/tests/baselines/reference/inDoesNotOperateOnPrimitiveTypes.types b/tests/baselines/reference/inDoesNotOperateOnPrimitiveTypes.types index 21c427bfcf690..1cf7cfd394205 100644 --- a/tests/baselines/reference/inDoesNotOperateOnPrimitiveTypes.types +++ b/tests/baselines/reference/inDoesNotOperateOnPrimitiveTypes.types @@ -3,9 +3,9 @@ === inDoesNotOperateOnPrimitiveTypes.ts === const validHasKey = ( >validHasKey : (thing: T, key: string) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >( thing: T, key: string,): boolean => { return key in thing; // Ok} : (thing: T, key: string) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ thing: T, >thing : T @@ -28,9 +28,9 @@ const validHasKey = ( const alsoValidHasKey = ( >alsoValidHasKey : (thing: T, key: string) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ >( thing: T, key: string,): boolean => { return key in thing; // Ok (as T may be instantiated with a valid type)} : (thing: T, key: string) => boolean -> : ^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^ ^^ ^^ ^^ ^^^^^ thing: T, >thing : T @@ -53,7 +53,7 @@ const alsoValidHasKey = ( function invalidHasKey( >invalidHasKey : (thing: T, key: string) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ thing: T, >thing : T @@ -75,7 +75,7 @@ function invalidHasKey( function union1(thing: T | U) { >union1 : (thing: T | U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >thing : T | U > : ^^^^^ @@ -90,7 +90,7 @@ function union1(thing: T | U) { function union2(thing: T | U) { >union2 : (thing: T | U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >thing : T | U > : ^^^^^ @@ -124,7 +124,7 @@ function union2(thing: T | U) { function union3(thing: T | string | number) { >union3 : (thing: T | string | number) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >thing : string | number | T > : ^^^^^^^^^^^^^^^^^^^ @@ -168,7 +168,7 @@ function union3(thing: T | string | number) { function union4(thing: T) { >union4 : (thing: T) => void -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >thing : T > : ^ @@ -183,7 +183,7 @@ function union4(thing: T) { function union5(p: T | U) { >union5 : (p: T | U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >p : T | U > : ^^^^^ @@ -225,7 +225,7 @@ function union5(p: T | U) function intersection1(thing: T & U) { >intersection1 : (thing: T & U) => void -> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >thing : T & U > : ^^^^^ @@ -240,7 +240,7 @@ function intersection1(thing: T & U) { function intersection2(thing: T & (0 | 1 | 2)) { >intersection2 : (thing: T & (0 | 1 | 2)) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >thing : T & (0 | 1 | 2) > : ^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/inKeywordAndUnknown.types b/tests/baselines/reference/inKeywordAndUnknown.types index 3b18bfedcabd5..472468552f90d 100644 --- a/tests/baselines/reference/inKeywordAndUnknown.types +++ b/tests/baselines/reference/inKeywordAndUnknown.types @@ -122,7 +122,7 @@ function f1(x: unknown) { function f2(x: T) { >f2 : (x: T) => x is T & Object & Record<"a", unknown> -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -172,7 +172,7 @@ function f3(x: {}) { function f4(x: T) { >f4 : (x: T) => x is T & Object & Record<"a", unknown> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -195,7 +195,7 @@ function f4(x: T) { function f5(x: T & {}) { >f5 : (x: T & {}) => x is T & Object & Record<"a", unknown> -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T & {} > : ^^^^^^ @@ -218,7 +218,7 @@ function f5(x: T & {}) { function f6(x: T & {}) { >f6 : (x: T & {}) => x is T & Object & Record<"a", unknown> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ @@ -241,7 +241,7 @@ function f6(x: T & {}) { function f7(x: T & {}) { >f7 : (x: T & {}) => x is T & Record<"a", unknown> -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/inKeywordTypeguard(strict=false).types b/tests/baselines/reference/inKeywordTypeguard(strict=false).types index eaf32e71c8c0b..bba6bea1141aa 100644 --- a/tests/baselines/reference/inKeywordTypeguard(strict=false).types +++ b/tests/baselines/reference/inKeywordTypeguard(strict=false).types @@ -907,7 +907,7 @@ function f2(x: object) { function f3(x: T) { >f3 : (x: T) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -1590,7 +1590,7 @@ function f16(x: typeof globalThis, y: Window & typeof globalThis) { function foo(value: A) { >foo : (value: A) => void -> : ^ ^^ ^^ ^^^^^^^^^ +> : ^^^^ ^^ ^^^^^^^^^ >value : A > : ^ @@ -1656,7 +1656,7 @@ const checkIsTouchDevice = () => function isHTMLTable(table: T): boolean { >isHTMLTable : (table: T) => boolean -> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >table : T > : ^ @@ -1681,9 +1681,9 @@ function isHTMLTable(table: T): boolean { const f =