diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 7740aeb727250..a4020504f9c07 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7459,8 +7459,12 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { return factory.createTypeParameterDeclaration(modifiers, name, constraintNode, defaultParameterNode); } + function typeToTypeNodeHelperWithPossibleReusableTypeNode(type: Type, typeNode: TypeNode | undefined, context: NodeBuilderContext) { + return typeNode && tryReuseExistingNonParameterTypeNode(context, typeNode, type) || typeToTypeNodeHelper(type, context); + } + function typeParameterToDeclaration(type: TypeParameter, context: NodeBuilderContext, constraint = getConstraintOfTypeParameter(type)): TypeParameterDeclaration { - const constraintNode = constraint && typeToTypeNodeHelper(constraint, context); + const constraintNode = constraint && typeToTypeNodeHelperWithPossibleReusableTypeNode(constraint, getConstraintDeclaration(type), context); return typeParameterToDeclarationWithConstraint(type, context, constraintNode); } @@ -8274,7 +8278,6 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { sym = resolveEntityName(leftmost, meaning, /*ignoreErrors*/ true, /*dontResolveAlias*/ true); if ( context.enclosingDeclaration && - (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration || !findAncestor(node, n => n === context.enclosingDeclaration)) && !(sym && sym.flags & SymbolFlags.TypeParameter) ) { sym = getExportSymbolOfValueSymbolIfExported(sym); @@ -8431,6 +8434,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } function visitExistingNodeTreeSymbolsWorker(node: Node): Node | undefined { + if (isJSDocTypeExpression(node)) { + // Unwrap JSDocTypeExpressions + return visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode); + } // We don't _actually_ support jsdoc namepath types, emit `any` instead if (isJSDocAllType(node) || node.kind === SyntaxKind.JSDocNamepathType) { return factory.createKeywordTypeNode(SyntaxKind.AnyKeyword); diff --git a/tests/baselines/reference/1.0lib-noErrors.types b/tests/baselines/reference/1.0lib-noErrors.types index e35708ca6d3d5..b307b61b36de4 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[] > : ^^^ diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedAndNonExportedLocalVarsOfTheSameName.types index 7b8940fedd9d3..f7d4796804082 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 > : ^ diff --git a/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types b/tests/baselines/reference/TwoInternalModulesThatMergeEachWithExportedLocalVarsOfTheSameName.types index c59bf4224a037..cf8deaad9704a 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 55a47b3cd3d9d..1e0e29ec3dd25 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 c4332745638ba..9de6afabba006 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 > : ^ diff --git a/tests/baselines/reference/accessorsOverrideProperty8.types b/tests/baselines/reference/accessorsOverrideProperty8.types index 1126ac111e1e4..2da2e5833d5a2 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 @@ -43,7 +43,7 @@ const Base = classWithProperties({ >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 9f4156dfb087f..4f46e46d2680d 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 33a06e709df8f..e42aab3004d1c 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/aliasUsageInGenericFunction.types b/tests/baselines/reference/aliasUsageInGenericFunction.types index 8e81249626c28..d197ab6f2d306 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/amdDeclarationEmitNoExtraDeclare.types b/tests/baselines/reference/amdDeclarationEmitNoExtraDeclare.types index 0435ab5bcd405..6a5fe29602410 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/anonClassDeclarationEmitIsAnon.types b/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types index 988cb634458ab..f69bab5888cc6 100644 --- a/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types +++ b/tests/baselines/reference/anonClassDeclarationEmitIsAnon.types @@ -29,8 +29,8 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Timestamped : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : TBase > : ^^^^^ @@ -59,8 +59,8 @@ export function Timestamped(Base: TBase) { import { wrapClass, Timestamped } from "./wrapClass"; >wrapClass : (param: any) => typeof Wrapped > : ^ ^^ ^^^^^^^^^^^^^^^^^^^ ->Timestamped : >(Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Timestamped : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase +> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ export default wrapClass(0); >wrapClass(0) : typeof Wrapped @@ -88,8 +88,8 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Timestamped : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Timestamped.(Anonymous class); } & TBase +> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >User : typeof User > : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/anyAssignableToEveryType.types b/tests/baselines/reference/anyAssignableToEveryType.types index b1370dffaa104..e298b59a6d888 100644 --- a/tests/baselines/reference/anyAssignableToEveryType.types +++ b/tests/baselines/reference/anyAssignableToEveryType.types @@ -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/argumentsReferenceInFunction1_Js.types b/tests/baselines/reference/argumentsReferenceInFunction1_Js.types index b72db925f5b91..577b5f0270ea8 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 4027490e8b9e5..64147a4e2557d 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 c27ee50812081..bde5cdabc0dd4 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/arrayConcat3.types b/tests/baselines/reference/arrayConcat3.types index c845e8d2a087b..7903cd79dcbc9 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[] diff --git a/tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types b/tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.types index e0b3f2970e555..e5c77cb00c81d 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 @@ -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) => { done: A; recur: A extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? { done: InnerArr; recur: InnerArr extends readonly (infer InnerArr)[] ? any[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]]]]] extends infer T_1 ? T_1 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]]]]] ? T_1 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]]]] extends infer T_2 ? T_2 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]]]] ? T_2 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]]] extends infer T_3 ? T_3 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]]] ? T_3 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]] extends infer T_4 ? T_4 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]]] ? T_4 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]] extends infer T_5 ? T_5 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]]] ? T_5 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]] extends infer T_6 ? T_6 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]]] ? T_6 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]] extends infer T_7 ? T_7 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]]] ? T_7 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]] extends infer T_8 ? T_8 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]]] ? T_8 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]] extends infer T_9 ? T_9 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]]] ? T_9 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]] extends infer T_10 ? T_10 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D]] ? T_10 extends -1 ? "done" : "recur" : never : never] : InnerArr; }[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D] extends infer T_11 ? T_11 extends [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][D] ? T_11 extends -1 ? "done" : "recur" : never : never] : A; }[D extends -1 ? "done" : "recur"][] -> : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^ ^^^^^^^^^ ^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : T[] > : ^^^ >depth : number diff --git a/tests/baselines/reference/arrayFlatNoCrashInference.types b/tests/baselines/reference/arrayFlatNoCrashInference.types index 80c628212cc92..8e01fa445141c 100644 --- a/tests/baselines/reference/arrayFlatNoCrashInference.types +++ b/tests/baselines/reference/arrayFlatNoCrashInference.types @@ -13,11 +13,11 @@ function foo(arr: T[], depth: number) { >arr.flat(depth) : FlatArray[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr.flat : (this: A, depth?: D | undefined) => FlatArray[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : T[] > : ^^^ >flat : (this: A, depth?: D | undefined) => FlatArray[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >depth : number > : ^^^^^^ } diff --git a/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types b/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types index 4f8ae606506f5..12a1958a001b1 100644 --- a/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types +++ b/tests/baselines/reference/arrayFlatNoCrashInferenceDeclarations.types @@ -13,11 +13,11 @@ function foo(arr: T[], depth: number) { >arr.flat(depth) : FlatArray[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr.flat : (this: A, depth?: D | undefined) => FlatArray[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >arr : T[] > : ^^^ >flat : (this: A, depth?: D | undefined) => FlatArray[] -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >depth : number > : ^^^^^^ } diff --git a/tests/baselines/reference/arraySpreadInCall.types b/tests/baselines/reference/arraySpreadInCall.types index 47a8eb46c3072..55fbaaf5f15d4 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/assertInWrapSomeTypeParameter.types b/tests/baselines/reference/assertInWrapSomeTypeParameter.types index 2739028c7e116..f0bd1575914de 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/assignmentCompatWithCallSignatures3.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures3.errors.txt index def250f002fe2..1d1c9bfdcebd3 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures3.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.errors.txt @@ -42,12 +42,12 @@ assignmentCompatWithCallSignatures3.ts(77,1): error TS2322: Type '(x: { foo: str Types of parameters 'y' and 'y' are incompatible. Type 'T' is not assignable to type '{ foo: string; bar: string; }'. Property 'bar' is missing in type 'Base' but required in type '{ foo: string; bar: string; }'. -assignmentCompatWithCallSignatures3.ts(80,1): error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '(x: Base[], y: T) => Derived[]'. +assignmentCompatWithCallSignatures3.ts(80,1): error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '>(x: Base[], y: T) => Derived[]'. Types of parameters 'y' and 'y' are incompatible. Type 'T' is not assignable to type 'Derived2[]'. Type 'Base[]' is not assignable to type 'Derived2[]'. Type 'Base' is missing the following properties from type 'Derived2': baz, bar -assignmentCompatWithCallSignatures3.ts(83,1): error TS2322: Type '(x: Base[], y: Derived[]) => Derived[]' is not assignable to type '(x: Base[], y: T) => T'. +assignmentCompatWithCallSignatures3.ts(83,1): error TS2322: Type '(x: Base[], y: Derived[]) => Derived[]' is not assignable to type '>(x: Base[], y: T) => T'. Type 'Derived[]' is not assignable to type 'T'. 'Derived[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Derived[]'. assignmentCompatWithCallSignatures3.ts(85,1): error TS2322: Type '(x: { a: T; b: T; }) => T' is not assignable to type '(x: { a: string; b: number; }) => Object'. @@ -204,7 +204,7 @@ assignmentCompatWithCallSignatures3.ts(86,1): error TS2322: Type '(x: { a: strin a12 = b12; // ok b12 = a12; // ok ~~~ -!!! error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '(x: Base[], y: T) => Derived[]'. +!!! error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '>(x: Base[], y: T) => Derived[]'. !!! error TS2322: Types of parameters 'y' and 'y' are incompatible. !!! error TS2322: Type 'T' is not assignable to type 'Derived2[]'. !!! error TS2322: Type 'Base[]' is not assignable to type 'Derived2[]'. @@ -213,7 +213,7 @@ assignmentCompatWithCallSignatures3.ts(86,1): error TS2322: Type '(x: { a: strin a13 = b13; // ok b13 = a13; // ok ~~~ -!!! error TS2322: Type '(x: Base[], y: Derived[]) => Derived[]' is not assignable to type '(x: Base[], y: T) => T'. +!!! error TS2322: Type '(x: Base[], y: Derived[]) => Derived[]' is not assignable to type '>(x: Base[], y: T) => T'. !!! error TS2322: Type 'Derived[]' is not assignable to type 'T'. !!! error TS2322: 'Derived[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Derived[]'. var b14: (x: { a: T; b: T }) => T; diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types index 45ece30a72527..99f9739c55823 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 @@ -348,7 +348,7 @@ b5 = a5; // ok 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,65 +492,65 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>b12 : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a12 = b12; // ok ->a12 = b12 : (x: Array, y: T) => Derived[] -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>a12 = b12 : >(x: Array, y: T) => Derived[] +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >a12 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : (x: Array, y: T) => Derived[] -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>b12 : >(x: Array, y: T) => Derived[] +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ b12 = a12; // ok >b12 = a12 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : (x: Array, y: T) => Derived[] -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>b12 : >(x: Array, y: T) => Derived[] +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >a12 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ var b13: >(x: Array, y: T) => T; ->b13 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>b13 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13 = b13; // ok ->a13 = b13 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>a13 = b13 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a13 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b13 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b13 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ b13 = a13; // ok >b13 = a13 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b13 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b13 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a13 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -604,25 +604,25 @@ b15 = a15; // ok 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[] diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt index 9a807ded124eb..c91ddb00897e1 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.errors.txt @@ -23,7 +23,7 @@ assignmentCompatWithCallSignatures4.ts(58,9): error TS2322: Type '(...x: Base[]) assignmentCompatWithCallSignatures4.ts(62,9): error TS2322: Type '(x: { foo: string; }, y: { foo: string; bar: string; }) => Base' is not assignable to type '(x: T, y: T) => T'. Type 'Base' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'Base'. -assignmentCompatWithCallSignatures4.ts(66,9): error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '(x: Base[], y: Base[]) => T'. +assignmentCompatWithCallSignatures4.ts(66,9): error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '>(x: Base[], y: Base[]) => T'. Type 'Derived[]' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'Derived[]'. assignmentCompatWithCallSignatures4.ts(69,9): error TS2322: Type '(x: { a: T; b: T; }) => T' is not assignable to type '(x: { a: string; b: number; }) => number'. @@ -163,7 +163,7 @@ assignmentCompatWithCallSignatures4.ts(96,9): error TS2322: Type '(x: T) => s a12 = b12; b12 = a12; ~~~ -!!! error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '(x: Base[], y: Base[]) => T'. +!!! error TS2322: Type '(x: Base[], y: Derived2[]) => Derived[]' is not assignable to type '>(x: Base[], y: Base[]) => T'. !!! error TS2322: Type 'Derived[]' is not assignable to type 'T'. !!! error TS2322: 'T' could be instantiated with an arbitrary type which could be unrelated to 'Derived[]'. diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types index 7a029647be381..c4e0eca4b5293 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 @@ -210,7 +210,7 @@ module Errors { 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,41 +299,41 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>b12 : >(x: Array, y: Array) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] > : ^^^^^^ a12 = b12; ->a12 = b12 : (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>a12 = b12 : >(x: Array, y: Array) => T +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a12 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b12 : >(x: Array, y: Array) => T +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ b12 = a12; >b12 = a12 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b12 : >(x: Array, y: Array) => T +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a12 : (x: Array, y: Array) => Derived[] > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -365,7 +365,7 @@ module Errors { var b15a: (x: { a: T; b: T }) => number; >b15a : (x: { a: T; b: T; }) => number -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : { a: T; b: T; } > : ^^^^^ ^^^^^ ^^^ >a : T @@ -375,17 +375,17 @@ 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 > : ^ ^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types index ba37ebc1a3c74..14a57893efcb4 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types @@ -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 @@ -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 @@ -274,7 +274,7 @@ b5 = a5; // ok var b6: (x: (arg: T) => U) => T; >b6 : (x: (arg: T) => U) => T -> : ^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => U > : ^ ^^ ^^^^^ >arg : T @@ -282,19 +282,19 @@ 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 @@ -372,11 +372,11 @@ a15 = b16; // ok 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[] @@ -390,17 +390,17 @@ 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[] diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types index 378ae62ce743e..144abcac39d8a 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types @@ -70,7 +70,7 @@ interface A { a6: (x: (arg: T) => Derived) => T; >a6 : (x: (arg: T) => Derived) => T -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : (arg: T) => Derived > : ^ ^^ ^^^^^ >arg : 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 @@ -321,23 +321,23 @@ 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.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.errors.txt index fc64e02f7c6a9..ce2b75804682f 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.errors.txt @@ -42,12 +42,12 @@ assignmentCompatWithConstructSignatures3.ts(77,1): error TS2322: Type 'new (x: { Types of parameters 'y' and 'y' are incompatible. Type 'T' is not assignable to type '{ foo: string; bar: string; }'. Property 'bar' is missing in type 'Base' but required in type '{ foo: string; bar: string; }'. -assignmentCompatWithConstructSignatures3.ts(80,1): error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new (x: Base[], y: T) => Derived[]'. +assignmentCompatWithConstructSignatures3.ts(80,1): error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new >(x: Base[], y: T) => Derived[]'. Types of parameters 'y' and 'y' are incompatible. Type 'T' is not assignable to type 'Derived2[]'. Type 'Base[]' is not assignable to type 'Derived2[]'. Type 'Base' is missing the following properties from type 'Derived2': baz, bar -assignmentCompatWithConstructSignatures3.ts(83,1): error TS2322: Type 'new (x: Base[], y: Derived[]) => Derived[]' is not assignable to type 'new (x: Base[], y: T) => T'. +assignmentCompatWithConstructSignatures3.ts(83,1): error TS2322: Type 'new (x: Base[], y: Derived[]) => Derived[]' is not assignable to type 'new >(x: Base[], y: T) => T'. Type 'Derived[]' is not assignable to type 'T'. 'Derived[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Derived[]'. assignmentCompatWithConstructSignatures3.ts(85,1): error TS2322: Type 'new (x: { a: T; b: T; }) => T' is not assignable to type 'new (x: { a: string; b: number; }) => Object'. @@ -204,7 +204,7 @@ assignmentCompatWithConstructSignatures3.ts(86,1): error TS2322: Type 'new (x: { a12 = b12; // ok b12 = a12; // ok ~~~ -!!! error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new (x: Base[], y: T) => Derived[]'. +!!! error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new >(x: Base[], y: T) => Derived[]'. !!! error TS2322: Types of parameters 'y' and 'y' are incompatible. !!! error TS2322: Type 'T' is not assignable to type 'Derived2[]'. !!! error TS2322: Type 'Base[]' is not assignable to type 'Derived2[]'. @@ -213,7 +213,7 @@ assignmentCompatWithConstructSignatures3.ts(86,1): error TS2322: Type 'new (x: { a13 = b13; // ok b13 = a13; // ok ~~~ -!!! error TS2322: Type 'new (x: Base[], y: Derived[]) => Derived[]' is not assignable to type 'new (x: Base[], y: T) => T'. +!!! error TS2322: Type 'new (x: Base[], y: Derived[]) => Derived[]' is not assignable to type 'new >(x: Base[], y: T) => T'. !!! error TS2322: Type 'Derived[]' is not assignable to type 'T'. !!! error TS2322: 'Derived[]' is assignable to the constraint of type 'T', but 'T' could be instantiated with a different subtype of constraint 'Derived[]'. var b14: new (x: { a: T; b: T }) => T; diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types index 7342a01553955..4be78c548981c 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 @@ -348,7 +348,7 @@ b5 = a5; // ok 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,65 +492,65 @@ 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 -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>b12 : new >(x: Array, y: T) => Array +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a12 = b12; // ok ->a12 = b12 : new (x: Array, y: T) => Derived[] -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>a12 = b12 : new >(x: Array, y: T) => Derived[] +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >a12 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : new (x: Array, y: T) => Derived[] -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>b12 : new >(x: Array, y: T) => Derived[] +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ b12 = a12; // ok >b12 = a12 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : new (x: Array, y: T) => Derived[] -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>b12 : new >(x: Array, y: T) => Derived[] +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >a12 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ var b13: new >(x: Array, y: T) => T; ->b13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>b13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13 = b13; // ok ->a13 = b13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>a13 = b13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a13 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ b13 = a13; // ok >b13 = a13 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a13 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -604,25 +604,25 @@ b15 = a15; // ok 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[] diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt index 6fffdce00b771..9c654f2e09c20 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.errors.txt @@ -23,7 +23,7 @@ assignmentCompatWithConstructSignatures4.ts(58,9): error TS2322: Type 'new (...x assignmentCompatWithConstructSignatures4.ts(62,9): error TS2322: Type 'new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base' is not assignable to type 'new (x: T, y: T) => T'. Type 'Base' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'Base'. -assignmentCompatWithConstructSignatures4.ts(66,9): error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new (x: Base[], y: Base[]) => T'. +assignmentCompatWithConstructSignatures4.ts(66,9): error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new >(x: Base[], y: Base[]) => T'. Type 'Derived[]' is not assignable to type 'T'. 'T' could be instantiated with an arbitrary type which could be unrelated to 'Derived[]'. assignmentCompatWithConstructSignatures4.ts(69,9): error TS2322: Type 'new (x: { a: T; b: T; }) => T' is not assignable to type 'new (x: { a: string; b: number; }) => number'. @@ -179,7 +179,7 @@ assignmentCompatWithConstructSignatures4.ts(96,9): error TS2322: Type 'new (x a12 = b12; // ok b12 = a12; // ok ~~~ -!!! error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new (x: Base[], y: Base[]) => T'. +!!! error TS2322: Type 'new (x: Base[], y: Derived2[]) => Derived[]' is not assignable to type 'new >(x: Base[], y: Base[]) => T'. !!! error TS2322: Type 'Derived[]' is not assignable to type 'T'. !!! error TS2322: 'T' could be instantiated with an arbitrary type which could be unrelated to 'Derived[]'. diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types index d2702d190b373..d627e1ff5d8b2 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 @@ -210,7 +210,7 @@ module Errors { 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,41 +299,41 @@ 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 -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>b12 : new >(x: Array, y: Array) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] > : ^^^^^^ a12 = b12; // ok ->a12 = b12 : new (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>a12 = b12 : new >(x: Array, y: Array) => T +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a12 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : new (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b12 : new >(x: Array, y: Array) => T +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ b12 = a12; // ok >b12 = a12 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->b12 : new (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>b12 : new >(x: Array, y: Array) => T +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >a12 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -365,7 +365,7 @@ module Errors { 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,17 +375,17 @@ 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 > : ^^^^^ ^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types index 331af2d4c4d3f..48f47ee8d7360 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types @@ -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 @@ -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 @@ -274,7 +274,7 @@ b5 = a5; // ok 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,19 +282,19 @@ 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 @@ -372,11 +372,11 @@ a15 = b16; // ok 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[] @@ -390,17 +390,17 @@ 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[] diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types index 39fa6083f9702..cac1cdb6e9296 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types @@ -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 @@ -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 @@ -321,23 +321,23 @@ 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 750fc350bb0dd..763113fe2604e 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/assignmentCompatWithGenericCallSignatures4.types b/tests/baselines/reference/assignmentCompatWithGenericCallSignatures4.types index 6e14dcb050c43..bfab99c61ffd2 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/assignmentCompatWithNumericIndexer.types b/tests/baselines/reference/assignmentCompatWithNumericIndexer.types index 001ceab46f029..c684052a38483 100644 --- a/tests/baselines/reference/assignmentCompatWithNumericIndexer.types +++ b/tests/baselines/reference/assignmentCompatWithNumericIndexer.types @@ -98,7 +98,7 @@ module Generics { function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var a: A; >a : A diff --git a/tests/baselines/reference/assignmentCompatWithNumericIndexer2.types b/tests/baselines/reference/assignmentCompatWithNumericIndexer2.types index e6d109d9b0d7f..bf6fb6eac9db6 100644 --- a/tests/baselines/reference/assignmentCompatWithNumericIndexer2.types +++ b/tests/baselines/reference/assignmentCompatWithNumericIndexer2.types @@ -87,7 +87,7 @@ module Generics { function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var a: A; >a : A diff --git a/tests/baselines/reference/assignmentCompatWithNumericIndexer3.types b/tests/baselines/reference/assignmentCompatWithNumericIndexer3.types index c4302006c5747..a2a659667bf2f 100644 --- a/tests/baselines/reference/assignmentCompatWithNumericIndexer3.types +++ b/tests/baselines/reference/assignmentCompatWithNumericIndexer3.types @@ -98,7 +98,7 @@ module Generics { function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var a: A; >a : A diff --git a/tests/baselines/reference/assignmentCompatWithStringIndexer.types b/tests/baselines/reference/assignmentCompatWithStringIndexer.types index b584813d90a48..26b12f15dee5d 100644 --- a/tests/baselines/reference/assignmentCompatWithStringIndexer.types +++ b/tests/baselines/reference/assignmentCompatWithStringIndexer.types @@ -157,7 +157,7 @@ module Generics { function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var b3: { [x: string]: Derived; }; >b3 : { [x: string]: Derived; } diff --git a/tests/baselines/reference/assignmentCompatWithStringIndexer2.types b/tests/baselines/reference/assignmentCompatWithStringIndexer2.types index 279991bf6aec8..a3cf5ab6a3700 100644 --- a/tests/baselines/reference/assignmentCompatWithStringIndexer2.types +++ b/tests/baselines/reference/assignmentCompatWithStringIndexer2.types @@ -141,7 +141,7 @@ module Generics { function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var b3: { [x: string]: Derived; }; >b3 : { [x: string]: Derived; } diff --git a/tests/baselines/reference/assignmentCompatWithStringIndexer3.types b/tests/baselines/reference/assignmentCompatWithStringIndexer3.types index 1e896b9e1f18f..0dbff145e6736 100644 --- a/tests/baselines/reference/assignmentCompatWithStringIndexer3.types +++ b/tests/baselines/reference/assignmentCompatWithStringIndexer3.types @@ -56,7 +56,7 @@ module Generics { function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var a: A; >a : A diff --git a/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types b/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types index 43ecb6309955b..1186435cca0c4 100644 --- a/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types +++ b/tests/baselines/reference/assignmentCompatibilityForConstrainedTypeParameters.types @@ -3,13 +3,13 @@ === assignmentCompatibilityForConstrainedTypeParameters.ts === function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >bar : string > : ^^^^^^ function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var x: S; >x : S diff --git a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types index 58026826c2f9e..2822c225f9468 100644 --- a/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types +++ b/tests/baselines/reference/assignmentGenericLookupTypeNarrowing.types @@ -27,7 +27,7 @@ declare function foo(x: T): null | T; function bar(key: K) { >bar : (key: K) => void -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >key : K > : ^ diff --git a/tests/baselines/reference/assignmentNonObjectTypeConstraints.types b/tests/baselines/reference/assignmentNonObjectTypeConstraints.types index e9f80e7a29855..8924c51561a2e 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 68f5f03d2428a..a8e1e5e52694d 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 @@ -32,11 +32,11 @@ 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 diff --git a/tests/baselines/reference/assignmentToAnyArrayRestParameters.types b/tests/baselines/reference/assignmentToAnyArrayRestParameters.types index b01efd8328ce7..d5ccce25a7332 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 @@ -59,7 +59,7 @@ function foo( function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ type T00 = string[]["0"]; >T00 : string diff --git a/tests/baselines/reference/asyncFunctionReturnType.types b/tests/baselines/reference/asyncFunctionReturnType.types index e9891f82b5a75..87276c91c8f9a 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.types +++ b/tests/baselines/reference/asyncFunctionReturnType.types @@ -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 > : ^^^^ @@ -198,7 +198,7 @@ async function fGenericIndexedTypeForPromiseOfStringProp(obj: async function fGenericIndexedTypeForExplicitPromiseOfStringProp(obj: TObj): Promise { >fGenericIndexedTypeForExplicitPromiseOfStringProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >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 > : ^^^^ @@ -257,7 +257,7 @@ async function fGenericIndexedTypeForPromiseOfAnyProp(obj: TOb async function fGenericIndexedTypeForExplicitPromiseOfAnyProp(obj: TObj): Promise { >fGenericIndexedTypeForExplicitPromiseOfAnyProp : (obj: TObj) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >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 @@ -321,7 +321,7 @@ async function fGenericIndexedTypeForPromiseOfKProp(obj: TObj, key: K): Promise { >fGenericIndexedTypeForExplicitPromiseOfKProp : (obj: TObj, key: K) => Promise -> : ^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >obj : TObj > : ^^^^ >key : K diff --git a/tests/baselines/reference/awaitedType.types b/tests/baselines/reference/awaitedType.types index fe26f9d786311..cfed3ae60fb8e 100644 --- a/tests/baselines/reference/awaitedType.types +++ b/tests/baselines/reference/awaitedType.types @@ -175,12 +175,12 @@ 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.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; }>; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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 @@ -805,12 +805,12 @@ async function mainFindMany() { > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Promise.all(promises) : Promise<[number]> > : ^^^^^^^^^^^^^^^^^ ->Promise.all : { (values: Iterable>): Promise[]>; (values: T): Promise<{ -readonly [P in keyof T]: Awaited; }>; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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; }>; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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 @@ -876,12 +876,12 @@ 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.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; }>; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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 17b92fc844ca7..e64266309cd6d 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/awaitedTypeStrictNull.types b/tests/baselines/reference/awaitedTypeStrictNull.types index 87096af2a6201..ade84b7e07994 100644 --- a/tests/baselines/reference/awaitedTypeStrictNull.types +++ b/tests/baselines/reference/awaitedTypeStrictNull.types @@ -175,12 +175,12 @@ 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.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; }>; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types b/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types index e545bbaaa0b39..179b5a44e2f8c 100644 --- a/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types +++ b/tests/baselines/reference/badInferenceLowerPriorityThanGoodInference.types @@ -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 8988c1951436a..fd25702f1c42a 100644 --- a/tests/baselines/reference/baseConstraintOfDecorator.types +++ b/tests/baselines/reference/baseConstraintOfDecorator.types @@ -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/bestCommonTypeOfConditionalExpressions2.types b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types index d27659f01239d..2f4354517301e 100644 --- a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions2.types @@ -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 12ed6cdbff2a9..30b1972597e31 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 f3b1a54c92b41..d75e2e16a528f 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 2f018d02ed026..6f5c5f001b9a4 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 1273af0728a3e..d36f6af1bf737 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 5fe6b9cf7847b..17c702220d72e 100644 --- a/tests/baselines/reference/bindingPatternCannotBeOnlyInferenceSource.types +++ b/tests/baselines/reference/bindingPatternCannotBeOnlyInferenceSource.types @@ -112,16 +112,16 @@ type TFuncs1 = typeof funcs1; > : ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ declare function useReduxDispatch1>(destructuring: Destructuring): T; ->useReduxDispatch1 : void; funcB: (b: string, bb: string) => void; funcC: (c: number, cc: number, ccc: boolean) => void; }>>(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> > : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^ 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 : void; funcB: (b: string, bb: string) => void; funcC: (c: number, cc: number, ccc: boolean) => void; }>>(destructuring: Destructuring) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^ +>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 c22f4995be481..7df731f981726 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/booleanFilterAnyArray.types b/tests/baselines/reference/booleanFilterAnyArray.types index 3b749ff0e5e80..202bc77b158ea 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 diff --git a/tests/baselines/reference/cachedContextualTypes.types b/tests/baselines/reference/cachedContextualTypes.types index bdb0c80adf665..421602a4ab89c 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/callSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types index 15e63975e28e9..5cab809505661 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 @@ -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,29 +326,29 @@ 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 > : ^ a12: >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : (x: Array, y: T) => Array -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a13 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -372,7 +372,7 @@ interface I extends A { a16: (x: T) => number[]; // ok >a16 : (x: T) => number[] -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types index 9a761b066bbbb..d9e5f51e0da9d 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 @@ -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 @@ -254,8 +254,8 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : >(x: Array, y: Array) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -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 diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types index 924d23f3641e7..ee018820fe0a0 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types @@ -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 @@ -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 @@ -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 diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types index 3bcf0f69390bd..c301643b663c1 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types @@ -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,29 +260,29 @@ 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 > : ^ a12: >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : (x: Array, y: T) => Array -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13: >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a13 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types index 88395d44a5400..aad5979b75398 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types @@ -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 @@ -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 diff --git a/tests/baselines/reference/callWithMissingVoid.types b/tests/baselines/reference/callWithMissingVoid.types index 625c43256e6ab..30806bf4ca37f 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/cannotIndexGenericWritingError.types b/tests/baselines/reference/cannotIndexGenericWritingError.types index 997ca9c1e5f8c..a0d863bc409b3 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 @@ -25,8 +25,8 @@ function foo>(target: T, p: string | symb } function foo2(target: T, p: string | number) { ->foo2 : (target: T, p: string | number) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 b53cfb627cd78..b5faf154c3cdd 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 544302f89a046..1d3f78c047161 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/circularContextualReturnType.types b/tests/baselines/reference/circularContextualReturnType.types index f5de1e3331d2a..cfe94e8e7de77 100644 --- a/tests/baselines/reference/circularContextualReturnType.types +++ b/tests/baselines/reference/circularContextualReturnType.types @@ -6,12 +6,12 @@ Object.freeze({ >Object.freeze({ foo() { return Object.freeze('a'); },}) : Readonly<{ foo(): string; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >{ foo() { return Object.freeze('a'); },} : { foo(): string; } > : ^^^^^^^^^^^^^^^^^^ @@ -22,12 +22,12 @@ Object.freeze({ return Object.freeze('a'); >Object.freeze('a') : string > : ^^^^^^ ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >'a' : "a" > : ^^^ diff --git a/tests/baselines/reference/circularMappedTypeConstraint.types b/tests/baselines/reference/circularMappedTypeConstraint.types index ab6c68619e1ed..ded13c89645fc 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/circularReferenceInReturnType2.types b/tests/baselines/reference/circularReferenceInReturnType2.types index 665f114bc9b93..83c9c856509b2 100644 --- a/tests/baselines/reference/circularReferenceInReturnType2.types +++ b/tests/baselines/reference/circularReferenceInReturnType2.types @@ -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/classFieldSuperAccessibleJs2.types b/tests/baselines/reference/classFieldSuperAccessibleJs2.types index dd6c95046a763..a0009edd275e9 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/coAndContraVariantInferences.types b/tests/baselines/reference/coAndContraVariantInferences.types index 271ab5535b203..ca9fc01c5266f 100644 --- a/tests/baselines/reference/coAndContraVariantInferences.types +++ b/tests/baselines/reference/coAndContraVariantInferences.types @@ -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 7e4168ba80b08..5309c2785df83 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 2a2f574bf814f..e3c0348fdf6e9 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 @@ -305,7 +305,7 @@ 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); }, }) : 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; } > : ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^ ^^^ @@ -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 @@ -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 9d495f22eac3f..c3b30dd03c0a1 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 40823b8b28201..dd9cdf47e2ddf 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 026bebad5733c..472fa7e8f63e3 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 dfb2db6ff51e3..2f00fc10e3b67 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/commentsTypeParameters.types b/tests/baselines/reference/commentsTypeParameters.types index 5bbbe48ce3146..7f77a1e9c29ac 100644 --- a/tests/baselines/reference/commentsTypeParameters.types +++ b/tests/baselines/reference/commentsTypeParameters.types @@ -7,7 +7,7 @@ class C { method(a: U) { >method : (a: U) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : U > : ^ } @@ -20,7 +20,7 @@ class C { private privatemethod(a: U) { >privatemethod : (a: U) => void -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : U > : ^ } diff --git a/tests/baselines/reference/comparabilityTypeParametersRelatedByUnion.types b/tests/baselines/reference/comparabilityTypeParametersRelatedByUnion.types index 936d57e33df77..0c2b3a0d37344 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 > : ^ @@ -29,8 +29,8 @@ class C { } bad(y: U) { ->bad : (y: U) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>bad : (y: U) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : U > : ^ diff --git a/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.types b/tests/baselines/reference/compareTypeParameterConstrainedByLiteralToLiteral.types index 7c32f73d88b90..44d78f175980e 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/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types index 2f1612a0f1253..57fd6b6b0152c 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedCallSignature.types @@ -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 @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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; @@ -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; } > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^ @@ -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 b8c87c58f2b65..3b3bd17987c77 100644 --- a/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.types +++ b/tests/baselines/reference/comparisonOperatorWithNoRelationshipObjectsOnInstantiatedConstructorSignature.types @@ -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 @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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; @@ -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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -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/complexRecursiveCollections.types b/tests/baselines/reference/complexRecursiveCollections.types index 2a95a04a6bff0..77efaab96cf4f 100644 --- a/tests/baselines/reference/complexRecursiveCollections.types +++ b/tests/baselines/reference/complexRecursiveCollections.types @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 > : ^ @@ -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): Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -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): Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >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): Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -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 @@ -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): Keyed; (predicate: (value: V, key: K, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: V, key: K, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : V @@ -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): Indexed; (predicate: (value: T, index: number, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, index: number, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >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): Set; (predicate: (value: T, key: never, iter: this) => any, context?: any): this; } -> : ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^ ^^^ >predicate : (value: T, key: never, iter: this) => any > : ^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >value : T @@ -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 diff --git a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types index 21113c46b65cd..40b6472a23f48 100644 --- a/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types +++ b/tests/baselines/reference/complicatedIndexedAccessKeyofReliesOnKeyofNeverUpperBound.types @@ -70,8 +70,8 @@ export type NewChannel = Pick & export function makeNewChannel(type: T): NewChannel> { ->makeNewChannel : (type: T) => NewChannel> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>makeNewChannel : (type: T) => NewChannel> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >type : T > : ^ @@ -95,8 +95,8 @@ const newTextChannel = makeNewChannel('text'); > : ^^^^^^^^^^^^^^^^^^^^^^^ >makeNewChannel('text') : NewChannel > : ^^^^^^^^^^^^^^^^^^^^^^^ ->makeNewChannel : (type: T) => NewChannel | ChannelOfType> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>makeNewChannel : (type: T) => NewChannel | ChannelOfType> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'text' : "text" > : ^^^^^^ @@ -118,8 +118,8 @@ const newTextChannel2 : NewChannel = makeNewChannel('text'); > : ^^^^^^^^^^^^^^^^^^^^^^^ >makeNewChannel('text') : NewChannel > : ^^^^^^^^^^^^^^^^^^^^^^^ ->makeNewChannel : (type: T) => NewChannel | ChannelOfType> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>makeNewChannel : (type: T) => NewChannel | ChannelOfType> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'text' : "text" > : ^^^^^^ diff --git a/tests/baselines/reference/compositeContextualSignature.types b/tests/baselines/reference/compositeContextualSignature.types index b02977726f1d0..6f5c1f4c51932 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/computedPropertyNames51_ES5.types b/tests/baselines/reference/computedPropertyNames51_ES5.types index ca8d851a7898e..47b5b473a0855 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 ba8cceb5c4e50..6f4734ba6294f 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/computedPropertyNames8_ES5.types b/tests/baselines/reference/computedPropertyNames8_ES5.types index 1192793f28670..8caf65a2d43ad 100644 --- a/tests/baselines/reference/computedPropertyNames8_ES5.types +++ b/tests/baselines/reference/computedPropertyNames8_ES5.types @@ -3,7 +3,7 @@ === computedPropertyNames8_ES5.ts === function f() { >f : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var t: T; >t : T diff --git a/tests/baselines/reference/computedPropertyNames8_ES6.types b/tests/baselines/reference/computedPropertyNames8_ES6.types index 90bf11587a457..4374a89c92c78 100644 --- a/tests/baselines/reference/computedPropertyNames8_ES6.types +++ b/tests/baselines/reference/computedPropertyNames8_ES6.types @@ -3,7 +3,7 @@ === computedPropertyNames8_ES6.ts === function f() { >f : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ var t: T; >t : T diff --git a/tests/baselines/reference/conditionalTypeAssignabilityWhenDeferred.types b/tests/baselines/reference/conditionalTypeAssignabilityWhenDeferred.types index 828526bc82311..b848fd8f663b3 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,7 +101,7 @@ onlyNullablePlease2(y); // error as expected >onlyNullablePlease2(y) : void > : ^^^^ >onlyNullablePlease2 : (value: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : string > : ^^^^^^ @@ -135,7 +135,7 @@ function f(t: T) { >onlyNullablePlease(x) : void > : ^^^^ >onlyNullablePlease : (value: T_1) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T | null > : ^^^^^^^^ @@ -143,7 +143,7 @@ function f(t: T) { >onlyNullablePlease2(x) : void > : ^^^^ >onlyNullablePlease2 : (value: T_1) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T | null > : ^^^^^^^^ } @@ -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 690fc78d4eb49..860f6dc05b55c 100644 --- a/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types +++ b/tests/baselines/reference/conditionalTypeBasedContextualTypeReturnTypeWidening.types @@ -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[] diff --git a/tests/baselines/reference/conditionalTypeContextualTypeSimplificationsSuceeds.types b/tests/baselines/reference/conditionalTypeContextualTypeSimplificationsSuceeds.types index 8da02ec8de20d..03d0a271a3c65 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 ae4982d669c44..b53132a7c94ba 100644 --- a/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types +++ b/tests/baselines/reference/conditionalTypeDiscriminatingLargeUnionRegularTypeFetchingSpeedReasonable.types @@ -20024,8 +20024,8 @@ type ChildrenOf = T['children'][number]; > : ^^^^^^^^^^^^^ export function makeThing( ->makeThing : (name: T, children?: ChildrenOf>[]) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^ ^^^^^^^^^ +>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 89423d1795436..6ff9bd7d48d8d 100644 --- a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types +++ b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types @@ -110,11 +110,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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 @@ -199,11 +199,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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 @@ -241,11 +241,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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 @@ -351,11 +351,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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> @@ -438,11 +438,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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 @@ -531,11 +531,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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 @@ -565,11 +565,11 @@ export enum PubSubRecordIsStoredInRedisAsA { >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 @@ -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; } -> : ^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^^^^^ {}, >{} : {} diff --git a/tests/baselines/reference/conditionalTypeSubclassExtendsTypeParam.types b/tests/baselines/reference/conditionalTypeSubclassExtendsTypeParam.types index 0d2142aa0dea2..3725dc4053ba3 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/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index 4cde0a01a3c2f..a3414034e8557 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -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 @@ -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" > : ^^^ @@ -619,8 +619,8 @@ type ZeroOf = T extends number ? 0 : T exte > : ^^^^^ function zeroOf(value: T) { ->zeroOf : (value: T) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>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 @@ -672,63 +672,63 @@ function f20(n: number, b: boolean, x: number | boolean, y: T) zeroOf(5); // 0 >zeroOf(5) : 0 > : ^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >5 : 5 > : ^ zeroOf("hello"); // "" >zeroOf("hello") : "" > : ^^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >"hello" : "hello" > : ^^^^^^^ zeroOf(true); // false >zeroOf(true) : false > : ^^^^^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >true : true > : ^^^^ zeroOf(n); // 0 >zeroOf(n) : 0 > : ^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >n : number > : ^^^^^^ zeroOf(b); // False >zeroOf(b) : false > : ^^^^^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >b : boolean > : ^^^^^^^ zeroOf(x); // 0 | false >zeroOf(x) : false | 0 > : ^^^^^^^^^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : number | boolean > : ^^^^^^^^^^^^^^^^ zeroOf(y); // ZeroOf >zeroOf(y) : ZeroOf > : ^^^^^^^^^ ->zeroOf : (value: T_1) => ZeroOf -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zeroOf : (value: T_1) => ZeroOf +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >y : T > : ^ } function f21(x: T, y: ZeroOf) { ->f21 : (x: T, y: ZeroOf) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>f21 : (x: T, y: ZeroOf) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ >y : ZeroOf @@ -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 > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/conditionalTypes2.types b/tests/baselines/reference/conditionalTypes2.types index a0dab5b5a8d98..3eb2ab299bef7 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 @@ -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 diff --git a/tests/baselines/reference/conditionalTypesExcessProperties.types b/tests/baselines/reference/conditionalTypesExcessProperties.types index ec4c2d40b18b4..2deb2fb464877 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/conflictingDeclarationsImportFromNamespace1.types b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace1.types index dce6aba71b518..a6369d495a927 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 5c96532f675a6..dff5e5388e5bc 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/constAssertions.types b/tests/baselines/reference/constAssertions.types index dd3dd6398e332..d4a7e84f2e562 100644 --- a/tests/baselines/reference/constAssertions.types +++ b/tests/baselines/reference/constAssertions.types @@ -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/constraintErrors1.types b/tests/baselines/reference/constraintErrors1.types index b5ff886f87d4e..a025e7eabf826 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 c848e271df17c..04b5f708bd787 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 743b853b17bde..53db6a5d2b344 100644 --- a/tests/baselines/reference/constraintPropagationThroughReturnTypes.types +++ b/tests/baselines/reference/constraintPropagationThroughReturnTypes.types @@ -14,7 +14,7 @@ function g(x: T): T { function f(x: S) { >f : (x: S) => void -> : ^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >foo : string > : ^^^^^^ >x : S diff --git a/tests/baselines/reference/constraintReferencingTypeParameterFromSameTypeParameterList.types b/tests/baselines/reference/constraintReferencingTypeParameterFromSameTypeParameterList.types index 5b73daa7f3d8c..38d914e23b3ee 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 @@ -22,12 +22,12 @@ interface I4 T> { interface I3 { method1(); >method1 : () => any -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^ } 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 a1a497b3a9c32..5453a44761180 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 @@ -19,8 +19,8 @@ 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 -> : ^ ^^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^ ^^^^^ +>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 -> : ^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^^^^^ +>foo4 : (x: T_1) => void>(x: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >a : any var b: number; @@ -55,22 +55,22 @@ 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 > : ^^^^^^ //foo3(b); foo4(b); >foo4(b) : any ->foo4 : (x: T_1) => void>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ ^^ ^^^^^^ +>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 67b3dfc43e7ad..eba2a0e10d87e 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 720bf79d87af3..c5684717931df 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/constructSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types index bb99b0128da64..2666cf26979dd 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 @@ -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,29 +326,29 @@ 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 > : ^ a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : new >(x: Array, y: T) => Array +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -372,7 +372,7 @@ interface I extends A { a16: new (x: T) => number[]; // ok >a16 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types index 0ea4c630b45e0..40be5b0764efc 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types @@ -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 @@ -223,8 +223,8 @@ 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 -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : new >(x: Array, y: Array) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -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 @@ -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 dc156c878d4c4..a83572119b9a5 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types @@ -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 @@ -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 @@ -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 @@ -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 fc2bdf5145052..cd1cf9fd2eeaa 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types @@ -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,29 +260,29 @@ 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 > : ^ a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : new >(x: Array, y: T) => Array +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types index 8bdf50f8a3b06..41a17bb438e2e 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types @@ -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 @@ -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 diff --git a/tests/baselines/reference/constructorFunctionMethodTypeParameters.types b/tests/baselines/reference/constructorFunctionMethodTypeParameters.types index 4214f435c3fb5..03f7ec728fa44 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 @@ -103,11 +103,11 @@ const s = c.topLevelComment('a', 'b'); >c.topLevelComment('a', 'b') : "b" > : ^^^ >c.topLevelComment : (t: "a", v: V) => V -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ >c : Cls<"a"> > : ^^^^^^^^ >topLevelComment : (t: "a", v: V) => V -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ >'a' : "a" > : ^^^ >'b' : "b" @@ -119,11 +119,11 @@ const t = c.nestedComment('a', 'b'); >c.nestedComment('a', 'b') : "a" > : ^^^ >c.nestedComment : (t: "a", u: U) => "a" -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^ >c : Cls<"a"> > : ^^^^^^^^ >nestedComment : (t: "a", u: U) => "a" -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^ >'a' : "a" > : ^^^ >'b' : "b" diff --git a/tests/baselines/reference/contextualComputedNonBindablePropertyType.types b/tests/baselines/reference/contextualComputedNonBindablePropertyType.types index 4a0b912631c5c..6add4763e75c0 100644 --- a/tests/baselines/reference/contextualComputedNonBindablePropertyType.types +++ b/tests/baselines/reference/contextualComputedNonBindablePropertyType.types @@ -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/contextualPropertyOfGenericMappedType.types b/tests/baselines/reference/contextualPropertyOfGenericMappedType.types index 8fc65e208a40b..ff39597cf94da 100644 --- a/tests/baselines/reference/contextualPropertyOfGenericMappedType.types +++ b/tests/baselines/reference/contextualPropertyOfGenericMappedType.types @@ -5,7 +5,7 @@ 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; } @@ -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/contextualSignatureConditionalTypeInstantiationUsingDefault.types b/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types index 27cbf70696711..374ef8eb4d3df 100644 --- a/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types +++ b/tests/baselines/reference/contextualSignatureConditionalTypeInstantiationUsingDefault.types @@ -27,8 +27,8 @@ type ActionFunction = (event: TEvent) => void; > : ^^^^^^ declare function createMachine< ->createMachine : (config: { types?: TTypesMeta; }, implementations: TTypesMeta extends TypegenEnabled ? ActionFunction<{ type: "test"; }> : ActionFunction<{ type: string; }>) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>createMachine : (config: { types?: TTypesMeta; }, implementations: TTypesMeta extends TypegenEnabled ? ActionFunction<{ type: "test"; }> : ActionFunction<{ type: string; }>) => void +> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ TTypesMeta extends TypegenEnabled | TypegenDisabled = TypegenDisabled >( @@ -58,8 +58,8 @@ declare function createMachine< 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 279093e73dd11..54e6efc3154e2 100644 --- a/tests/baselines/reference/contextualSignatureInObjectFreeze.types +++ b/tests/baselines/reference/contextualSignatureInObjectFreeze.types @@ -6,12 +6,12 @@ Object.freeze({ >Object.freeze({ f: function () { }}) : Readonly<{ f: () => void; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >{ f: function () { }} : { f: () => void; } > : ^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstantiation1.types b/tests/baselines/reference/contextualSignatureInstantiation1.types index 64a63de4718a3..4c57b2dfa251e 100644 --- a/tests/baselines/reference/contextualSignatureInstantiation1.types +++ b/tests/baselines/reference/contextualSignatureInstantiation1.types @@ -39,7 +39,7 @@ var r99 = map(e); // should be {}[] for S since a generic lambda is not inferent declare function map2(f: (x: S) => T): (a: S[]) => T[]; >map2 : (f: (x: S) => T) => (a: S[]) => T[] -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^ >length : number > : ^^^^^^ >f : (x: S) => T @@ -71,7 +71,7 @@ var r100 = map2(e2); // type arg inference should fail for S since a generic lam >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/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types index b8c0ec1fadc35..b693c252547fe 100644 --- a/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types +++ b/tests/baselines/reference/contextualSignatureInstantiationWithTypeParameterConstrainedToOuterTypeParameter.types @@ -3,17 +3,17 @@ === 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 @@ -37,5 +37,5 @@ var x = h("", f()); // Call should succeed and x should be string. All t >f() : (u: U) => U > : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ >f : () => (u: U) => U -> : ^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ diff --git a/tests/baselines/reference/contextualSignatureInstatiationContravariance.types b/tests/baselines/reference/contextualSignatureInstatiationContravariance.types index 835299e1960f2..64c0eeb87037b 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 56ac6efa47015..1573125257575 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 e9e1abbda49c6..57eeaab7b181b 100644 --- a/tests/baselines/reference/contextualTupleTypeParameterReadonly.types +++ b/tests/baselines/reference/contextualTupleTypeParameterReadonly.types @@ -2,8 +2,8 @@ === contextualTupleTypeParameterReadonly.ts === declare function each>(cases: ReadonlyArray): (fn: (...args: T) => any) => void; ->each : (cases: ReadonlyArray) => (fn: (...args: T) => any) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>each : >(cases: ReadonlyArray) => (fn: (...args: T) => any) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >cases : readonly T[] > : ^^^^^^^^^^^^ >fn : (...args: T) => any @@ -42,8 +42,8 @@ const eacher = each(cases); > : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >each(cases) : (fn: (...args: readonly [1, "1"] | readonly [2, "2"]) => any) => void > : ^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->each : (cases: ReadonlyArray) => (fn: (...args: T) => 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 9a8ea62fd1435..56c22d27c1f4f 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 7341845ac199b..f163aab9426a1 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/contextualTypeTupleEnd.types b/tests/baselines/reference/contextualTypeTupleEnd.types index 6c892791d599f..28095e062b15f 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/contextualTypingOfOptionalMembers.types b/tests/baselines/reference/contextualTypingOfOptionalMembers.types index 176d7ee647565..90640a9a47073 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/contextuallyTypeAsyncFunctionReturnType.types b/tests/baselines/reference/contextuallyTypeAsyncFunctionReturnType.types index 38a7da96087e8..fce9336823554 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/contextuallyTypedGenericAssignment.types b/tests/baselines/reference/contextuallyTypedGenericAssignment.types index 55982f83db769..f04ad4a88165d 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,9 +21,9 @@ 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 > : ^ >u : number diff --git a/tests/baselines/reference/contextuallyTypedJsxAttribute.types b/tests/baselines/reference/contextuallyTypedJsxAttribute.types index 117d5a5320620..13922b1176846 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/contextuallyTypedParametersWithInitializers1.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types index 746f2444ff718..042c3fb1882c1 100644 --- a/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types +++ b/tests/baselines/reference/contextuallyTypedParametersWithInitializers1.types @@ -9,7 +9,7 @@ declare function id1(input: T): 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 @@ -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 | undefined; }) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >id4 : any>(input: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >function ({ foo = 42 }) { return foo } : ({ foo }: { foo?: number | undefined; }) => 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 @@ -287,19 +287,19 @@ declare function g2(x: T): 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 > : ^ @@ -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 : [] @@ -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 f44515ffebc02..d4ed4acefffa8 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/contextuallyTypedParametersWithInitializers4.types b/tests/baselines/reference/contextuallyTypedParametersWithInitializers4.types index 80e14b8e2f363..9d9c47178869d 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 03256e994f539..5f6e3289bc5b5 100644 --- a/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types +++ b/tests/baselines/reference/contextuallyTypedSymbolNamedProperties.types @@ -49,7 +49,7 @@ 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 @@ -62,7 +62,7 @@ declare function f(action: T, blah: { [K in 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 aabf5f5cd2df4..4ac1b54a13b31 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 7510da271bda9..3f952fbd46a34 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> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunction.types b/tests/baselines/reference/contravariantOnlyInferenceFromAnnotatedFunction.types index 6bbd82fcc36d7..48fc78a3c1c1f 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 4d3ac78a299a6..bbf8d4e4e792a 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/controlFlowComputedPropertyNames.types b/tests/baselines/reference/controlFlowComputedPropertyNames.types index f8cb864a2438f..48ee689befde9 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 3f578bf197e41..281d6e928ba1a 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; } @@ -151,7 +151,7 @@ declare function unbox(x: Box): T; function g1 | undefined>(x: T) { >g1 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -175,7 +175,7 @@ function g1 | undefined>(x: T) { function g2 | undefined>(x: T) { >g2 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -201,7 +201,7 @@ function g2 | undefined>(x: T) { function g3 | undefined>(x: T) { >g3 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -227,7 +227,7 @@ function g3 | undefined>(x: T) { function g4 | undefined>(x: T) { >g4 : | undefined>(x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -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 > : ^ @@ -497,8 +497,8 @@ interface A { }; function get(key: K, obj: A): number { ->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 diff --git a/tests/baselines/reference/controlFlowIfStatement.types b/tests/baselines/reference/controlFlowIfStatement.types index 6be9fab7f96a7..a2ad2e11651ed 100644 --- a/tests/baselines/reference/controlFlowIfStatement.types +++ b/tests/baselines/reference/controlFlowIfStatement.types @@ -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/controlFlowTruthiness.types b/tests/baselines/reference/controlFlowTruthiness.types index fad5c8e9894a2..d7cd9e1a679c5 100644 --- a/tests/baselines/reference/controlFlowTruthiness.types +++ b/tests/baselines/reference/controlFlowTruthiness.types @@ -267,7 +267,7 @@ function f8(x: T) { function f9(x: T) { >f9 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/correctOrderOfPromiseMethod.types b/tests/baselines/reference/correctOrderOfPromiseMethod.types index 09117c65c066b..ae1b4af666130 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.js b/tests/baselines/reference/correlatedUnions.js index 773c11a30850a..8970ec3cbef7c 100644 --- a/tests/baselines/reference/correlatedUnions.js +++ b/tests/baselines/reference/correlatedUnions.js @@ -602,7 +602,7 @@ type SameKeys = { }; }; type MappedFromOriginal = SameKeys; -declare const getStringAndNumberFromOriginalAndMapped: (original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N) => [Original[K][N], MappedFromOriginal[K][N]]; +declare const getStringAndNumberFromOriginalAndMapped: >(original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N) => [Original[K][N], MappedFromOriginal[K][N]]; interface Config { string: string; number: number; diff --git a/tests/baselines/reference/correlatedUnions.types b/tests/baselines/reference/correlatedUnions.types index 1b11028c76e51..5d820785ae73c 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 > : ^^^^^^^^^^^^ @@ -350,8 +350,8 @@ const data: DataEntry[] = [ ]; function process(data: DataEntry[]) { ->process : (data: DataEntry[]) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>process : (data: DataEntry[]) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >data : DataEntry[] > : ^^^^^^^^^^^^^^ @@ -407,16 +407,16 @@ function process(data: DataEntry[]) { process(data); >process(data) : void > : ^^^^ ->process : (data: DataEntry[]) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>process : (data: DataEntry[]) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >data : DataEntry[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ process([{ type: 'foo', data: 'abc' }]); >process([{ type: 'foo', data: 'abc' }]) : void > : ^^^^ ->process : (data: DataEntry[]) => 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 | undefined; 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 | undefined; 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 | undefined; readonly callback: (ev: MouseEvent) => void; } | { readonly name: "scroll"; readonly once?: boolean | undefined; readonly callback: (ev: Event) => void; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ >clickEvent : { readonly name: "click"; readonly once?: boolean | undefined; 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; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ @@ -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 > : ^ @@ -1110,8 +1110,8 @@ interface Foo { } function foo(prop: T, f: Required) { ->foo : (prop: T, f: Required) => void -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>foo : (prop: T, f: Required) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >prop : T > : ^ >f : Required @@ -1139,8 +1139,8 @@ declare function bar(t: string): void; // Repro from #48246 declare function makeCompleteLookupMapping, Attr extends keyof T[number]>( ->makeCompleteLookupMapping : (ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>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 @@ -1173,8 +1173,8 @@ const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >makeCompleteLookupMapping(ALL_BARS, 'name') : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->makeCompleteLookupMapping : (ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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" @@ -1242,10 +1242,10 @@ 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]] -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>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/declFileGenericType.types b/tests/baselines/reference/declFileGenericType.types index 953b8ca436752..95eb243299913 100644 --- a/tests/baselines/reference/declFileGenericType.types +++ b/tests/baselines/reference/declFileGenericType.types @@ -41,7 +41,7 @@ export module C { export function F4>(x: T): Array> { return null; } >F4 : >(x: T) => Array> -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ >C : any @@ -55,7 +55,7 @@ export module C { export function F6>(x: T): T { return null; } >F6 : >(x: T) => T -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -110,13 +110,13 @@ export var d = C.F3; export var e = C.F4; >e : >(x: T) => C.A[] -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^ >C.F4 : >(x: T) => C.A[] -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^ >C : typeof C > : ^^^^^^^^ >F4 : >(x: T) => C.A[] -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^ ^^^ ^^ ^^ ^^^^^^^^^^^^^^^ export var x = (new C.D>(new C.A())).val; >x : C.A @@ -152,7 +152,7 @@ export var x = (new C.D>(new C.A())).val; export function f>() { } >f : >() => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >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/declFileRestParametersOfFunctionAndFunctionType.types b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types index 5af583e8f758f..82546bbe8fe70 100644 --- a/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types +++ b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.types @@ -24,14 +24,14 @@ function f3(x: { (...args): void }) { } > : ^^^^^ function f4 void>() { } ->f4 : void>() => void -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +>f4 : void>() => void +> : ^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ >args : any[] > : ^^^^^ function f5() { } ->f5 : void>() => void -> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ +>f5 : () => void +> : ^^^^^^^^^^^ ^^^ ^^^^^^^^^^^ >args : any[] > : ^^^^^ diff --git a/tests/baselines/reference/declarationEmitArrowFunctionNoRenaming.types b/tests/baselines/reference/declarationEmitArrowFunctionNoRenaming.types index e31cec99bd0b0..e32387d3034e5 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 b32d832c8de0b..08b1324d1337a 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/declarationEmitDistributiveConditionalWithInfer.types b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types index 74cd065070165..0518e3557e33b 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/declarationEmitExpandoWithGenericConstraint.types b/tests/baselines/reference/declarationEmitExpandoWithGenericConstraint.types index d88dc173fc14c..80161e157d92a 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/declarationEmitFBoundedTypeParams.types b/tests/baselines/reference/declarationEmitFBoundedTypeParams.types index ffe2283156fe9..85a28617c1b6d 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/declarationEmitLambdaWithMissingTypeParameterNoCrash.types b/tests/baselines/reference/declarationEmitLambdaWithMissingTypeParameterNoCrash.types index 06d56488b1f18..5c6ed45ed046e 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 c350d0ce11bde..59a0749f43711 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 4b8e3bf92e344..868187531d97f 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/declarationEmitNestedAnonymousMappedType.types b/tests/baselines/reference/declarationEmitNestedAnonymousMappedType.types index 536681d444369..3d16c23222cf0 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/declarationEmitObjectAssignedDefaultExport.types b/tests/baselines/reference/declarationEmitObjectAssignedDefaultExport.types index 6bb91261bc6fe..28178dc151668 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/declarationEmitPrivateNameCausesError.types b/tests/baselines/reference/declarationEmitPrivateNameCausesError.types index 8cb9af4817cd1..4c7ee13a66ffa 100644 --- a/tests/baselines/reference/declarationEmitPrivateNameCausesError.types +++ b/tests/baselines/reference/declarationEmitPrivateNameCausesError.types @@ -11,8 +11,8 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>ignoreExtraVariables : (ctor: CtorT) => { new (...args: any[]): (Anonymous class); prototype: ignoreExtraVariables.(Anonymous class); } & CtorT +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >args : any[] > : ^^^^^ >ctor : CtorT diff --git a/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types b/tests/baselines/reference/declarationEmitRecursiveConditionalAliasPreserved.types index b091d4e3d423d..5974792bc2252 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 64854a5e6456b..a06c5b5436095 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 8dfbac14b8f0e..f54bd9230ed2d 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 cd13750dcac39..f263d9425e0e6 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/declarationEmitShadowingInferNotRenamed.js b/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.js index aea2bc98c3909..217b51d74d6d4 100644 --- a/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.js +++ b/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.js @@ -38,5 +38,5 @@ type Client = string; type UpdatedClient = C & { foo: number; }; -export declare const createClient: Client> | (new (...args: any[]) => Client)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; }; +export declare const createClient: Client) | Record Client>>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; }; export {}; diff --git a/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.types b/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.types index e55a6e00b424a..b4f070b936ce4 100644 --- a/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.types +++ b/tests/baselines/reference/declarationEmitShadowingInferNotRenamed.types @@ -14,10 +14,10 @@ type UpdatedClient = C & {foo: number} > : ^^^^^^ export const createClient = < ->createClient : Client> | (new (...args: any[]) => Client)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^ ^^^^^ ->< D extends | (new (...args: any[]) => Client) // accept class | Record Client> // or map of classes>( clientDef: D): D extends new (...args: any[]) => infer C ? UpdatedClient // return instance : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C // or map of instances respectively ? UpdatedClient : never } => { return null as any} : Client> | (new (...args: any[]) => Client)>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^ ^^ ^^^^^ ^^^ ^^ ^^^^^ +>createClient : Client) | Record Client>>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; } +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +>< D extends | (new (...args: any[]) => Client) // accept class | Record Client> // or map of classes>( clientDef: D): D extends new (...args: any[]) => infer C ? UpdatedClient // return instance : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C // or map of instances respectively ? UpdatedClient : never } => { return null as any} : Client) | Record Client>>(clientDef: D) => D extends new (...args: any[]) => infer C ? UpdatedClient : { [K in keyof D]: D[K] extends new (...args: any[]) => infer C ? UpdatedClient : never; } +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ D extends | (new (...args: any[]) => Client) // accept class diff --git a/tests/baselines/reference/declarationEmitTupleRestSignatureLeadingVariadic.types b/tests/baselines/reference/declarationEmitTupleRestSignatureLeadingVariadic.types index 2d25aee556a32..b97c49118747e 100644 --- a/tests/baselines/reference/declarationEmitTupleRestSignatureLeadingVariadic.types +++ b/tests/baselines/reference/declarationEmitTupleRestSignatureLeadingVariadic.types @@ -3,9 +3,9 @@ === declarationEmitTupleRestSignatureLeadingVariadic.ts === const f = (...args: [...TFirstArgs, TLastArg]): void => {}; >f : (...args: [...TFirstArgs, TLastArg]) => void -> : ^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ >(...args: [...TFirstArgs, TLastArg]): void => {} : (...args: [...TFirstArgs, TLastArg]) => void -> : ^ ^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ >args : [...TFirstArgs, TLastArg] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/declarationEmitTypeParameterNameReusedInOverloads.types b/tests/baselines/reference/declarationEmitTypeParameterNameReusedInOverloads.types index b1ca1e8bf894e..be24557efd656 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/declarationEmitUsingAlternativeContainingModules1.types b/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules1.types index 2527e6958257f..5cd1a4bbcd670 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,7 +366,7 @@ 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'; diff --git a/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules2.types b/tests/baselines/reference/declarationEmitUsingAlternativeContainingModules2.types index 4eb8ee991e249..e3bfa8f95e594 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'; diff --git a/tests/baselines/reference/declarationEmitWithDefaultAsComputedName.types b/tests/baselines/reference/declarationEmitWithDefaultAsComputedName.types index ec874e8474bf7..7c52ff20f0b57 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 6b4c2abb687a2..5358884a9f0da 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/declarationFileForHtmlFileWithinDeclarationFile.types b/tests/baselines/reference/declarationFileForHtmlFileWithinDeclarationFile.types index 52ab798ec289f..ed6ad064b82bf 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 ed8b6a5758721..519d4ee76d202 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 87e8bc2254c98..df9bae4e79768 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 83801031dfdba..b99b0c78fdb62 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/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types index 8de096b4890ff..6e4ca4130a52e 100644 --- a/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types +++ b/tests/baselines/reference/declarationsWithRecursiveInternalTypesProduceUniqueTypeParams.types @@ -22,10 +22,10 @@ export const updateIfChanged = (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; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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 @@ -64,26 +64,26 @@ 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( >(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) => { 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; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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] @@ -107,11 +107,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 @@ -168,8 +168,8 @@ 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; } -> : ^ ^^ ^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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 @@ -185,15 +185,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 @@ -203,17 +203,17 @@ 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 > : ^ testRecFun({ ...parent, ...child }) >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 @@ -227,11 +227,11 @@ export const testRecFun = (parent: T) => { let p1 = testRecFun({ one: '1' }) >p1 : { 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({ 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 @@ -247,7 +247,7 @@ void p1.result.one; >p1.result : { one: string; } > : ^^^^^^^^^^^^^^^^ >p1 : { 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >result : { one: string; } > : ^^^^^^^^^^^^^^^^ >one : string @@ -255,15 +255,15 @@ void p1.result.one; let p2 = p1.deeper({ two: '2' }) >p2 : { result: { one: string; } & { two: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p1.deeper({ two: '2' }) : { result: { one: string; } & { two: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p1.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) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p1 : { 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >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) => { result: { one: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ two: '2' } : { two: string; } > : ^^^^^^^^^^^^^^^^ >two : string @@ -279,7 +279,7 @@ void p2.result.one; >p2.result : { one: string; } & { two: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p2 : { result: { one: string; } & { two: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >result : { one: string; } & { two: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : string @@ -293,7 +293,7 @@ void p2.result.two; >p2.result : { one: string; } & { two: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p2 : { result: { one: string; } & { two: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >result : { one: string; } & { two: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >two : string @@ -301,15 +301,15 @@ void p2.result.two; let p3 = p2.deeper({ three: '3' }) >p3 : { result: { one: string; } & { two: string; } & { three: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & { three: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: string; } & { three: 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; } & { two: string; } & { three: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p2.deeper({ three: '3' }) : { result: { one: string; } & { two: string; } & { three: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & { three: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: string; } & { three: 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; } & { two: string; } & { three: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p2.deeper : (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p2 : { result: { one: string; } & { two: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >deeper : (child: U) => { result: { one: string; } & { two: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: 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; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9; deeper: (child: U_10) => { result: { one: string; } & { two: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7 & U_8 & U_9 & U_10; deeper: any; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >{ three: '3' } : { three: string; } > : ^^^^^^^^^^^^^^^^^^ >three : string @@ -325,7 +325,7 @@ void p3.result.one; >p3.result : { one: string; } & { two: string; } & { three: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p3 : { result: { one: string; } & { two: string; } & { three: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & { three: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: string; } & { three: 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; } & { two: string; } & { three: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >result : { one: string; } & { two: string; } & { three: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >one : string @@ -339,7 +339,7 @@ void p3.result.two; >p3.result : { one: string; } & { two: string; } & { three: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p3 : { result: { one: string; } & { two: string; } & { three: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & { three: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: string; } & { three: 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; } & { two: string; } & { three: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >result : { one: string; } & { two: string; } & { three: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >two : string @@ -353,7 +353,7 @@ void p3.result.three; >p3.result : { one: string; } & { two: string; } & { three: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >p3 : { result: { one: string; } & { two: string; } & { three: string; }; deeper: (child: U) => { result: { one: string; } & { two: string; } & { three: string; } & U; deeper: (child: U_1) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1; deeper: (child: U_2) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2; deeper: (child: U_3) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3; deeper: (child: U_4) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4; deeper: (child: U_5) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5; deeper: (child: U_6) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6; deeper: (child: U_7) => { result: { one: string; } & { two: string; } & { three: string; } & U & U_1 & U_2 & U_3 & U_4 & U_5 & U_6 & U_7; deeper: (child: U_8) => { result: { one: string; } & { two: string; } & { three: 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; } & { two: string; } & { three: 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; }; }; }; }; }; }; }; }; }; }; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >result : { one: string; } & { two: string; } & { three: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >three : string diff --git a/tests/baselines/reference/deepComparisons.types b/tests/baselines/reference/deepComparisons.types index 063ffa33fce6d..7ea3f36abc9e6 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 diff --git a/tests/baselines/reference/deepKeysIndexing.types b/tests/baselines/reference/deepKeysIndexing.types index c1413f099a4ac..b2b5db4a164ba 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, @@ -93,8 +93,8 @@ class Bar { > : ^ workaround< ->workaround : , V extends O[K1][K2]>(k1: K1, k2: K2, value: V) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 cddbce62d5f47..de544441121f0 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 48d95baa701b9..5ebae1c3eef1d 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 f84493f47c054..3ea41c25f8c0a 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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -351,8 +351,8 @@ function problematicFunction1(ors: Input[]): Output[] { } function problematicFunction2(ors: Input[]): T { ->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/deferredLookupTypeResolution.types b/tests/baselines/reference/deferredLookupTypeResolution.types index 954b4330332b2..7c21c39abc872 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 2c9d385bebe84..73c4b67290df8 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 > : ^ @@ -1416,7 +1416,7 @@ const f60: Func = (kind, payload) => { >f60 : Func > : ^^^^ >(kind, payload) => { if (kind === "a") { payload.toFixed(); // error } if (kind === "b") { payload.toUpperCase(); // error }} : (kind: T[0], payload: T[1]) => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^^^^ >kind : T[0] > : ^^^^ >payload : T[1] @@ -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 e5814f6e9c3f1..3eb3de9a0dade 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] diff --git a/tests/baselines/reference/destructuredMaappedTypeIsNotImplicitlyAny.types b/tests/baselines/reference/destructuredMaappedTypeIsNotImplicitlyAny.types index 7aa54fa3d51eb..1379f42d30d9a 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/destructuringParameterDeclaration3ES5.types b/tests/baselines/reference/destructuringParameterDeclaration3ES5.types index afeb4d1df096c..91660ffb32e51 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5.types @@ -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 14bd4b4adfe48..64c5edb5740f4 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES5iterable.types @@ -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 253888d4eb137..d73d78bfbac89 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration3ES6.types +++ b/tests/baselines/reference/destructuringParameterDeclaration3ES6.types @@ -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 a48a088d96759..da2d335a5f4fe 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/destructuringParameterDeclaration5.types b/tests/baselines/reference/destructuringParameterDeclaration5.types index 5905531fca90d..61697eddd0f16 100644 --- a/tests/baselines/reference/destructuringParameterDeclaration5.types +++ b/tests/baselines/reference/destructuringParameterDeclaration5.types @@ -61,7 +61,7 @@ class SubD extends D { function d0({x} = { x: new Class() }) { } >d0 : ({ x }?: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : Class > : ^^^^^ >{ x: new Class() } : { x: Class; } @@ -75,7 +75,7 @@ function d0({x} = { x: new Class() }) { } function d1({x}: { x: F }) { } >d1 : ({ x }: { x: F; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : F > : ^ >x : F @@ -83,7 +83,7 @@ function d1({x}: { x: F }) { } function d2({x}: { x: Class }) { } >d2 : ({ x }: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : Class > : ^^^^^ >x : Class @@ -91,7 +91,7 @@ function d2({x}: { x: Class }) { } function d3({y}: { y: D }) { } >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >y : D > : ^ >y : D @@ -99,7 +99,7 @@ function d3({y}: { y: D }) { } function d4({y} = { y: new D() }) { } >d4 : ({ y }?: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ >y : D > : ^ >{ y: new D() } : { y: D; } @@ -123,7 +123,7 @@ d0({ x: 1 }); >d0({ x: 1 }) : void > : ^^^^ >d0 : ({ x }?: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: 1 } : { x: number; } > : ^^^^^^^^^^^^^^ >x : number @@ -135,7 +135,7 @@ d0({ x: {} }); >d0({ x: {} }) : void > : ^^^^ >d0 : ({ x }?: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: {} } : { x: {}; } > : ^^^^^^^^^^ >x : {} @@ -147,7 +147,7 @@ d0({ x: "string" }); >d0({ x: "string" }) : void > : ^^^^ >d0 : ({ x }?: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >{ x: "string" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -159,7 +159,7 @@ d1({ x: new Class() }); >d1({ x: new Class() }) : void > : ^^^^ >d1 : ({ x }: { x: F; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ x: new Class() } : { x: Class; } > : ^^^^^^^^^^^^^ >x : Class @@ -173,7 +173,7 @@ d1({ x: {} }); >d1({ x: {} }) : void > : ^^^^ >d1 : ({ x }: { x: F; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ x: {} } : { x: {}; } > : ^^^^^^^^^^ >x : {} @@ -185,7 +185,7 @@ d1({ x: "string" }); >d1({ x: "string" }) : void > : ^^^^ >d1 : ({ x }: { x: F; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ x: "string" } : { x: string; } > : ^^^^^^^^^^^^^^ >x : string @@ -197,7 +197,7 @@ d2({ x: new SubClass() }); >d2({ x: new SubClass() }) : void > : ^^^^ >d2 : ({ x }: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ x: new SubClass() } : { x: SubClass; } > : ^^^^^^^^^^^^^^^^ >x : SubClass @@ -211,7 +211,7 @@ d2({ x: {} }); >d2({ x: {} }) : void > : ^^^^ >d2 : ({ x }: { x: Class; }) => void -> : ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ x: {} } : { x: {}; } > : ^^^^^^^^^^ >x : {} @@ -223,7 +223,7 @@ d3({ y: new SubD() }); >d3({ y: new SubD() }) : void > : ^^^^ >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ y: new SubD() } : { y: SubD; } > : ^^^^^^^^^^^^ >y : SubD @@ -237,7 +237,7 @@ d3({ y: new SubClass() }); >d3({ y: new SubClass() }) : void > : ^^^^ >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ y: new SubClass() } : { y: SubClass; } > : ^^^^^^^^^^^^^^^^ >y : SubClass @@ -252,7 +252,7 @@ d3({ y: new Class() }); >d3({ y: new Class() }) : void > : ^^^^ >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ y: new Class() } : { y: Class; } > : ^^^^^^^^^^^^^ >y : Class @@ -266,7 +266,7 @@ d3({}); >d3({}) : void > : ^^^^ >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{} : {} > : ^^ @@ -274,7 +274,7 @@ d3({ y: 1 }); >d3({ y: 1 }) : void > : ^^^^ >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ y: 1 } : { y: number; } > : ^^^^^^^^^^^^^^ >y : number @@ -286,7 +286,7 @@ d3({ y: "world" }); >d3({ y: "world" }) : void > : ^^^^ >d3 : ({ y }: { y: D; }) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >{ y: "world" } : { y: string; } > : ^^^^^^^^^^^^^^ >y : string diff --git a/tests/baselines/reference/destructuringUnspreadableIntoRest.types b/tests/baselines/reference/destructuringUnspreadableIntoRest.types index 416068b793493..0286ca429cc38 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 7c07181b08d4e..8144f5d3d78cf 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/discriminatedUnionJsxElement.types b/tests/baselines/reference/discriminatedUnionJsxElement.types index a85b5a20b84bf..6eda660a9bb1e 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/distributiveConditionalTypeConstraints.types b/tests/baselines/reference/distributiveConditionalTypeConstraints.types index ed4cbacd3fed3..14d899a981171 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 43d05e7e128f6..f1b0c3fb86b2d 100644 --- a/tests/baselines/reference/divideAndConquerIntersections.types +++ b/tests/baselines/reference/divideAndConquerIntersections.types @@ -153,8 +153,8 @@ type FilterFunction = (up: U) => up is V; > : ^ export function matchFilter( ->matchFilter : (filter: Q | Q[]) => FilterFunction> -> : ^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>matchFilter : (filter: Q | Q[]) => FilterFunction> +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^ filter: Q | Q[], >filter : Q | Q[] @@ -280,8 +280,8 @@ class EventHub { > : ^^^^ } on( ->on : (filter: Q | Q[], ...middleware: Array>>) => EventHub> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^^^^ +>on : (filter: Q | Q[], ...middleware: Array>>) => EventHub> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ ^^ ^^^^^ filter: Q | Q[], >filter : Q | Q[] diff --git a/tests/baselines/reference/doubleMixinConditionalTypeBaseClassWorks.types b/tests/baselines/reference/doubleMixinConditionalTypeBaseClassWorks.types index 728c283f233c8..07ad05ab44684 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 : .(Anonymous class); prototype: Mixin1.(Anonymous class); } & Constructor>(Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->(Base: C) => class extends Base {} : .(Anonymous class); prototype: Mixin1.(Anonymous class); } & Constructor>(Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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 @@ -46,12 +46,12 @@ 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 : .(Anonymous class); prototype: Mixin1.(Anonymous class); } & Constructor>(Base: C) => { new (...args: any[]): (Anonymous class); prototype: Mixin2.(Anonymous class); } & C -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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/emitClassExpressionInDeclarationFile.types b/tests/baselines/reference/emitClassExpressionInDeclarationFile.types index 9a70c55a7747e..076c8c661b265 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 6d9550c752f8d..e13193fb31a0d 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/emptyAnonymousObjectNarrowing(strictnullchecks=false).types b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types index 34ffe21efeb77..64def46ebaa2f 100644 --- a/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types +++ b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=false).types @@ -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 a1bc95e9c4aeb..c67a84af0a4d9 100644 --- a/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=true).types +++ b/tests/baselines/reference/emptyAnonymousObjectNarrowing(strictnullchecks=true).types @@ -74,7 +74,7 @@ function f1(x: T) { function f2(x: T) { >f2 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ diff --git a/tests/baselines/reference/enumAssignability.types b/tests/baselines/reference/enumAssignability.types index 2c360b6ad2495..be60c26c1bf13 100644 --- a/tests/baselines/reference/enumAssignability.types +++ b/tests/baselines/reference/enumAssignability.types @@ -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/enumPropertyAccess.types b/tests/baselines/reference/enumPropertyAccess.types index 9a0f6e2f2c8f9..5284c7a19658e 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 64584fcedeab5..e7c3ee6216c3c 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 8d40539101af8..105c57352b2de 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/errorMessagesIntersectionTypes03.types b/tests/baselines/reference/errorMessagesIntersectionTypes03.types index b441ece15f5cf..d0081e803c523 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 1f5a3e0fa191f..942d6e6e52fdc 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/errorsInGenericTypeReference.types b/tests/baselines/reference/errorsInGenericTypeReference.types index a25e2fccac030..858a4ed7415da 100644 --- a/tests/baselines/reference/errorsInGenericTypeReference.types +++ b/tests/baselines/reference/errorsInGenericTypeReference.types @@ -130,7 +130,7 @@ class testClass6 { method(): void { } // error: could not find symbol V >method : () => void -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >x : V > : ^ } diff --git a/tests/baselines/reference/es2018ObjectAssign.types b/tests/baselines/reference/es2018ObjectAssign.types index eafafe6c15957..34374548e0ba4 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; } diff --git a/tests/baselines/reference/esDecorators-contextualTypes.2.types b/tests/baselines/reference/esDecorators-contextualTypes.2.types index 104adda195ddc..2a9d26100da7f 100644 --- a/tests/baselines/reference/esDecorators-contextualTypes.2.types +++ b/tests/baselines/reference/esDecorators-contextualTypes.2.types @@ -9,7 +9,7 @@ class C { >boundMethodLogger("Yadda", /*bound*/ true) : (target: (this: C) => void, context: ClassMethodDecoratorContext void>) => (this: C) => 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/eventEmitterPatternWithRecordOfFunction.types b/tests/baselines/reference/eventEmitterPatternWithRecordOfFunction.types index f6f49dce66870..e976f32268f73 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 42b354c8f5dd5..0ce6e2e30ff76 100644 --- a/tests/baselines/reference/everyTypeAssignableToAny.types +++ b/tests/baselines/reference/everyTypeAssignableToAny.types @@ -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/exportClassExtendingIntersection.types b/tests/baselines/reference/exportClassExtendingIntersection.types index d36006d78ee1e..d1d7d597dcc60 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/expressionTypeNodeShouldError.types b/tests/baselines/reference/expressionTypeNodeShouldError.types index 30ede5ca64861..e4f194e575280 100644 --- a/tests/baselines/reference/expressionTypeNodeShouldError.types +++ b/tests/baselines/reference/expressionTypeNodeShouldError.types @@ -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" > : ^^^^ @@ -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" > : ^^^^ @@ -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/extractInferenceImprovement.types b/tests/baselines/reference/extractInferenceImprovement.types index 0fce0882b3b9e..58dcec7bfd093 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/findLast(target=esnext).types b/tests/baselines/reference/findLast(target=esnext).types index 0a2665b12cbc5..f2d5ccfe0914a 100644 --- a/tests/baselines/reference/findLast(target=esnext).types +++ b/tests/baselines/reference/findLast(target=esnext).types @@ -53,13 +53,13 @@ new Int8Array().findLast((item) => item === 0); >new Int8Array().findLast((item) => item === 0) : 0 > : ^ >new Int8Array().findLast : { (predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Int8Array() : Int8Array > : ^^^^^^^^^ >Int8Array : Int8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Int8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int8Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -75,13 +75,13 @@ new Uint8Array().findLast((item) => item === 0); >new Uint8Array().findLast((item) => item === 0) : 0 > : ^ >new Uint8Array().findLast : { (predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Uint8Array() : Uint8Array > : ^^^^^^^^^^ >Uint8Array : Uint8ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Uint8Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -97,13 +97,13 @@ new Uint8ClampedArray().findLast((item) => item === 0); >new Uint8ClampedArray().findLast((item) => item === 0) : 0 > : ^ >new Uint8ClampedArray().findLast : { (predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Uint8ClampedArray() : Uint8ClampedArray > : ^^^^^^^^^^^^^^^^^ >Uint8ClampedArray : Uint8ClampedArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Uint8ClampedArray) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint8ClampedArray) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -119,13 +119,13 @@ new Int16Array().findLast((item) => item === 0); >new Int16Array().findLast((item) => item === 0) : 0 > : ^ >new Int16Array().findLast : { (predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Int16Array() : Int16Array > : ^^^^^^^^^^ >Int16Array : Int16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Int16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int16Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -141,13 +141,13 @@ new Uint16Array().findLast((item) => item === 0); >new Uint16Array().findLast((item) => item === 0) : 0 > : ^ >new Uint16Array().findLast : { (predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Uint16Array() : Uint16Array > : ^^^^^^^^^^^ >Uint16Array : Uint16ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Uint16Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint16Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -163,13 +163,13 @@ new Int32Array().findLast((item) => item === 0); >new Int32Array().findLast((item) => item === 0) : 0 > : ^ >new Int32Array().findLast : { (predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Int32Array() : Int32Array > : ^^^^^^^^^^ >Int32Array : Int32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Int32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Int32Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -185,13 +185,13 @@ new Uint32Array().findLast((item) => item === 0); >new Uint32Array().findLast((item) => item === 0) : 0 > : ^ >new Uint32Array().findLast : { (predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Uint32Array() : Uint32Array > : ^^^^^^^^^^^ >Uint32Array : Uint32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Uint32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Uint32Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -207,13 +207,13 @@ new Float32Array().findLast((item) => item === 0); >new Float32Array().findLast((item) => item === 0) : 0 > : ^ >new Float32Array().findLast : { (predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Float32Array() : Float32Array > : ^^^^^^^^^^^^ >Float32Array : Float32ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Float32Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float32Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -229,13 +229,13 @@ new Float64Array().findLast((item) => item === 0); >new Float64Array().findLast((item) => item === 0) : 0 > : ^ >new Float64Array().findLast : { (predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new Float64Array() : Float64Array > : ^^^^^^^^^^^^ >Float64Array : Float64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: number, index: number, array: Float64Array) => value is S, thisArg?: any): S; (predicate: (value: number, index: number, array: Float64Array) => unknown, thisArg?: any): number; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === 0 : (item: number) => item is 0 > : ^ ^^^^^^^^^^^^^^^^^^^^^^ >item : number @@ -251,13 +251,13 @@ new BigInt64Array().findLast((item) => item === BigInt(0)); >new BigInt64Array().findLast((item) => item === BigInt(0)) : bigint > : ^^^^^^ >new BigInt64Array().findLast : { (predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new BigInt64Array() : BigInt64Array > : ^^^^^^^^^^^^^ >BigInt64Array : BigInt64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: bigint, index: number, array: BigInt64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigInt64Array) => unknown, thisArg?: any): bigint; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === BigInt(0) : (item: bigint) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >item : bigint @@ -277,13 +277,13 @@ new BigUint64Array().findLast((item) => item === BigInt(0)); >new BigUint64Array().findLast((item) => item === BigInt(0)) : bigint > : ^^^^^^ >new BigUint64Array().findLast : { (predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >new BigUint64Array() : BigUint64Array > : ^^^^^^^^^^^^^^ >BigUint64Array : BigUint64ArrayConstructor > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >findLast : { (predicate: (value: bigint, index: number, array: BigUint64Array) => value is S, thisArg?: any): S; (predicate: (value: bigint, index: number, array: BigUint64Array) => unknown, thisArg?: any): bigint; } -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^ ^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^ >(item) => item === BigInt(0) : (item: bigint) => boolean > : ^ ^^^^^^^^^^^^^^^^^^^^ >item : bigint diff --git a/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types b/tests/baselines/reference/flatArrayNoExcessiveStackDepth.types index e98b06239fdb3..50cd626aef8a0 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/freshLiteralInference.types b/tests/baselines/reference/freshLiteralInference.types index fe8fb9e715b19..53716880aac36 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 177162ae94d61..0a991ecb012ae 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/functionCallOnConstrainedTypeVariable.types b/tests/baselines/reference/functionCallOnConstrainedTypeVariable.types index 603734322399e..eec3f65b5429c 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 2173d76212199..aa9d6da5ca07d 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; } > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ @@ -190,7 +190,7 @@ var r9 = foo((x: U) => x); >foo((x: U) => x) : (x: U) => U > : ^ ^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >(x: U) => x : (x: U) => U > : ^ ^^ ^^ ^^^^^^ >x : U @@ -204,7 +204,7 @@ var r10 = foo(function (x: U) { return x; }); >foo(function (x: U) { return x; }) : (x: U) => U > : ^ ^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >function (x: U) { return x; } : (x: U) => 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 @@ -232,7 +232,7 @@ var r12 = foo((x: U, y: V) => x); >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 @@ -248,7 +248,7 @@ var r13 = foo(i2); >foo(i2) : I2 > : ^^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >i2 : I2 > : ^^^^^^^^^^ @@ -258,7 +258,7 @@ var r14 = foo(C2); >foo(C2) : typeof C2 > : ^^^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >C2 : typeof C2 > : ^^^^^^^^^ @@ -268,7 +268,7 @@ var r15 = foo(b2); >foo(b2) : new (x: T) => T > : ^^^^^ ^^ ^^ ^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >b2 : new (x: T) => T > : ^^^^^ ^^ ^^ ^^^^^^ @@ -278,7 +278,7 @@ var r16 = foo(c2); >foo(c2) : { (x: T): T; (x: T, y: T): T; } > : ^^^ ^^ ^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >c2 : { (x: T): T; (x: T, y: T): T; } > : ^^^ ^^ ^^ ^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^ @@ -296,13 +296,13 @@ var r17 = foo(f2); >foo(f2) : F2 > : ^^ >foo : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >f2 : F2 > : ^^ function foo2(x: T, y: U) { ->foo2 : void, U extends () => void>(x: T, y: U) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 1cb9e56627c70..709976b168fc3 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 @@ -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,7 +121,7 @@ var r7 = foo2(b); >foo2(b) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >b : new (x: string) => string > : ^^^^^ ^^ ^^^^^^^^^^^ @@ -131,7 +131,7 @@ var r8 = foo2((x: U) => x); // no error expected >foo2((x: U) => x) : (x: U) => U > : ^ ^^ ^^ ^^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >(x: U) => x : (x: U) => U > : ^ ^^ ^^ ^^^^^^ >x : U @@ -145,7 +145,7 @@ 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 @@ -161,7 +161,7 @@ var r13 = foo2(C2); >foo2(C2) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >C2 : typeof C2 > : ^^^^^^^^^ @@ -171,7 +171,7 @@ var r14 = foo2(b2); >foo2(b2) : (x: string) => string > : ^ ^^ ^^^^^^^^^^^ >foo2 : string>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >b2 : new (x: T) => T > : ^^^^^ ^^ ^^ ^^^^^^ @@ -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 : void, U extends T>(x: T, y: U) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 5299d0997d446..e280da40b0734 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; } > : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ @@ -164,7 +164,7 @@ var r9 = foo(function (x: U) { return x; }); >foo(function (x: U) { return x; }) : (x: U) => U > : ^ ^^ ^^ ^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >function (x: U) { return x; } : (x: U) => 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,7 +192,7 @@ var r12 = foo(i2); >foo(i2) : I2 > : ^^^^^^^^^^ >foo : string>(x: T) => T -> : ^ ^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >i2 : I2 > : ^^^^^^^^^^ @@ -202,7 +202,7 @@ var r15 = foo(c2); >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/functionImplementations.types b/tests/baselines/reference/functionImplementations.types index 5d2de64abde2a..8f7647fb0a42d 100644 --- a/tests/baselines/reference/functionImplementations.types +++ b/tests/baselines/reference/functionImplementations.types @@ -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/functionOverloadErrors.types b/tests/baselines/reference/functionOverloadErrors.types index ebbfc3e8e371b..82186043a9d50 100644 --- a/tests/baselines/reference/functionOverloadErrors.types +++ b/tests/baselines/reference/functionOverloadErrors.types @@ -140,32 +140,32 @@ function fn9() { } //Function overloads that differ only by type parameter constraints function fn10(); >fn10 : { (): any; (): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ function fn10(); >fn10 : { (): any; (): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ function fn10() { } >fn10 : { (): any; (): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ // (actually OK) //Function overloads that differ only by type parameter constraints where constraints are structually identical function fn11(); ->fn11 : { (): any; (): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>fn11 : { (): any; (): any; } +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ function fn11(); ->fn11 : { (): any; (): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>fn11 : { (): any; (): any; } +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ >window : Window & typeof globalThis > : ^^^^^^^^^^^^^^^^^^^^^^^^^^ function fn11() { } ->fn11 : { (): any; (): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>fn11 : { (): any; (): any; } +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ //Function overloads that differ only by type parameter constraints where constraints include infinitely recursive type reference interface List { @@ -175,15 +175,15 @@ interface List { } function fn12>>(); >fn12 : { >>(): any; >(): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ function fn12>(); >fn12 : { >>(): any; >(): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ function fn12() { } >fn12 : { >>(): any; >(): any; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ //Function overloads that differ by accessibility class cls { @@ -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/functionWithMultipleReturnStatements.types b/tests/baselines/reference/functionWithMultipleReturnStatements.types index 63b579676529f..df2788141d906 100644 --- a/tests/baselines/reference/functionWithMultipleReturnStatements.types +++ b/tests/baselines/reference/functionWithMultipleReturnStatements.types @@ -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/generatorTypeCheck62.types b/tests/baselines/reference/generatorTypeCheck62.types index 0b0f66ae29436..d21203690cb30 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 @@ -120,7 +120,7 @@ export const Nothing3: Strategy = strategy("Nothing", function* (state: S >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 a28a61bca1bc1..d9947b3ec7e21 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 1619affc92ccb..6160c3ef14145 100644 --- a/tests/baselines/reference/generatorYieldContextualType.types +++ b/tests/baselines/reference/generatorYieldContextualType.types @@ -258,8 +258,8 @@ type StepState> = T & { }; function canPickStepContinue( ->canPickStepContinue : >(_step: T, _state: PartialStepState, _selection: StepItemType | Directive) => _selection is StepItemType -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>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 @@ -294,8 +294,8 @@ function createPickStep( } function* showStep< ->showStep : & { counter: number; confirm?: boolean | undefined; startingStep?: number | undefined; } & { repo: any; }, Context extends { repos: any[]; title: string; status: any; }>(state: State, _context: Context) => StepResultGenerator -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^ ^^ ^^ ^^^^^ +>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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -350,8 +350,8 @@ function* showStep< > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >canPickStepContinue(step, state, selection) : boolean > : ^^^^^^^ ->canPickStepContinue : >(_step: T, _state: PartialStepState, _selection: StepItemType | Directive) => _selection is StepItemType -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>canPickStepContinue : (_step: T, _state: PartialStepState, _selection: StepItemType | Directive) => _selection is StepItemType +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >step : QuickPickStep > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >state : State diff --git a/tests/baselines/reference/genericArrayExtenstions.types b/tests/baselines/reference/genericArrayExtenstions.types index 5269a100b158f..e9db5490710e8 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/genericAssignmentCompatOfFunctionSignatures1.types b/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.types index 98adbbe012f88..e7dbfff0b1dff 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/genericCallWithConstraintsTypeArgumentInference.types b/tests/baselines/reference/genericCallWithConstraintsTypeArgumentInference.types index d457645e64fee..7f84976691310 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 > : ^ @@ -98,7 +98,7 @@ function foo2b(u: U) { function foo2c() { >foo2c : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ var x: T; >x : T @@ -115,7 +115,7 @@ var r3 = foo2b(d1); // Base >foo2b(d1) : Base > : ^^^^ >foo2b : (u: U) => T -> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >d1 : Derived > : ^^^^^^^ @@ -125,7 +125,7 @@ var r3b = foo2c(); // Base >foo2c() : Base > : ^^^^ >foo2c : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ class C { >C : C @@ -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 @@ -205,7 +205,7 @@ class C { foo6() { >foo6 : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ var x: T; >x : T @@ -218,7 +218,7 @@ class C { foo7(u: U) { >foo7 : (u: U) => T -> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >u : U > : ^ @@ -233,7 +233,7 @@ class C { foo8() { >foo8 : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ var x: T; >x : T @@ -295,11 +295,11 @@ var r6 = c.foo3(d1, d1); // Derived >c.foo3(d1, d1) : Derived > : ^^^^^^^ >c.foo3 : (t: T, u: Derived) => T -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo3 : (t: T, u: Derived) => T -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^ >d1 : Derived > : ^^^^^^^ >d1 : Derived @@ -311,11 +311,11 @@ var r7 = c.foo4(d1, d2); // Base >c.foo4(d1, d2) : Base > : ^^^^ >c.foo4 : (t: Base, u: U) => Base -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo4 : (t: Base, u: U) => Base -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >d1 : Derived > : ^^^^^^^ >d2 : Derived2 @@ -327,11 +327,11 @@ var r8 = c.foo5(d1, d2); // Derived >c.foo5(d1, d2) : Derived > : ^^^^^^^ >c.foo5 : (t: T, u: U) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo5 : (t: T, u: U) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ >d1 : Derived > : ^^^^^^^ >d2 : Derived2 @@ -343,11 +343,11 @@ var r8b = c.foo5(d2, d2); // Derived2 >c.foo5(d2, d2) : Derived2 > : ^^^^^^^^ >c.foo5 : (t: T, u: U) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo5 : (t: T, u: U) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^ >d2 : Derived2 > : ^^^^^^^^ >d2 : Derived2 @@ -359,11 +359,11 @@ var r9 = c.foo6(); // Derived >c.foo6() : Derived > : ^^^^^^^ >c.foo6 : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo6 : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ var r10 = c.foo7(d1); // Base >r10 : Base @@ -371,11 +371,11 @@ var r10 = c.foo7(d1); // Base >c.foo7(d1) : Base > : ^^^^ >c.foo7 : (u: U) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo7 : (u: U) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ >d1 : Derived > : ^^^^^^^ @@ -385,11 +385,11 @@ var r11 = c.foo8(); // Base >c.foo8() : Base > : ^^^^ >c.foo8 : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ >c : C > : ^^^^^^^^^^^^^^^^ >foo8 : () => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^ interface I { new (t: 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; @@ -495,11 +495,11 @@ var r6 = i.foo3(d1, d1); // Derived >i.foo3(d1, d1) : Derived > : ^^^^^^^ >i.foo3 : (t: T, u: Derived) => T -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo3 : (t: T, u: Derived) => T -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^ ^^^^^^^^^^^^^^^ >d1 : Derived > : ^^^^^^^ >d1 : Derived @@ -511,11 +511,11 @@ var r7 = i.foo4(d1, d2); // Base >i.foo4(d1, d2) : Base > : ^^^^ >i.foo4 : (t: Base, u: U) => Base -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >i : I > : ^^^^^^^^^^^^^^^^ >foo4 : (t: Base, u: U) => Base -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >d1 : Derived > : ^^^^^^^ >d2 : Derived2 @@ -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 c21134dd7d8ae..c034b76f16adc 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/genericCallWithGenericSignatureArguments.types b/tests/baselines/reference/genericCallWithGenericSignatureArguments.types index e84f4252015dc..f0c4427f87b4f 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments.types @@ -217,7 +217,7 @@ function other(x: T) { function other2(x: T) { >other2 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -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 9ee56975fba6c..149d3682c93ce 100644 --- a/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types +++ b/tests/baselines/reference/genericCallWithGenericSignatureArguments2.types @@ -55,7 +55,7 @@ module onlyT { function other2(x: T) { >other2 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : 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 @@ -296,7 +296,7 @@ module TU { function other2(x: T) { >other2 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : 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 diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgs2.types b/tests/baselines/reference/genericCallWithObjectTypeArgs2.types index 781c55f705264..2103f9e70b5dc 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 f7327103129b9..9ae1727521f8c 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 c637dbbb322c7..bfdc5fd57ef77 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 b28b1c018392a..51e018ab3f00a 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 0ac391888cade..0ce908833d273 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 1c19e5b8877a1..68e2d93969126 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 0c2b984cef2e7..5c86d6decca34 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexers.types @@ -39,7 +39,7 @@ var r = foo(a); function other(arg: T) { >other : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types index 5ac7a59b4b32c..c7189c67556b1 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndIndexersErrors.types @@ -46,7 +46,7 @@ function other(arg: T) { function other3(arg: T) { >other3 : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types index b7e29f886e8f7..02413c04bfac7 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.types @@ -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 3a116319775cc..65c6fb0c1a17d 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndNumericIndexer.types @@ -55,7 +55,7 @@ function other(arg: T) { function other2(arg: T) { >other2 : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -88,7 +88,7 @@ function other2(arg: T) { function other3(arg: T) { >other3 : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types index edd4d0a6e68c2..53001c07b07ab 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndStringIndexer.types @@ -55,7 +55,7 @@ function other(arg: T) { function other2(arg: T) { >other2 : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ @@ -88,7 +88,7 @@ function other2(arg: T) { function other3(arg: T) { >other3 : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/genericCapturingFunctionNarrowing.types b/tests/baselines/reference/genericCapturingFunctionNarrowing.types index 193425904b177..3ce0e0881aa48 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/genericClassWithObjectTypeArgsAndConstraints.types b/tests/baselines/reference/genericClassWithObjectTypeArgsAndConstraints.types index 30b04fcfd34ef..e1cc7ded77ae9 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 @@ -95,11 +95,11 @@ module Class { >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 @@ -111,11 +111,11 @@ module Class { >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 @@ -127,7 +127,7 @@ module Class { foo2(t: X, t2: X) { >foo2 : (t: X, t2: X) => T -> : ^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >t : X > : ^^^^ >t2 : X @@ -152,11 +152,11 @@ module Class { >g2.foo2(c1, d1) : C > : ^ >g2.foo2 : (t: X, t2: X) => T -> : ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >g2 : G2 > : ^^^^^ >foo2 : (t: X, t2: X) => T -> : ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >c1 : X > : ^^^^ >d1 : X @@ -168,11 +168,11 @@ module Class { >g2.foo2(c1, c1) : C > : ^ >g2.foo2 : (t: X, t2: X) => T -> : ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >g2 : G2 > : ^^^^^ >foo2 : (t: X, t2: X) => T -> : ^^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^ ^^^^^^^^^^^^ >c1 : X > : ^^^^ >c1 : 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/genericConditionalConstrainedToUnknownNotAssignableToConcreteObject.types b/tests/baselines/reference/genericConditionalConstrainedToUnknownNotAssignableToConcreteObject.types index a1623edadb8b9..2cf560e84424d 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 5b80b43a6f1af..82cde052fd44b 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 diff --git a/tests/baselines/reference/genericConstraint2.types b/tests/baselines/reference/genericConstraint2.types index 66403dc5a426a..ba10251528e29 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 86a52f48536e6..fb0ce708dd99a 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 e93ae5f540c45..31c8bcea2f6eb 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/genericContextualTypes1.types b/tests/baselines/reference/genericContextualTypes1.types index 5ac638f5706c5..d066cb7696a27 100644 --- a/tests/baselines/reference/genericContextualTypes1.types +++ b/tests/baselines/reference/genericContextualTypes1.types @@ -377,7 +377,7 @@ 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[] diff --git a/tests/baselines/reference/genericDefaults.types b/tests/baselines/reference/genericDefaults.types index 2c3128cffce92..2957f87e059f0 100644 --- a/tests/baselines/reference/genericDefaults.types +++ b/tests/baselines/reference/genericDefaults.types @@ -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 diff --git a/tests/baselines/reference/genericDefaultsErrors.types b/tests/baselines/reference/genericDefaultsErrors.types index ffd2622505c49..64fd16cb25f78 100644 --- a/tests/baselines/reference/genericDefaultsErrors.types +++ b/tests/baselines/reference/genericDefaultsErrors.types @@ -7,19 +7,19 @@ declare const x: any; declare function f03(): void; // error >f03 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ declare function f04(): void; // error >f04 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ declare function f05(): void; // error >f05 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^^^^^^^ declare function f06(): void; // error >f06 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ declare function f11(): void; >f11 : () => void diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index afb093b7183ca..e63a712da2086 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 @@ -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 @@ -75,7 +75,7 @@ const f00 = pipe(list); >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[] > : ^ ^^ ^^ ^^^^^^^^ @@ -85,7 +85,7 @@ const f01 = pipe(list, box); >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; } @@ -97,7 +97,7 @@ const f02 = pipe(box, list); >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[] @@ -109,7 +109,7 @@ const f03 = pipe(x => list(x), box); >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 @@ -129,7 +129,7 @@ const f04 = pipe(list, x => box(x)); >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[]; } @@ -149,7 +149,7 @@ const f05 = pipe(x => list(x), x => box(x)) >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 @@ -177,13 +177,13 @@ const f06 = pipe(list, pipe(box)); >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; } > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ @@ -193,7 +193,7 @@ const f07 = pipe(x => list(x), pipe(box)); >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 @@ -207,7 +207,7 @@ const f07 = pipe(x => list(x), pipe(box)); >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; } > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ @@ -217,7 +217,7 @@ const f08 = pipe(x => list(x), pipe(x => box(x))); >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 @@ -231,7 +231,7 @@ const f08 = pipe(x => list(x), pipe(x => box(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 => box(x) : (x: any[]) => { value: any[]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x : any[] @@ -249,7 +249,7 @@ const f09 = pipe(list, x => x.length); >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 @@ -265,25 +265,25 @@ 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[] @@ -293,7 +293,7 @@ const g00: (x: T) => T[] = pipe(list); >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[] > : ^ ^^ ^^ ^^^^^^^^ @@ -307,7 +307,7 @@ const g01: (x: T) => { value: T[] } = pipe(list, box); >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; } @@ -323,7 +323,7 @@ const g02: (x: T) => { value: T }[] = pipe(box, list); >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[] @@ -339,7 +339,7 @@ const g03: (x: T) => { value: T[] } = pipe(x => list(x), box); >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 @@ -363,7 +363,7 @@ const g04: (x: T) => { value: T[] } = pipe(list, x => box(x)); >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[]; } @@ -387,7 +387,7 @@ const g05: (x: T) => { value: T[] } = pipe(x => list(x), x => box(x)) >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 @@ -419,13 +419,13 @@ const g06: (x: T) => { value: T[] } = pipe(list, pipe(box)); >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; } > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ @@ -439,7 +439,7 @@ const g07: (x: T) => { value: T[] } = pipe(x => list(x), pipe(box)); >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 @@ -453,7 +453,7 @@ const g07: (x: T) => { value: T[] } = pipe(x => list(x), pipe(box)); >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; } > : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ @@ -467,7 +467,7 @@ const g08: (x: T) => { value: T[] } = pipe(x => list(x), pipe(x => box(x))); >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 @@ -481,7 +481,7 @@ const g08: (x: T) => { value: T[] } = pipe(x => list(x), pipe(x => box(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 => box(x) : (x: T[]) => { value: T[]; } > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x : T[] @@ -501,7 +501,7 @@ const g09: (x: T) => number = pipe(list, x => x.length); >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 @@ -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,11 +539,11 @@ 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] @@ -621,27 +621,27 @@ const f24 = pipe2(f20, f20); 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] @@ -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,13 +785,13 @@ 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; } @@ -816,7 +816,7 @@ let f70 = pipe(list2, box); >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; } @@ -828,7 +828,7 @@ let f71 = pipe(box, list2); >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; } @@ -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 > : ^^^^^^^^^^ @@ -1324,7 +1324,7 @@ const enhance = pipe( >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

@@ -1354,7 +1354,7 @@ const fn20 = pipe((_a?: {}) => 1); >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 @@ -1376,7 +1376,7 @@ const fn30: Fn = 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 @@ -1432,7 +1432,7 @@ promise.then( >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 @@ -1485,7 +1485,7 @@ const fn40 = pipe( >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 @@ -1527,7 +1527,7 @@ const fn60 = pipe( >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[] @@ -1553,7 +1553,7 @@ const fn61 = pipe( >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[] @@ -1575,7 +1575,7 @@ const fn62 = pipe( >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[] diff --git a/tests/baselines/reference/genericFunctionParameters.types b/tests/baselines/reference/genericFunctionParameters.types index de7669f09482b..e71f4000d4743 100644 --- a/tests/baselines/reference/genericFunctionParameters.types +++ b/tests/baselines/reference/genericFunctionParameters.types @@ -13,15 +13,15 @@ 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 -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +>cb : >(x: S) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : S > : ^ @@ -47,7 +47,7 @@ let x2 = f2(x => x); // number >f2 : (cb: (x: S) => T) => T > : ^ ^^ ^^ ^^^^^^ >x => x : (x: S) => S -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^ >x : S > : ^ >x : S diff --git a/tests/baselines/reference/genericFunctionsAndConditionalInference.types b/tests/baselines/reference/genericFunctionsAndConditionalInference.types index 99f312d83c387..dc95b088467ff 100644 --- a/tests/baselines/reference/genericFunctionsAndConditionalInference.types +++ b/tests/baselines/reference/genericFunctionsAndConditionalInference.types @@ -126,10 +126,10 @@ 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>; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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>; } @@ -160,10 +160,10 @@ 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; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>orphaned : (at: Ops) => Result; }> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>(at: Ops) => at.dict(ok(at)) : (at: Ops) => Result; }> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >at : Ops > : ^^^^^^ >at.dict(ok(at)) : Result; }> @@ -176,8 +176,8 @@ const orphaned = (at: Ops) => at.dict(ok(at)) > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >ok(at) : { lr: Result>; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->ok : >(at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>ok : (at: Ops) => { lr: Result>; } +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >at : Ops > : ^^^^^^ @@ -186,8 +186,8 @@ const leftOk = ok(left) > : ^^^^^^^^^^^^^^^ >ok(left) : { lr: string; } > : ^^^^^^^^^^^^^^^ ->ok : >(at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>ok : (at: Ops) => { lr: Result>; } +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >left : Ops<"left"> > : ^^^^^^^^^^^ @@ -196,8 +196,8 @@ const leftOrphaned = orphaned(left) > : ^^^^^^^^^^^^^^^ >orphaned(left) : { lr: string; } > : ^^^^^^^^^^^^^^^ ->orphaned : >(at: Ops) => Result; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>orphaned : (at: Ops) => Result; }> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >left : Ops<"left"> > : ^^^^^^^^^^^ @@ -206,8 +206,8 @@ const rightOk = ok(right) > : ^^^^^^^^^^^^^^^ >ok(right) : { lr: number; } > : ^^^^^^^^^^^^^^^ ->ok : >(at: Ops) => { lr: Result>; } -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>ok : (at: Ops) => { lr: Result>; } +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >right : Ops<"right"> > : ^^^^^^^^^^^^ @@ -216,8 +216,8 @@ const rightOrphaned = orphaned(right) > : ^^^^^^^^^^^^^^^ >orphaned(right) : { lr: number; } > : ^^^^^^^^^^^^^^^ ->orphaned : >(at: Ops) => Result; }> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>orphaned : (at: Ops) => Result; }> +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >right : Ops<"right"> > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/genericFunctionsNotContextSensitive.types b/tests/baselines/reference/genericFunctionsNotContextSensitive.types index d52c305768804..dd599f2dcd487 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/genericImplements.types b/tests/baselines/reference/genericImplements.types index 553beb483b8c1..41c97fb25adf0 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 > : ^^^^^^^^^ diff --git a/tests/baselines/reference/genericInferenceDefaultTypeParameter.types b/tests/baselines/reference/genericInferenceDefaultTypeParameter.types index 14b10e20ad68b..a29e3bc93d14d 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 cc4e8b7ae6500..2b8f6659d2f51 100644 --- a/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types +++ b/tests/baselines/reference/genericInferenceDefaultTypeParameterJsxReact.types @@ -28,8 +28,8 @@ type ButtonBaseProps = ComponentPropsWithRef & { child > : ^^^^^^^^^^^^^^^ function Component(props: ButtonBaseProps) { ->Component : (props: ButtonBaseProps) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +>Component : (props: ButtonBaseProps) => JSX.Element +> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ >props : ButtonBaseProps > : ^^^^^^^^^^^^^^^^^^ @@ -43,8 +43,8 @@ const v1 = e.preventDefault()} />; > : ^^^^^^^^^^^ > e.preventDefault()} /> : JSX.Element > : ^^^^^^^^^^^ ->Component : (props: ButtonBaseProps) => 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/genericIsNeverEmptyObject.types b/tests/baselines/reference/genericIsNeverEmptyObject.types index 5880cd6980d8f..4b65449c6080b 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/genericMappedTypeAsClause.types b/tests/baselines/reference/genericMappedTypeAsClause.types index 4bb244d333865..ff5063ceeefc5 100644 --- a/tests/baselines/reference/genericMappedTypeAsClause.types +++ b/tests/baselines/reference/genericMappedTypeAsClause.types @@ -48,7 +48,7 @@ const foo2: MappedModel<'Foo'> = { bFoo: 'bar' }; // Error function f1() { >f1 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ const x1: MappedModel = 42; // Error >x1 : MappedModel diff --git a/tests/baselines/reference/genericMemberFunction.types b/tests/baselines/reference/genericMemberFunction.types index f62b546bde6dc..6e0b9b8d0603d 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/genericObjectRest.types b/tests/baselines/reference/genericObjectRest.types index f872eb3faf4fa..82629fedda86f 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 f9e9ce897220a..27528b0a30dee 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/genericRestArity.types b/tests/baselines/reference/genericRestArity.types index dd23cf05c7b4f..c02329d6cb75a 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 9d961ed53c9f9..4068aacee676a 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 515f7d96af42a..9580656de8928 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 @@ -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,7 +797,7 @@ 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" @@ -811,7 +811,7 @@ 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" @@ -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,7 +859,7 @@ 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 @@ -867,7 +867,7 @@ let x32 = callr(sn, f16); // string | number 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 05183b3ec48c4..434d1e2216432 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 92b23addbb853..ceaccf3409c18 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 @@ -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/genericRestTypes.types b/tests/baselines/reference/genericRestTypes.types index 205a4e68e774b..c122c7c4f5c4f 100644 --- a/tests/baselines/reference/genericRestTypes.types +++ b/tests/baselines/reference/genericRestTypes.types @@ -45,7 +45,7 @@ type Generic = Bind1; // (bar: string) => boolean function assignmentWithComplexRest() { >assignmentWithComplexRest : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ const fn1: (x: string, ...rest: T) => void = (x, ..._) => x; >fn1 : (x: string, ...rest: T) => void @@ -74,7 +74,7 @@ function assignmentWithComplexRest() { function assignmentWithComplexRest2() { >assignmentWithComplexRest2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ const fn1: (cb: (x: string, ...rest: T) => void) => void = (cb) => {}; >fn1 : (cb: (x: string, ...rest: T) => void) => void @@ -103,7 +103,7 @@ function assignmentWithComplexRest2() { function assignmentWithComplexRest3() { >assignmentWithComplexRest3 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ const fn1: (x: string, ...rest: T) => void = (x, ..._) => x; >fn1 : (x: string, ...rest: T) => void diff --git a/tests/baselines/reference/genericSignatureIdentity.types b/tests/baselines/reference/genericSignatureIdentity.types index e77e702d7c34f..ac87af8165684 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/genericTypeAssertions4.types b/tests/baselines/reference/genericTypeAssertions4.types index 091735908590d..8640c06a54417 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 9c0d2e91f6cb9..e73286d89263d 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/genericTypeReferenceWithoutTypeArgument.d.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types index fe942bb17d841..7d12f8b399ff6 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.d.types @@ -75,14 +75,14 @@ declare class D3 { } > : ^^^ declare function h(x: T); ->h : (x: T) => any -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ +>h : (x: T) => any +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ declare function i(x: T); ->i : (x: T) => any -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ +>i : (x: T) => any +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types index a831bc40aaede..b289f43a0a8db 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.types @@ -112,14 +112,14 @@ interface I2 extends M.E { } > : ^^^^^^^^ function h(x: T) { } ->h : (x: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>h : (x: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ function i(x: T) { } ->i : (x: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>i : (x: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types index 81c9ff4dbb109..02c324df4a2ba 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.types @@ -102,14 +102,14 @@ interface I2 extends M.C { } > : ^^^ function h(x: T) { } ->h : (x: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>h : (x: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ function i(x: T) { } ->i : (x: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>i : (x: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types index 5475f42f11de2..1b4e7fc2df006 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument3.types @@ -75,14 +75,14 @@ declare class D3 { } > : ^^^ declare function h(x: T); ->h : (x: T) => any -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ +>h : (x: T) => any +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ >x : T > : ^ declare function i(x: T); ->i : (x: T) => any -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^ +>i : (x: T) => any +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^ >M : any > : ^^^ >x : T diff --git a/tests/baselines/reference/genericTypeWithCallableMembers2.types b/tests/baselines/reference/genericTypeWithCallableMembers2.types index df93960943d84..a13adb7b071ff 100644 --- a/tests/baselines/reference/genericTypeWithCallableMembers2.types +++ b/tests/baselines/reference/genericTypeWithCallableMembers2.types @@ -2,8 +2,8 @@ === genericTypeWithCallableMembers2.ts === function foo1(f: T) { ->foo1 : string>(f: T) => string -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +>foo1 : (f: T) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >f : T > : ^ @@ -15,8 +15,8 @@ function foo1(f: T) { } function foo2(f: T) { ->foo2 : string>(f: T) => string -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +>foo2 : (f: T) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >f : T > : ^ diff --git a/tests/baselines/reference/genericUnboundedTypeParamAssignability.types b/tests/baselines/reference/genericUnboundedTypeParamAssignability.types index 077c164ebcb8a..98bbe9979cfab 100644 --- a/tests/baselines/reference/genericUnboundedTypeParamAssignability.types +++ b/tests/baselines/reference/genericUnboundedTypeParamAssignability.types @@ -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 > : ^ @@ -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/genericWithNoConstraintComparableWithCurlyCurly.types b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types index f1ca191ff6de0..abaf24fb99480 100644 --- a/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types +++ b/tests/baselines/reference/genericWithNoConstraintComparableWithCurlyCurly.types @@ -20,7 +20,7 @@ function foo() { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let x = {}; >x : {} @@ -37,7 +37,7 @@ function bar() { function baz() { >baz : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let x = {}; >x : {} @@ -54,7 +54,7 @@ function baz() { function bat() { >bat : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let x = {}; >x : {} @@ -71,7 +71,7 @@ function bat() { function no() { >no : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let x = {}; >x : {} @@ -88,7 +88,7 @@ function no() { function yes() { >yes : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let x = {}; >x : {} diff --git a/tests/baselines/reference/getParameterNameAtPosition.types b/tests/baselines/reference/getParameterNameAtPosition.types index 3587d80d67a4a..ea1ac68f99128 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/heterogeneousArrayLiterals.types b/tests/baselines/reference/heterogeneousArrayLiterals.types index 27f913686121a..19a6ae7003bb7 100644 --- a/tests/baselines/reference/heterogeneousArrayLiterals.types +++ b/tests/baselines/reference/heterogeneousArrayLiterals.types @@ -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 0ffd57ed355fc..5ea287ff2beff 100644 --- a/tests/baselines/reference/higherOrderMappedIndexLookupInference.types +++ b/tests/baselines/reference/higherOrderMappedIndexLookupInference.types @@ -32,25 +32,25 @@ function f2(a: () => T[K], b: () => >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] }) { diff --git a/tests/baselines/reference/homomorphicMappedTypeNesting.types b/tests/baselines/reference/homomorphicMappedTypeNesting.types index cd6e632f48245..5d6bdf11d211d 100644 --- a/tests/baselines/reference/homomorphicMappedTypeNesting.types +++ b/tests/baselines/reference/homomorphicMappedTypeNesting.types @@ -25,8 +25,8 @@ type Identity = { [K in keyof T]: T[K] }; > : ^^^^^^^^^^^ declare function fnBad>>(...args: T): Test>>; ->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 2bbea9ad9f970..8d85ea021b711 100644 --- a/tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types +++ b/tests/baselines/reference/homomorphicMappedTypeWithNonHomomorphicInstantiationSpreadable1.types @@ -15,7 +15,7 @@ type HandleOptions = { declare function func1< >func1 : >(fields: { [K in keyof T]: { label: string; options: [...HandleOptions]; }; }) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ T extends Record, >(fields: { @@ -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 0694d7a5fee87..8ec2565fca652 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/identicalGenericConditionalsWithInferRelated.types b/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types index b6d5e45a81334..b6ad487dd1e41 100644 --- a/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types +++ b/tests/baselines/reference/identicalGenericConditionalsWithInferRelated.types @@ -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 1e3616b987df1..01f587c6af563 100644 --- a/tests/baselines/reference/identityAndDivergentNormalizedTypes.types +++ b/tests/baselines/reference/identityAndDivergentNormalizedTypes.types @@ -39,10 +39,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 @@ -60,10 +60,10 @@ const post = ( } const tmp = ( ->tmp : (path: PATH, body: PostBody) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ->( path: PATH, body: PostBody) => { post(path, { body })} : (path: PATH, body: PostBody) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>tmp : (path: PATH, body: PostBody) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>( path: PATH, body: PostBody) => { post(path, { body })} : (path: PATH, body: PostBody) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ path: PATH, >path : PATH @@ -77,8 +77,8 @@ const tmp = ( post(path, { body }) >post(path, { body }) : void > : ^^^^ ->post : (path: PATH_1, { body, ...options }: Omit & { body: PostBody; }) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>post : (path: PATH_1, { body, ...options }: Omit & { body: PostBody; }) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >path : PATH > : ^^^^ >{ body } : { body: PostBody; } @@ -88,8 +88,8 @@ const tmp = ( } function fx1

(x: { body: PostBody

}, y: { body: PostBody

}) { ->fx1 :

(x: { body: PostBody

; }, y: { body: PostBody

; }) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>fx1 :

(x: { body: PostBody

; }, y: { body: PostBody

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

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

diff --git a/tests/baselines/reference/identityRelationNeverTypes.types b/tests/baselines/reference/identityRelationNeverTypes.types index b5ebea732d993..72b153859a74e 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/implementArrayInterface.types b/tests/baselines/reference/implementArrayInterface.types index fed89eb1f63c9..bd9f3b903465b 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[] > : ^^^ diff --git a/tests/baselines/reference/importMeta(module=commonjs,target=es5).types b/tests/baselines/reference/importMeta(module=commonjs,target=es5).types index 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 4476dd83c070c..10d502701cbc2 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 b2b7ddea9f504..89f99fcf06016 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/inDoesNotOperateOnPrimitiveTypes.types b/tests/baselines/reference/inDoesNotOperateOnPrimitiveTypes.types index 5cb80e882bff3..21c427bfcf690 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 @@ -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 > : ^^^^^ @@ -168,7 +168,7 @@ function union3(thing: T | string | number) { function union4(thing: T) { >union4 : (thing: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >thing : T > : ^ @@ -182,8 +182,8 @@ function union4(thing: T) { } function union5(p: T | U) { ->union5 : (p: T | U) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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 > : ^^^^^ diff --git a/tests/baselines/reference/inKeywordAndUnknown.types b/tests/baselines/reference/inKeywordAndUnknown.types index cc52f321244d3..3b18bfedcabd5 100644 --- a/tests/baselines/reference/inKeywordAndUnknown.types +++ b/tests/baselines/reference/inKeywordAndUnknown.types @@ -172,7 +172,7 @@ function f3(x: {}) { function f4(x: T) { >f4 : (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 b73e57b3e16a1..659b0e1d639ba 100644 --- a/tests/baselines/reference/inKeywordTypeguard(strict=false).types +++ b/tests/baselines/reference/inKeywordTypeguard(strict=false).types @@ -1655,8 +1655,8 @@ const checkIsTouchDevice = () => // Repro from #51501 function isHTMLTable(table: T): boolean { ->isHTMLTable : (table: T) => boolean -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>isHTMLTable : (table: T) => boolean +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >table : T > : ^ @@ -1681,9 +1681,9 @@ function isHTMLTable(table: T): boolean { const f =

(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 0fbf855da4bb6..d6af3eb215a4f 100644 --- a/tests/baselines/reference/inKeywordTypeguard(strict=true).types +++ b/tests/baselines/reference/inKeywordTypeguard(strict=true).types @@ -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/incorrectNumberOfTypeArgumentsDuringErrorReporting.types b/tests/baselines/reference/incorrectNumberOfTypeArgumentsDuringErrorReporting.types index d201ec240024c..99cc7a412711b 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 4edcac53cb2d0..4a0c8c2e46ab6 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/indexSignatureAndMappedType.types b/tests/baselines/reference/indexSignatureAndMappedType.types index 135538248fb97..2d2a82d3e2d8c 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 @@ -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 942e7ef1939e6..6d46e8baca898 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/indexedAccessAndNullableNarrowing.types b/tests/baselines/reference/indexedAccessAndNullableNarrowing.types index ced0195831367..4111df4cc04fc 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] @@ -121,8 +121,8 @@ interface Store { } export function syncStoreProp< ->syncStoreProp : , K extends keyof S>(store: Store, props: P, key: K) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 9ca3390b7fb3f..14d05ac0d5ee8 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 cd24ab7b7d4fe..cf4424a04681e 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 4098ebf62203c..96b4f67f41db9 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 72fbccec09d42..10e7388e8b413 100644 --- a/tests/baselines/reference/indexedAccessNormalization.types +++ b/tests/baselines/reference/indexedAccessNormalization.types @@ -22,7 +22,7 @@ declare function g(value?: T): void; function f1(mymap: MyMap, k: keyof M) { >f1 : (mymap: MyMap, k: keyof M) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >mymap : MyMap > : ^^^^^^^^ >k : keyof M @@ -49,7 +49,7 @@ function f1(mymap: MyMap, k: 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 20fe57223e34a..e97a9eac736b8 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 ef08c42195dd6..75539dd0a19b4 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 > : ^ @@ -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/indexingTypesWithNever.types b/tests/baselines/reference/indexingTypesWithNever.types index d1bd02182a282..84d801ffa565e 100644 --- a/tests/baselines/reference/indexingTypesWithNever.types +++ b/tests/baselines/reference/indexingTypesWithNever.types @@ -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/inferFromBindingPattern.types b/tests/baselines/reference/inferFromBindingPattern.types index bd41369758cd9..c97505655e982 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,7 +39,7 @@ let { x: x3 } = f3(); // string >f3() : { x: string; } > : ^^^^^^^^^^^^^^ >f3 : () => { x: T; } -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ // Repro from #30379 diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index d94996e2a017c..6c7488428384e 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -618,12 +618,12 @@ const f1: F = () => { return Promise.all([ >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.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; }>; } -> : ^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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"; })[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ { diff --git a/tests/baselines/reference/inferRestArgumentsMappedTuple.types b/tests/baselines/reference/inferRestArgumentsMappedTuple.types index 2fa0e35c456d6..f0c8234c427e0 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 e570b85157da9..f31ee9ed5774d 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/inferTypes1.types b/tests/baselines/reference/inferTypes1.types index e59edb069c7e2..025f2a01d009e 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/inferenceAndHKTs.types b/tests/baselines/reference/inferenceAndHKTs.types index d40708a3d92ab..03f01611e7878 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) => T > : ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ >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) => T > : ^^^^^^^ ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^ >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 9a168bf67f61d..f027a2ff9b808 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/inferenceErasedSignatures.types b/tests/baselines/reference/inferenceErasedSignatures.types index dda23e8f051ce..d3fefd059887d 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 88a9cfed48361..14e548b740a59 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 b55379bbb111b..0efabf9e93f84 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/inferenceLimit.types b/tests/baselines/reference/inferenceLimit.types index 5ed58b51e0b1c..e5a7a2fdf95e1 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/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types b/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types index 645b88bd50147..0ad2a8153849a 100644 --- a/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types +++ b/tests/baselines/reference/inferenceOuterResultNotIncorrectlyInstantiatedWithInnerResult.types @@ -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 c61b90e4e0421..593ef92537018 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/inferentialTypingUsingApparentType1.types b/tests/baselines/reference/inferentialTypingUsingApparentType1.types index 5d6597a392f5e..dc8898845b193 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 50220a1fc0d6a..245d13890b8e5 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/inferingFromAny.types b/tests/baselines/reference/inferingFromAny.types index a4adfaa7772a1..0481a28a09929 100644 --- a/tests/baselines/reference/inferingFromAny.types +++ b/tests/baselines/reference/inferingFromAny.types @@ -130,13 +130,13 @@ declare function f17(x: {[P in keyof T]: K}): T; 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] @@ -274,14 +274,14 @@ 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 88a66e067b65e..db16ccb39a968 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/inferringAnyFunctionType1.types b/tests/baselines/reference/inferringAnyFunctionType1.types index 3626c61b6884e..8559ecd64cfaa 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 9aa0b187eb513..375e0abea0202 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 df27a96e8bb69..af8cf3b8ea0f9 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 2afe7362c56c0..ac81ebf6a4e58 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 169ace3763581..d2233caf9a146 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/infiniteConstraints.types b/tests/baselines/reference/infiniteConstraints.types index 44bb0f6206866..0c70f92d8e2d6 100644 --- a/tests/baselines/reference/infiniteConstraints.types +++ b/tests/baselines/reference/infiniteConstraints.types @@ -25,8 +25,8 @@ type AProp = T > : ^^^^^^ declare function myBug< ->myBug : (arg: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>myBug : ? U : never; }>(arg: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ T extends { [K in keyof T]: T[K] extends AProp ? U : never } >(arg: T): T @@ -38,8 +38,8 @@ const out = myBug({obj1: {a: "test"}}) > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >myBug({obj1: {a: "test"}}) : { obj1: { a: string; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ ->myBug : (arg: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +>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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>ensureNoDuplicates : ["val"] extends Extract], Value>["val"] ? never : any; }>(vals: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ T extends { [K in keyof T]: Extract["val"] extends Extract], Value>["val"] @@ -79,8 +79,8 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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" > : ^^^^^^^ @@ -105,8 +105,8 @@ const shouldBeNoError = ensureNoDuplicates({main: value("test")}); > : ^^^^ >ensureNoDuplicates({main: value("test")}) : void > : ^^^^ ->ensureNoDuplicates : >["val"] extends Extract], Value>["val"] ? never : any; }>(vals: T) => 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" > : ^^^^^^ @@ -123,8 +123,8 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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/inlineMappedTypeModifierDeclarationEmit.types b/tests/baselines/reference/inlineMappedTypeModifierDeclarationEmit.types index 4f336997bf2cc..82acd6fca5322 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/inlinedAliasAssignableToConstraintSameAsAlias.types b/tests/baselines/reference/inlinedAliasAssignableToConstraintSameAsAlias.types index b41cc1b18f984..0b95f68216e52 100644 --- a/tests/baselines/reference/inlinedAliasAssignableToConstraintSameAsAlias.types +++ b/tests/baselines/reference/inlinedAliasAssignableToConstraintSameAsAlias.types @@ -42,8 +42,8 @@ class A { > : ^^^ whereRelated< // Works // Type is same as A1, but is not assignable to type A ->whereRelated : >() => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>whereRelated : >() => number +> : ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ RF extends RelationFields = RelationFields, N extends Name = Name, diff --git a/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types b/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types index 462f02ddeeb82..00865ab77bd5c 100644 --- a/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types +++ b/tests/baselines/reference/innerTypeParameterShadowingOuterOne.types @@ -6,11 +6,11 @@ function f() { >f : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ function g() { >g : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var x: T; >x : T @@ -43,11 +43,11 @@ function f() { function f2() { >f2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ function g() { >g : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ var x: U; >x : U diff --git a/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types b/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types index 058ea44bc3d91..472e66fb88891 100644 --- a/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types +++ b/tests/baselines/reference/innerTypeParameterShadowingOuterOne2.types @@ -10,7 +10,7 @@ class C { g() { >g : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var x: T; >x : T @@ -53,7 +53,7 @@ class C2 { g() { >g : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ var x: U; >x : U diff --git a/tests/baselines/reference/instanceofTypeAliasToGenericClass.types b/tests/baselines/reference/instanceofTypeAliasToGenericClass.types index 705e7917fdd02..08282a1058915 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 > : ^ @@ -30,8 +30,8 @@ function fn(o: T) { } function fn2(o: T) { ->fn2 : >(o: T) => boolean -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +>fn2 : (o: T) => boolean +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ >o : T > : ^ diff --git a/tests/baselines/reference/instantiateContextualTypes.types b/tests/baselines/reference/instantiateContextualTypes.types index 190a650cafac6..faea7f502d839 100644 --- a/tests/baselines/reference/instantiateContextualTypes.types +++ b/tests/baselines/reference/instantiateContextualTypes.types @@ -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 @@ -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 | undefined; } ? 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 | undefined; } ? 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 | undefined; } ? 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 | undefined; } ? C extends any[] ? C : C[] : unknown) => any -> : ^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >InferFunctionTypes : typeof InferFunctionTypes > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >[(foo) => "" + foo] : ((foo: number) => string)[] diff --git a/tests/baselines/reference/instantiationExpressions.types b/tests/baselines/reference/instantiationExpressions.types index c1a626de60769..ca01d150e5020 100644 --- a/tests/baselines/reference/instantiationExpressions.types +++ b/tests/baselines/reference/instantiationExpressions.types @@ -663,7 +663,7 @@ function f37(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 @@ -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/intersectionAsWeakTypeSource.types b/tests/baselines/reference/intersectionAsWeakTypeSource.types index a7b880dc8acfc..780a0b5961808 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 4dd63fe9b7f0b..69f17ad48e2af 100644 --- a/tests/baselines/reference/intersectionNarrowing.types +++ b/tests/baselines/reference/intersectionNarrowing.types @@ -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 84a2b4968624d..b27b63d00d5b8 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 c2e3dda073f95..a3ac7a750c672 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 385389887cbbf..50c952850c0c4 100644 --- a/tests/baselines/reference/intersectionReduction.types +++ b/tests/baselines/reference/intersectionReduction.types @@ -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 d361c9697b652..4636d6bee116f 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/intersectionTypeInference2.types b/tests/baselines/reference/intersectionTypeInference2.types index e60d20b21f256..93b8f75da5c08 100644 --- a/tests/baselines/reference/intersectionTypeInference2.types +++ b/tests/baselines/reference/intersectionTypeInference2.types @@ -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/intersectionWithUnionConstraint.types b/tests/baselines/reference/intersectionWithUnionConstraint.types index 687d74a35689d..43435329a10f4 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 133cc8badea59..a189725be6487 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; } > : ^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/intersectionsOfLargeUnions.types b/tests/baselines/reference/intersectionsOfLargeUnions.types index 7e38db8866105..7001e52f23d03 100644 --- a/tests/baselines/reference/intersectionsOfLargeUnions.types +++ b/tests/baselines/reference/intersectionsOfLargeUnions.types @@ -39,8 +39,8 @@ export function assertIsElement(node: Node | null): node is Element { } export function assertNodeTagName< ->assertNodeTagName : (node: Node | null, tagName: T) => node is U -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>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 { @@ -87,8 +87,8 @@ export function assertNodeTagName< } export function assertNodeProperty< ->assertNodeProperty : (node: Node | null, tagName: T, prop: P, value: V) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>assertNodeProperty : (node: Node | null, tagName: T, prop: P, value: V) => void +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ T extends keyof ElementTagNameMap, P extends keyof ElementTagNameMap[T], @@ -105,8 +105,8 @@ export function assertNodeProperty< if (assertNodeTagName(node, tagName)) { >assertNodeTagName(node, tagName) : boolean > : ^^^^^^^ ->assertNodeTagName : (node: Node | null, tagName: T_1) => node is U -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>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 606f2287595a3..0e8164fdbf316 100644 --- a/tests/baselines/reference/intersectionsOfLargeUnions2.types +++ b/tests/baselines/reference/intersectionsOfLargeUnions2.types @@ -56,8 +56,8 @@ export function assertIsElement(node: Node | null): node is Element { } export function assertNodeTagName< ->assertNodeTagName : (node: Node | null, tagName: T) => node is U -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>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 { @@ -104,8 +104,8 @@ export function assertNodeTagName< } export function assertNodeProperty< ->assertNodeProperty : (node: Node | null, tagName: T, prop: P, value: V) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>assertNodeProperty : (node: Node | null, tagName: T, prop: P, value: V) => void +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ T extends keyof ElementTagNameMap, P extends keyof ElementTagNameMap[T], @@ -122,8 +122,8 @@ export function assertNodeProperty< if (assertNodeTagName(node, tagName)) { >assertNodeTagName(node, tagName) : boolean > : ^^^^^^^ ->assertNodeTagName : (node: Node | null, tagName: T_1) => node is U -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>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 95d5418331b9f..208396c072854 100644 --- a/tests/baselines/reference/intraExpressionInferences.types +++ b/tests/baselines/reference/intraExpressionInferences.types @@ -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; }; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/intraExpressionInferencesJsx.types b/tests/baselines/reference/intraExpressionInferencesJsx.types index aa6b8afe7bc3c..39fed796ca777 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; }; }; } diff --git a/tests/baselines/reference/intrinsicTypes.types b/tests/baselines/reference/intrinsicTypes.types index 2b3ad38293cdf..ee51b4cf92a3c 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/invalidConstraint1.types b/tests/baselines/reference/invalidConstraint1.types index 822a2ed10822f..e5bb184916f79 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/invariantGenericErrorElaboration.types b/tests/baselines/reference/invariantGenericErrorElaboration.types index ac38a4538639d..1c2f2ec6f9812 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/isolatedDeclarationErrorsClassesExpressions.types b/tests/baselines/reference/isolatedDeclarationErrorsClassesExpressions.types index 8cd5a8ea25a26..f35c5915cf8d2 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/isomorphicMappedTypeInference.types b/tests/baselines/reference/isomorphicMappedTypeInference.types index d17e25893b333..2d154d652024b 100644 --- a/tests/baselines/reference/isomorphicMappedTypeInference.types +++ b/tests/baselines/reference/isomorphicMappedTypeInference.types @@ -97,7 +97,7 @@ function boxify(obj: T): Boxified { function unboxify(obj: Boxified): T { >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >obj : Boxified > : ^^^^^^^^^^^ @@ -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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -401,7 +401,7 @@ function f4() { >unboxify(b) : { a: number; b: string; c: boolean; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >b : { a: Box; b: Box; c: Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -413,7 +413,7 @@ 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 @@ -424,7 +424,7 @@ function f4() { 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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -567,7 +567,7 @@ function f6(s: string) { >unboxify(b) : { [x: string]: any; } > : ^^^^^^^^^^^^^^^^^^^^^ >unboxify : (obj: Boxified) => T -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >b : { [x: string]: Box | Box | Box; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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/jsEnumTagOnObjectFrozen.types b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types index 9dd3902eeb2f2..c973cb854a6de 100644 --- a/tests/baselines/reference/jsEnumTagOnObjectFrozen.types +++ b/tests/baselines/reference/jsEnumTagOnObjectFrozen.types @@ -75,12 +75,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >{ a: "thing", b: "chill"} : { a: "thing"; b: "chill"; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/jsFileImportPreservedWhenUsed.types b/tests/baselines/reference/jsFileImportPreservedWhenUsed.types index c2b33e33e003c..8dcf96259e62a 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/jsdocInTypeScript.types b/tests/baselines/reference/jsdocInTypeScript.types index ca0da901de7f3..47a8e22f5fd00 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/jsdocTemplateTag3.types b/tests/baselines/reference/jsdocTemplateTag3.types index f35cc77f10a90..e5dc88d93cb1c 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 diff --git a/tests/baselines/reference/jsdocTemplateTag6.types b/tests/baselines/reference/jsdocTemplateTag6.types index 6697ec95a96f0..c459a3ce1b3c7 100644 --- a/tests/baselines/reference/jsdocTemplateTag6.types +++ b/tests/baselines/reference/jsdocTemplateTag6.types @@ -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/jsdocTemplateTagDefault.types b/tests/baselines/reference/jsdocTemplateTagDefault.types index 08ddcd29c25e2..5c8aea32481be 100644 --- a/tests/baselines/reference/jsdocTemplateTagDefault.types +++ b/tests/baselines/reference/jsdocTemplateTagDefault.types @@ -92,7 +92,7 @@ function f1(a, b) {} */ function f2(a, b) {} >f2 : (a: T, b: U) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >a : T > : ^ >b : U diff --git a/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types b/tests/baselines/reference/jsxCallElaborationCheckNoCrash1.types index 2c1c1110de0ef..ab87b840acde3 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 29ea5d302ef04..70438d3faa4d9 100644 --- a/tests/baselines/reference/jsxChildrenGenericContextualTypes.types +++ b/tests/baselines/reference/jsxChildrenGenericContextualTypes.types @@ -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 7928584cf372f..8197e3911e6a1 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 c71e5529f2a5c..61c9806c5bb6c 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/jsxFragmentFactoryNoUnusedLocals.types b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types index 49d9c2c927218..e8f7d5a8fb2f4 100644 --- a/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types +++ b/tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.types @@ -11,8 +11,8 @@ Symbol count: 50,000 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

; } -> : ^^^ ^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^ ^^^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^ ^^^^^^^ ^^^^^^^^^^ ^ ^^^^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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 58d1bf4397bd2..72fcf5b0951c7 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 @@ -49,7 +49,7 @@ declare function 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/jsxIntrinsicElementsCompatability.types b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types index 5ee83f157145c..626bd0cf46cea 100644 --- a/tests/baselines/reference/jsxIntrinsicElementsCompatability.types +++ b/tests/baselines/reference/jsxIntrinsicElementsCompatability.types @@ -13,8 +13,8 @@ import * as React from "react"; > : ^^^^^^^^^^^^ function SomeComponent(props: { element?: T } & JSX.IntrinsicElements[T]): JSX.Element { ->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 @@ -33,16 +33,16 @@ function SomeComponent(props: { element?: T } & JSX.In } function Test(el: T) { ->Test : (el: T) => JSX.Element -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^ +>Test : (el: T) => JSX.Element +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >el : T > : ^ return > : JSX.Element > : ^^^^^^^^^^^ ->SomeComponent : (props: { element?: T_1; } & JSX.IntrinsicElements[T_1]) => 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 00bdbc0f301be..512c83465c1e0 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/keyofAndForIn.types b/tests/baselines/reference/keyofAndForIn.types index 0b50230c3dcf9..aff13e2d82b0d 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 @@ -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 532f1be7e0432..70789d2364a0e 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" @@ -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 @@ -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 @@ -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 @@ -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 @@ -1427,8 +1427,8 @@ function f72(func: (x: T, y: U, k: K) => (T & function f73(func: (x: T, y: U, k: K) => (T & U)[K]) { >f73 : (func: (x: T, y: U, k: K) => (T & U)[K]) => void > : ^ ^^ ^^^^^^^^^ ->func : (x: T, y: U, k: K) => (T & U)[K] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>func : (x: T, y: U, k: K) => (T & U)[K] +> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1441,8 +1441,8 @@ 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] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ +>func : (x: T, y: U, k: K) => (T & U)[K] +> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1467,8 +1467,8 @@ 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] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ +>func : (x: T, y: U, k: K) => (T & U)[K] +> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1493,8 +1493,8 @@ 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] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ +>func : (x: T, y: U, k: K) => (T & U)[K] +> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1518,8 +1518,8 @@ function f73(func: (x: T, y: U, k: K) => (T & U)[ function f74(func: (x: T, y: U, k: K) => (T | U)[K]) { >f74 : (func: (x: T, y: U, k: K) => (T | U)[K]) => void > : ^ ^^ ^^^^^^^^^ ->func : (x: T, y: U, k: K) => (T | U)[K] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>func : (x: T, y: U, k: K) => (T | U)[K] +> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : U @@ -1532,8 +1532,8 @@ 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] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ +>func : (x: T, y: U, k: K) => (T | U)[K] +> : ^ ^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ >{ a: 1, b: "hello" } : { a: number; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >a : number @@ -1562,8 +1562,8 @@ 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] -> : ^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^ +>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 @@ -2542,8 +2542,8 @@ declare class Component1 { > : ^^^^^^^^^^^^^^^^^^^^^^^^ get(key: K): (Data & Computed)[K]; ->get : (key: K) => (Data & Computed)[K] -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>get : (key: K) => (Data & Computed)[K] +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ } @@ -2606,7 +2606,7 @@ declare class Component2 { get(key: K): (Data & Computed)[K]; >get : (key: K) => (Data & Computed)[K] -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >key : K > : ^ } @@ -2620,8 +2620,8 @@ interface R { } function f(p: K) { ->f : (p: K) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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 > : ^ @@ -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 > : ^^^^^^ @@ -2876,8 +2876,8 @@ function updateIds2( // Repro from #13514 declare function head>(list: T): T[0]; ->head : (list: T) => T[0] -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>head : >(list: T) => T[0] +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >list : T > : ^ @@ -2932,7 +2932,7 @@ class Form { public set(prop: K, value: T[K]) { >set : (prop: K, value: T[K]) => void -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >prop : K > : ^ >value : T[K] @@ -2981,12 +2981,12 @@ class SampleClass

{ > : ^^^^^^^^^^^ >Object.freeze(props) : Readonly

> : ^^^^^^^^^^^ ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >props : P > : ^ } @@ -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[] @@ -3256,7 +3256,7 @@ declare function take(p: T): void; function fn(o: T, k: K) { >fn : (o: T, k: K) => void -> : ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ >k : K @@ -3319,8 +3319,8 @@ type Foo7 = T; > : ^ declare function f7(type: K): Foo7; ->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 08d62829f850b..132da20a018fb 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 @@ -459,8 +459,8 @@ type Dict = Record; > : ^^^^ function f11(obj: Dict, k1: keyof Dict, k2: K) { ->f11 : (obj: Dict, k1: keyof Dict, k2: K) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ +>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[] @@ -745,8 +745,8 @@ function fn} | {elements: Array}>(par } function fn2>(param: T, cb: (element: T[number]) => void) { ->fn2 : (param: T, cb: (element: T[number]) => void) => void -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>fn2 : >(param: T, cb: (element: T[number]) => void) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >param : T > : ^ >cb : (element: T[number]) => void @@ -770,8 +770,8 @@ function fn2>(param: T, cb: (element: T[number]) => void // Repro from #31149 function fn3>(param: T, cb: (element: T[number]) => void) { ->fn3 : (param: T, cb: (element: T[number]) => void) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>fn3 : >(param: T, cb: (element: T[number]) => void) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >param : T > : ^ >cb : (element: T[number]) => void @@ -794,7 +794,7 @@ function fn3>(param: T, cb: (element: T[number]) function fn4() { >fn4 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let x: Array[K] = 'abc'; >x : string[][K] diff --git a/tests/baselines/reference/keyofAndIndexedAccessErrors.types b/tests/baselines/reference/keyofAndIndexedAccessErrors.types index 36918b9022ca7..d65f4ecdc4430 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" @@ -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 f5ce67037382f..17c75717ef016 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/keyofInferenceLowerPriorityThanReturn.types b/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types index 173cab673ecf2..d27b7f4ed4ce0 100644 --- a/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types +++ b/tests/baselines/reference/keyofInferenceLowerPriorityThanReturn.types @@ -83,7 +83,7 @@ interface BookDef { function insertOnConflictDoNothing(_table: Table, _conflictTarget: ConflictTarget): boolean { >insertOnConflictDoNothing : (_table: Table, _conflictTarget: ConflictTarget) => boolean -> : ^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >_table : Table > : ^^^^^^^^^^^^^^^ >_conflictTarget : ConflictTarget @@ -104,7 +104,7 @@ function f() { >insertOnConflictDoNothing(bookTable, ConflictTarget.tableColumns(["serial"])) : boolean > : ^^^^^^^ >insertOnConflictDoNothing : (_table: Table, _conflictTarget: ConflictTarget) => boolean -> : ^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^ >bookTable : Table > : ^^^^^^^^^^^^^^^^^^^^^^^ >ConflictTarget.tableColumns(["serial"]) : ConflictTarget diff --git a/tests/baselines/reference/keyofIsLiteralContexualType.types b/tests/baselines/reference/keyofIsLiteralContexualType.types index f4e3ad361105d..d2db7e36c936e 100644 --- a/tests/baselines/reference/keyofIsLiteralContexualType.types +++ b/tests/baselines/reference/keyofIsLiteralContexualType.types @@ -5,7 +5,7 @@ function foo() { >foo : () => void -> : ^^^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >a : string > : ^^^^^^ >b : string @@ -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/lambdaParameterWithTupleArgsHasCorrectAssignability.types b/tests/baselines/reference/lambdaParameterWithTupleArgsHasCorrectAssignability.types index d3dd014dca48a..de6a67863a65e 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 7cf6337edda4b..a8826173d19fa 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/lateBoundConstraintTypeChecksCorrectly.types b/tests/baselines/reference/lateBoundConstraintTypeChecksCorrectly.types index bb30e20790485..78b5819b177e0 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/literalTypeWidening.types b/tests/baselines/reference/literalTypeWidening.types index 7ed2683f468f1..5d6b673cad9c8 100644 --- a/tests/baselines/reference/literalTypeWidening.types +++ b/tests/baselines/reference/literalTypeWidening.types @@ -344,7 +344,7 @@ declare function widening(x: T): T; declare function nonWidening(x: T): T; >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -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 @@ -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 diff --git a/tests/baselines/reference/literalTypes2.types b/tests/baselines/reference/literalTypes2.types index 0d098ffbbe193..47f89d22933f5 100644 --- a/tests/baselines/reference/literalTypes2.types +++ b/tests/baselines/reference/literalTypes2.types @@ -997,7 +997,7 @@ declare function g4(x: T): T[]; declare function g5(x: T, y: T): T[]; >g5 : (x: T, y: T) => T[] -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : T > : ^ >y : T @@ -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 diff --git a/tests/baselines/reference/localTypeParameterInferencePriority.types b/tests/baselines/reference/localTypeParameterInferencePriority.types index 97c120d5450a2..5242030dda0ef 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/logicalOrOperatorWithTypeParameters.types b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types index 6707a7cb3c453..c14aa703ff34a 100644 --- a/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types +++ b/tests/baselines/reference/logicalOrOperatorWithTypeParameters.types @@ -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/mappedToToIndexSignatureInference.types b/tests/baselines/reference/mappedToToIndexSignatureInference.types index 09eebb12bafd3..a2b5e6525c7cb 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/mappedTypeAsStringTemplate.types b/tests/baselines/reference/mappedTypeAsStringTemplate.types index 8528fd8c8308c..0d40a2c2bf3a2 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 763bad9249c7e..b796c17e79844 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 61da4f7a3182f..94cc0214532c9 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

]: { 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 @@ -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 53b159648e740..a2f3096b1f53a 100644 --- a/tests/baselines/reference/mappedTypeContextualTypesApplied.types +++ b/tests/baselines/reference/mappedTypeContextualTypesApplied.types @@ -10,20 +10,20 @@ type TakeString = (s: string) => any; // Various functions accepting an object whose properties are TakeString functions. // Note these all use mapped types. declare function mapped1(obj: T): void; ->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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>mapped3 : (obj: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >obj : T > : ^ @@ -35,39 +35,39 @@ declare function mapped4(obj: T & {[P in keyof T]: TakeString}): void; 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>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; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ mapped1({foo: s => 42}); >mapped1({foo: s => 42}) : void > : ^^^^ ->mapped1 : (obj: T) => 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 @@ -98,8 +98,8 @@ mapped2({foo: s => 42}); mapped3({foo: s => 42}); >mapped3({foo: s => 42}) : void > : ^^^^ ->mapped3 : (obj: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>mapped3 : (obj: T) => 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 @@ -162,8 +162,8 @@ mapped6({foo: s => 42}); mapped7({foo: s => 42}); >mapped7({foo: s => 42}) : void > : ^^^^ ->mapped7 : (obj: { [P in K]: TakeString; }) => 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 05e92a61f7ab2..85814bb7a613a 100644 --- a/tests/baselines/reference/mappedTypeErrors.types +++ b/tests/baselines/reference/mappedTypeErrors.types @@ -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 > : ^ @@ -115,8 +115,8 @@ function f3(x: T) { } function f4(x: T) { ->f4 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>f4 : (x: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -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 8f70a8cbdc3dc..e072f363fee43 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 c031566ba2f8a..cdbf993eebbb1 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/mappedTypeGenericWithKnownKeys.types b/tests/baselines/reference/mappedTypeGenericWithKnownKeys.types index 75781b2ead37a..20495f1892e36 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 f0d5001add195..73322a3681132 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] @@ -119,10 +119,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +>resolveMapped : (key: K) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ +>(key: K) => mapped[key].toString() : (key: K) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^ >mapped : { a?: 1 | undefined; b?: 2 | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >key : K @@ -260,10 +260,10 @@ 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] -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +>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">) => number; 42: (o: MapperArgs<42>) => string; foo?: ((o: MapperArgs<"foo">) => boolean | undefined) | undefined; } > : ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -284,10 +284,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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">) => number; 42: (o: MapperArgs<42>) => string; foo?: ((o: MapperArgs<"foo">) => boolean | undefined) | 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 @@ -406,8 +406,8 @@ type Foo = { } function test(obj: Pick & Partial, K>, key: K) { ->test : (obj: Pick & Partial, K>, key: K) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>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 408194dbc73fb..66f9313510017 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/mappedTypeInferenceToMappedType.types b/tests/baselines/reference/mappedTypeInferenceToMappedType.types index 0e9dd1c1f8c96..7110ccf78afad 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 cd8acaab4f344..3ea5b1a0711fc 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/mappedTypeRelationships.types b/tests/baselines/reference/mappedTypeRelationships.types index 0ac6c1660948e..f8bac595ade76 100644 --- a/tests/baselines/reference/mappedTypeRelationships.types +++ b/tests/baselines/reference/mappedTypeRelationships.types @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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]; } @@ -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 @@ -1068,7 +1068,7 @@ type Numeric = { [K in keyof T]?: number }; function f90() { >f90 : () => void -> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >x : number > : ^^^^^^ @@ -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 36eeada55c4f3..19d498ff9d50b 100644 --- a/tests/baselines/reference/mappedTypeTupleConstraintAssignability.types +++ b/tests/baselines/reference/mappedTypeTupleConstraintAssignability.types @@ -25,8 +25,8 @@ declare class ZodEnum { } declare function createZodEnum>(values: T): ZodEnum>; ->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 9f293bdf8a720..f431571775280 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 20ff5ad895e7c..393211309d8a9 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 fbb5b48f2bf07..ad71c45d09e4d 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 15676aed3be38..e1147b45da94b 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; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; 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; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; 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 | readonly U[], 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; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; 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; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; 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 | readonly U[], 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; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; 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; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; 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 | readonly U[], 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 f5573240df6ec..624415727be03 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; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; 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; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; 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 | readonly U[], 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; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; 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; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; 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 | readonly U[], 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; push: (...items: number[]) => number; concat: { (...items: ConcatArray[]): number[]; (...items: (number | ConcatArray)[]): number[]; }; join: (separator?: string) => string; reverse: () => number[]; shift: () => number; 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; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; }; 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 | readonly U[], 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 2d83609737a4c..750374e4b3f41 100644 --- a/tests/baselines/reference/mappedTypes1.types +++ b/tests/baselines/reference/mappedTypes1.types @@ -109,15 +109,15 @@ declare function 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 : {} @@ -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 8fca3d2dc97b8..87b391ab35a2c 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 @@ -83,7 +83,7 @@ declare function freeze(obj: T): Readonly; 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 @@ -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 diff --git a/tests/baselines/reference/mappedTypes5.types b/tests/baselines/reference/mappedTypes5.types index f127c04c6f185..b09f3b61e37fd 100644 --- a/tests/baselines/reference/mappedTypes5.types +++ b/tests/baselines/reference/mappedTypes5.types @@ -152,7 +152,7 @@ type Args2 = { function doit() { >doit : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ let previous: Partial = Object.create(null); >previous : Partial diff --git a/tests/baselines/reference/mappedTypesArraysTuples.types b/tests/baselines/reference/mappedTypesArraysTuples.types index f7ae89813689c..27139991c4894 100644 --- a/tests/baselines/reference/mappedTypesArraysTuples.types +++ b/tests/baselines/reference/mappedTypesArraysTuples.types @@ -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 > : ^^^^^^^^^^^ @@ -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 aab00a440e13a..aa133798ae4b5 100644 --- a/tests/baselines/reference/mappedTypesGenericTuples2.types +++ b/tests/baselines/reference/mappedTypesGenericTuples2.types @@ -15,11 +15,11 @@ 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 diff --git a/tests/baselines/reference/matchingOfObjectLiteralConstraints.types b/tests/baselines/reference/matchingOfObjectLiteralConstraints.types index 7b03a94bb74ec..76588f2860b17 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 386815da15578..6539cdadc5972 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/mixinAbstractClasses.2.types b/tests/baselines/reference/mixinAbstractClasses.2.types index cde9ab60b7999..e8f90772ca77a 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 1027af673b0b0..6dfa47f3a824b 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 0f0c302cb4b9a..1b3871405a24a 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/mixinClassesAnnotated.types b/tests/baselines/reference/mixinClassesAnnotated.types index 51b584b79a06f..6ae34f17900e4 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 f33037af8777f..49df926846c56 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 089dcc412e27e..e15d0c3d63a1c 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 72de275311d0f..4749fc523f582 100644 --- a/tests/baselines/reference/mixinOverMappedTypeNoCrash.types +++ b/tests/baselines/reference/mixinOverMappedTypeNoCrash.types @@ -26,8 +26,8 @@ type Constructor = ClassInterface & InstanceInterf > : ^^^^^^^^^^^^^^^^^ function cloneClass>(OriginalClass: T): T { ->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 00ea84d40a6ad..ebe32e3a528db 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 6c1cad74f7820..7faccb888fd71 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 a0d332c7c5cc0..6b2db8f42a5be 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/multipleInferenceContexts.types b/tests/baselines/reference/multipleInferenceContexts.types index 98ab973ebdcdc..b9b1a504004eb 100644 --- a/tests/baselines/reference/multipleInferenceContexts.types +++ b/tests/baselines/reference/multipleInferenceContexts.types @@ -21,7 +21,7 @@ interface ComponentOptionsProperties { interface Instance { get(name: K): unknown; >get : (name: K) => unknown -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >name : K > : ^ } diff --git a/tests/baselines/reference/namedTupleMembers.types b/tests/baselines/reference/namedTupleMembers.types index 89ac083186b9c..35487a858f0bf 100644 --- a/tests/baselines/reference/namedTupleMembers.types +++ b/tests/baselines/reference/namedTupleMembers.types @@ -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/narrowingByTypeofInSwitch.types b/tests/baselines/reference/narrowingByTypeofInSwitch.types index 44263196a5ab3..c3cf3d637b590 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 > : ^ @@ -732,8 +732,8 @@ function exhaustiveChecks(x: number | string | L | R): string { } function exhaustiveChecksGenerics(x: T): string { ->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 > : ^^^^^ @@ -844,8 +844,8 @@ 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)] -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>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 > : ^^^^^^^ @@ -1695,8 +1695,8 @@ function keyofNarrowingWithTemplate(k: key /* Both string literals and template literals */ function multipleGenericFuseWithBoth(xy: X | Y): [X, number] | [Y, string] | [(X | Y)] { ->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 bb0a464dfa29d..c8304d955001b 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 9dd1b299802e6..db11607393d8c 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 0d90aa2801534..dd2e0433f6c06 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/narrowingOfQualifiedNames.types b/tests/baselines/reference/narrowingOfQualifiedNames.types index 39ffc5f60e8e2..2d15564b18352 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/narrowingRestGenericCall.types b/tests/baselines/reference/narrowingRestGenericCall.types index 78a82f4b82f41..40dea0c5cb1cb 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/narrowingTypeofUndefined2.types b/tests/baselines/reference/narrowingTypeofUndefined2.types index 4f2292af45971..68152bea5744e 100644 --- a/tests/baselines/reference/narrowingTypeofUndefined2.types +++ b/tests/baselines/reference/narrowingTypeofUndefined2.types @@ -8,8 +8,8 @@ declare function takeArray(arr: Array): void; > : ^^^^^^^^^ function fn | undefined>(arg: T) { ->fn : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>fn : | undefined>(arg: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >arg : T > : ^ diff --git a/tests/baselines/reference/narrowingUnionToUnion.types b/tests/baselines/reference/narrowingUnionToUnion.types index 3f5f10e6e31e5..d2edbfc4989e2 100644 --- a/tests/baselines/reference/narrowingUnionToUnion.types +++ b/tests/baselines/reference/narrowingUnionToUnion.types @@ -55,7 +55,7 @@ function fx2(x: T | undefined) { function fx3(x: T) { >fx3 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -143,7 +143,7 @@ declare function isXSorY(obj: unknown): obj is XS | Y; function fx5(obj: X | YS, c: typeof XS | typeof Y) { >fx5 : (obj: X | YS, c: typeof XS | typeof Y) => void -> : ^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >obj : X | YS > : ^^^^^^ >c : typeof XS | typeof Y diff --git a/tests/baselines/reference/nestedGenericSpreadInference.types b/tests/baselines/reference/nestedGenericSpreadInference.types index 5db51a87cf209..3a00dd9123623 100644 --- a/tests/baselines/reference/nestedGenericSpreadInference.types +++ b/tests/baselines/reference/nestedGenericSpreadInference.types @@ -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,7 +28,7 @@ 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; } diff --git a/tests/baselines/reference/nestedTypeVariableInfersLiteral.types b/tests/baselines/reference/nestedTypeVariableInfersLiteral.types index 7ac5c3dc299a4..b1aa9a42fefb0 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/neverReturningFunctions1.types b/tests/baselines/reference/neverReturningFunctions1.types index 414d0799fe73f..158750ecd7e93 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/newOperator.types b/tests/baselines/reference/newOperator.types index 6b74b5a5ee016..7ea2460b3d28e 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 82db4a8315dd4..f08357868cc8b 100644 --- a/tests/baselines/reference/newOperatorConformance.types +++ b/tests/baselines/reference/newOperatorConformance.types @@ -97,8 +97,8 @@ var d = new anyCtor1(undefined); // Construct expression of type where apparent type has a construct signature with 0 arguments function newFn1(s: T) { ->newFn1 : number>(s: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ +>newFn1 : (s: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >s : T > : ^ @@ -117,8 +117,8 @@ function newFn1(s: T) { // Construct expression of type where apparent type has a construct signature with 1 arguments function newFn2(s: T) { ->newFn2 : string>(s: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^ ^^^^^^^^^ +>newFn2 : (s: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >s : number > : ^^^^^^ >s : T diff --git a/tests/baselines/reference/noConstraintInReturnType1.types b/tests/baselines/reference/noConstraintInReturnType1.types index de53c6dadb72c..fda28849f9dc0 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 fd17fb05b8d6a..cd8a3c173fa37 100644 --- a/tests/baselines/reference/noCrashOnMixin.types +++ b/tests/baselines/reference/noCrashOnMixin.types @@ -23,8 +23,8 @@ type Constructor = new (...args: any[]) => T; > : ^^^^^ function Mixin(Base: TBase) { ->Mixin : >(Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Base : TBase > : ^^^^^ @@ -47,8 +47,8 @@ class CrashTrigger extends Mixin(Empty) { > : ^^^^^^^^^^^^ >Mixin(Empty) : Mixin.(Anonymous class) & Empty > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->Mixin : >(Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >Empty : typeof Empty > : ^^^^^^^^^^^^ diff --git a/tests/baselines/reference/noImplicitSymbolToString.types b/tests/baselines/reference/noImplicitSymbolToString.types index b0e2e81cf3589..38ff31a4858b1 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 5c33a4fa725de..833201b090284 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"; } diff --git a/tests/baselines/reference/noInferUnionExcessPropertyCheck1.types b/tests/baselines/reference/noInferUnionExcessPropertyCheck1.types index 2c30d41d1af64..705e4c0f93833 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 8a437e02b0a4f..52def1c265ae5 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 > : ^ @@ -617,10 +617,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>fn1 : (key: Key) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +>(key: Key): string => myRecord1[key] : (key: Key) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >myRecord1 : { a: string; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >key : Key @@ -633,10 +633,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>fn2 : (key: Key) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ +>(key: Key): string => myRecord2[key] : (key: Key) => string +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >myRecord1 : { a: string; b: string; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^ >key : Key @@ -649,10 +649,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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/nonInferrableTypePropagation2.types b/tests/baselines/reference/nonInferrableTypePropagation2.types index dd323764d3d33..5b1eedd20d235 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 @@ -95,7 +95,7 @@ const x = pipe(es, filter(exists((n) => n > 0))) >filter(exists((n) => n > 0)) : (as: readonly Either[]) => readonly Either[] > : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >filter : { (refinement: Refinement): (as: ReadonlyArray) => readonly B[]; (predicate: Predicate): (bs: ReadonlyArray) => readonly B[]; (predicate: Predicate): (as: ReadonlyArray) => readonly A[]; } -> : ^^^ ^^ ^^^^^^^^^^^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^ >exists((n) => n > 0) : (ma: Either) => boolean > : ^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >exists : (predicate: Predicate) => (ma: Either) => boolean diff --git a/tests/baselines/reference/nonInferrableTypePropagation3.types b/tests/baselines/reference/nonInferrableTypePropagation3.types index d53b3e88665d4..cce6d6cd5786f 100644 --- a/tests/baselines/reference/nonInferrableTypePropagation3.types +++ b/tests/baselines/reference/nonInferrableTypePropagation3.types @@ -21,11 +21,11 @@ declare function factory(): (callback: Callback(); >make : (callback: Callback) => (...args: Args) => R -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >factory<{id: string, age: number}[]>() : (callback: Callback) => (...args: Args) => R -> : ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ >factory : () => (callback: Callback) => (...args: Args) => R -> : ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >id : string > : ^^^^^^ >age : number @@ -37,7 +37,7 @@ const usersOverAge = make((age: number) => data => { >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; }[] > : ^ ^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >age : number diff --git a/tests/baselines/reference/nonNullMappedType.types b/tests/baselines/reference/nonNullMappedType.types index 76dbf5053acee..1006e65994952 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 a9a8977aac2b9..1de98c9451575 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 3128ff95a7ac7..7828b314cdb17 100644 --- a/tests/baselines/reference/nonNullableReduction.types +++ b/tests/baselines/reference/nonNullableReduction.types @@ -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 b3892af65d760..a46bcbc3fb77f 100644 --- a/tests/baselines/reference/nonNullableReductionNonStrict.types +++ b/tests/baselines/reference/nonNullableReductionNonStrict.types @@ -58,8 +58,8 @@ function f1(x: T | (string extends T ? null | undefined : never)) { } function f2(x: T | U) { ->f2 : (x: T | U) => void -> : ^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>f2 : (x: T | U) => void +> : ^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T | U > : ^^^^^ diff --git a/tests/baselines/reference/nonNullableTypes1.types b/tests/baselines/reference/nonNullableTypes1.types index aa2c5d94e261f..6c156fefa8fd1 100644 --- a/tests/baselines/reference/nonNullableTypes1.types +++ b/tests/baselines/reference/nonNullableTypes1.types @@ -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/nonPrimitiveConstraintOfIndexAccessType.types b/tests/baselines/reference/nonPrimitiveConstraintOfIndexAccessType.types index 52a44b36a7296..66989bb5b1871 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 86a43c7c78121..b35a8d52d1802 100644 --- a/tests/baselines/reference/nonPrimitiveInGeneric.types +++ b/tests/baselines/reference/nonPrimitiveInGeneric.types @@ -59,7 +59,7 @@ generic(b); // expect error 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,41 +98,41 @@ bound(b); // expect error >bound(b) : void > : ^^^^ >bound : (t: T) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >b : string > : ^^^^^^ function bound2() {} >bound2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ bound2<{}>(); >bound2<{}>() : void > : ^^^^ >bound2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ bound2(); >bound2() : void > : ^^^^ >bound2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ bound2(); // expect error >bound2() : void > : ^^^^ >bound2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ bound2(); // expect error >bound2() : void > : ^^^^ >bound2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ 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 9bee61ff24471..81ba000e8a184 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 00a3c9ff29fe0..563f64d563c67 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 | undefined; "0"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "1"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "2"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "3"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "4"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "5"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "6"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "7"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "8"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "9"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "10"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "11"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "12"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "13"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "14"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "15"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "16"?: number | undefined; ref?: Obj | Func | undefined; } | { common?: string | undefined; "17"?: number | undefined; ref?: Obj | Func | undefined; }> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >getCtor : (comp: T) => CtorOf -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^ >all : keyof Big > : ^^^^^^^^^ diff --git a/tests/baselines/reference/nullAssignableToEveryType.types b/tests/baselines/reference/nullAssignableToEveryType.types index a221e7f60f8a1..432b1e9790ab8 100644 --- a/tests/baselines/reference/nullAssignableToEveryType.types +++ b/tests/baselines/reference/nullAssignableToEveryType.types @@ -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/numberVsBigIntOperations.types b/tests/baselines/reference/numberVsBigIntOperations.types index f64e83b0f9fd0..835bbd50d1968 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 c694c29928018..3d64aca4da603 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/objectFreeze.types b/tests/baselines/reference/objectFreeze.types index ad79f07b68abd..2da45098f3cb3 100644 --- a/tests/baselines/reference/objectFreeze.types +++ b/tests/baselines/reference/objectFreeze.types @@ -6,12 +6,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>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 @@ -48,12 +48,12 @@ const c = Object.freeze(C); > : ^^^^^^^^ >Object.freeze(C) : typeof C > : ^^^^^^^^ ->Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>Object.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >C : typeof C > : ^^^^^^^^ @@ -70,12 +70,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >[1, 2, 3] : number[] > : ^^^^^^^^ >1 : 1 @@ -112,12 +112,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>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 a44c0b2cde6c3..c62bdea3b77a8 100644 --- a/tests/baselines/reference/objectFreezeLiteralsDontWiden.types +++ b/tests/baselines/reference/objectFreezeLiteralsDontWiden.types @@ -6,12 +6,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>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 2ec54bc2c6717..1b47993b00e8f 100644 --- a/tests/baselines/reference/objectFromEntries.types +++ b/tests/baselines/reference/objectFromEntries.types @@ -82,12 +82,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >[['a', 1], ['b', 2], ['c', 3]] : (string | number)[][] > : ^^^^^^^^^^^^^^^^^^^^^ >['a', 1] : (string | number)[] @@ -126,12 +126,12 @@ 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.freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >Object : ObjectConstructor > : ^^^^^^^^^^^^^^^^^ ->freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } -> : ^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ +>freeze : { (f: T): T; (o: T): Readonly; (o: T): Readonly; } +> : ^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >[['a', 1], ['b', 2], ['c', 3]] : [string, number][] > : ^^^^^^^^^^^^^^^^^^ >['a', 1] : [string, number] diff --git a/tests/baselines/reference/objectGroupBy.types b/tests/baselines/reference/objectGroupBy.types index b89e032a26da6..19961cc11736b 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/objectLiteralExcessProperties.types b/tests/baselines/reference/objectLiteralExcessProperties.types index c8bb0fa8780f1..c485b9a79ef9e 100644 --- a/tests/baselines/reference/objectLiteralExcessProperties.types +++ b/tests/baselines/reference/objectLiteralExcessProperties.types @@ -169,7 +169,7 @@ var b11: Indexed = { 0: { colour: "blue" } }; // nested object literal still err function test() { >test : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ // No excess property checks on generic types const obj1: T = { name: "test" }; diff --git a/tests/baselines/reference/objectRestBindingContextualInference.types b/tests/baselines/reference/objectRestBindingContextualInference.types index 17700e71ac033..c057870be8e8b 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 917caf809af46..3d332de2ce76d 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/objectTypeWithRecursiveWrappedPropertyCheckedNominally.types b/tests/baselines/reference/objectTypeWithRecursiveWrappedPropertyCheckedNominally.types index 25dd8abd3ed18..5406aaf52e443 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/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.types index 8bc79b73b34b0..f8bca6d4b02de 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 -> : ^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>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 > : ^ >'' : "" @@ -145,18 +145,18 @@ function foo2(x: any) { } function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ->a : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +>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; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +>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; } @@ -244,10 +244,10 @@ function foo7(x: A); function foo7(x: typeof a); // ok >foo7 : { (x: A): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ->a : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +>x : { foo>(x: T): string; } +> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ +>a : { foo>(x: T): string; } +> : ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^ function foo7(x: any) { } >foo7 : { (x: A): any; (x: typeof a): any; } @@ -297,10 +297,10 @@ function foo10(x: B>); function foo10(x: typeof a); // ok >foo10 : { (x: B>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ->a : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +>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; } @@ -369,10 +369,10 @@ function foo13(x: I); function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ ->a : { foo(x: T): string; } -> : ^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^ +>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 c72bf7daad133..a39ec444f912f 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 @@ -78,10 +78,10 @@ interface I2 { } var a: { foo>(x: T, y: U): string } ->a : { foo(x: T, y: U): string; } -> : ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^ ^^^ ->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 @@ -172,18 +172,18 @@ function foo2(x: any) { } 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; } -> : ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +>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; } -> : ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +>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; } @@ -305,10 +305,10 @@ function foo7(x: A); 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; } -> : ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +>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; } @@ -358,10 +358,10 @@ function foo10(x: B, Array>); 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; } -> : ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +>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; } @@ -430,10 +430,10 @@ function foo13(x: I); 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; } -> : ^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^ +>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 e6448ea7145c7..34794f5feff9b 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/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.types index 4992f7ee3fc5f..173c71a68574c 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/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types index eceab3c5d18db..7f1d9d8573632 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.types @@ -36,18 +36,18 @@ interface I2 { } var a: { new>(x: T): string } ->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 > : ^ >'' : "" @@ -107,18 +107,18 @@ function foo2(x: any) { } function foo3(x: typeof a); >foo3 : { (x: typeof a): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : new (x: T) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ->a : new (x: T) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +>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 -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +>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; } @@ -189,10 +189,10 @@ function foo10(x: B>); function foo10(x: typeof a); // ok >foo10 : { (x: B>): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : new (x: T) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ->a : new (x: T) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +>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; } @@ -261,10 +261,10 @@ function foo13(x: I); function foo13(x: typeof a); // ok >foo13 : { (x: I): any; (x: typeof a): any; } > : ^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^ ->x : new (x: T) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ ->a : new (x: T) => string -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^ +>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 b55f8186f89fc..a157180721c4e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.types @@ -55,8 +55,8 @@ interface I2 { } var a: { new>(x: T, y: U): string } ->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 @@ -130,18 +130,18 @@ function foo2(x: any) { } 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 -> : ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ +>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 -> : ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ +>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; } @@ -246,10 +246,10 @@ function foo10(x: B, Array>); 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 -> : ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ +>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; } @@ -318,10 +318,10 @@ function foo13(x: I); 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 -> : ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^ +>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 1a4c46a7da980..1c12c76f035fd 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/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.types index 376430b50a8b9..b4224f06d8ef4 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/observableInferenceCanBeMade.types b/tests/baselines/reference/observableInferenceCanBeMade.types index 2aac776b8b3b5..54e02118752fc 100644 --- a/tests/baselines/reference/observableInferenceCanBeMade.types +++ b/tests/baselines/reference/observableInferenceCanBeMade.types @@ -11,7 +11,7 @@ declare function of(a: T): Observable; declare function from>(input: O): Observable>; >from : >(input: O) => Observable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >input : O > : ^ @@ -82,7 +82,7 @@ function asObservable(input: string | ObservableInput): Observablefrom(input) : Observable > : ^^^^^^^^^^^^^^^^^^ >from : >(input: O) => Observable> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >input : ObservableInput > : ^^^^^^^^^^^^^^^^^^^^^^^ } diff --git a/tests/baselines/reference/optionalParameterRetainsNull.types b/tests/baselines/reference/optionalParameterRetainsNull.types index c8936093475ba..d6ebd59e5a978 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/overloadResolution.types b/tests/baselines/reference/overloadResolution.types index 0ebb8825be675..3dbb5c449f353 100644 --- a/tests/baselines/reference/overloadResolution.types +++ b/tests/baselines/reference/overloadResolution.types @@ -282,7 +282,7 @@ fn3(); // Error // 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/overloadsWithConstraints.types b/tests/baselines/reference/overloadsWithConstraints.types index 3178f975d61f3..e745380f56e96 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 59caba9cabd6c..8e5ae5820ebfd 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 7c69c43f76efc..9dd54cc961397 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/parameterNamesInTypeParameterList.types b/tests/baselines/reference/parameterNamesInTypeParameterList.types index 73aa5fc715d64..5de734a7b1eac 100644 --- a/tests/baselines/reference/parameterNamesInTypeParameterList.types +++ b/tests/baselines/reference/parameterNamesInTypeParameterList.types @@ -2,8 +2,8 @@ === parameterNamesInTypeParameterList.ts === function f0(a: T) { ->f0 : (a: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>f0 : (a: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -19,8 +19,8 @@ function f0(a: T) { } function f1({a}: {a:T}) { ->f1 : ({ a }: { a: T; }) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>f1 : ({ a }: { a: T; }) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -38,8 +38,8 @@ function f1({a}: {a:T}) { } function f2([a]: T[]) { ->f2 : ([a]: T[]) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>f2 : ([a]: T[]) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -59,8 +59,8 @@ class A { > : ^ m0(a: T) { ->m0 : (a: T) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>m0 : (a: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -75,8 +75,8 @@ class A { > : ^^^ } m1({a}: {a:T}) { ->m1 : ({ a }: { a: T; }) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>m1 : ({ a }: { a: T; }) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T @@ -93,8 +93,8 @@ class A { > : ^^^ } m2([a]: T[]) { ->m2 : ([a]: T[]) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>m2 : ([a]: T[]) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >a : any > : ^^^ >a : T diff --git a/tests/baselines/reference/paramsOnlyHaveLiteralTypesWhenAppropriatelyContextualized.types b/tests/baselines/reference/paramsOnlyHaveLiteralTypesWhenAppropriatelyContextualized.types index 746b9380c5266..077132f7a8044 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[] | undefined; y?: string[] | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'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[] | undefined; y?: string[] | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'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[] | undefined; y?: string[] | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'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[] | undefined; y?: string[] | undefined; } > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >'x' : "x" diff --git a/tests/baselines/reference/parserOverloadOnConstants1.types b/tests/baselines/reference/parserOverloadOnConstants1.types index de1166b385d49..222c7761c9a74 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/partiallyAnnotatedFunctionInferenceError.types b/tests/baselines/reference/partiallyAnnotatedFunctionInferenceError.types index a2516242a7805..0cd0f39ff2bfb 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 ba1c150a22306..e36dc7fecae5b 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 e69f35ab3a28d..7f1470a06b5be 100644 --- a/tests/baselines/reference/partiallyNamedTuples.types +++ b/tests/baselines/reference/partiallyNamedTuples.types @@ -119,7 +119,7 @@ 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]; }; }] @@ -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 479f55bfe129f..1bbde20287b23 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 > : ^^^ } diff --git a/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types b/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types index 6f41ce8af72c7..c3cee6bbd921f 100644 --- a/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types +++ b/tests/baselines/reference/performanceComparisonOfStructurallyIdenticalInterfacesWithGenericSignatures.types @@ -30,47 +30,47 @@ 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 { @@ -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 { @@ -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 1ae1477394997..2759a2ea0e4c7 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 12a328ce088a3..a07c4848c5301 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 diff --git a/tests/baselines/reference/primitiveUnionDetection.types b/tests/baselines/reference/primitiveUnionDetection.types index b35655ff6877e..1c69569a82c6f 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/privacyTypeParameterOfFunction.types b/tests/baselines/reference/privacyTypeParameterOfFunction.types index 601a8ea6ae295..2e9eac9072533 100644 --- a/tests/baselines/reference/privacyTypeParameterOfFunction.types +++ b/tests/baselines/reference/privacyTypeParameterOfFunction.types @@ -21,7 +21,7 @@ export interface publicInterfaceWithPrivateTypeParameters { // TypeParameter_0_of_method_from_exported_interface_has_or_is_using_private_type_1 myMethod(): privateClass; >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export interface publicInterfaceWithPublicTypeParameters { @@ -29,7 +29,7 @@ export interface publicInterfaceWithPublicTypeParameters { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPrivateTypeParameters { @@ -37,7 +37,7 @@ interface privateInterfaceWithPrivateTypeParameters { (): privateClass; myMethod(): privateClass; >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPublicTypeParameters { @@ -45,7 +45,7 @@ interface privateInterfaceWithPublicTypeParameters { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export class publicClassWithWithPrivateTypeParameters { @@ -55,20 +55,20 @@ export class publicClassWithWithPrivateTypeParameters { // TypeParameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_type_1 static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { // No error >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } // TypeParameter_0_of_public_method_from_exported_class_has_or_is_using_private_type_1 myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { // No error >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -78,19 +78,19 @@ export class publicClassWithWithPublicTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -100,19 +100,19 @@ class privateClassWithWithPrivateTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { // No error >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { // No error >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -122,41 +122,41 @@ class privateClassWithWithPublicTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } // TypeParameter_0_of_exported_function_has_or_is_using_private_type_1 export function publicFunctionWithPrivateTypeParameters() { >publicFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export function publicFunctionWithPublicTypeParameters() { >publicFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPrivateTypeParameters() { >privateFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPublicTypeParameters() { >privateFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export interface publicInterfaceWithPublicTypeParametersWithoutExtends { diff --git a/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.types b/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.types index bd92ea08beeda..10b5290ba7aec 100644 --- a/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.types +++ b/tests/baselines/reference/privacyTypeParameterOfFunctionDeclFile.types @@ -16,7 +16,7 @@ export interface publicInterfaceWithPrivateTypeParameters { (): privateClass; // Error myMethod(): privateClass; // Error >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export interface publicInterfaceWithPublicTypeParameters { @@ -24,7 +24,7 @@ export interface publicInterfaceWithPublicTypeParameters { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPrivateTypeParameters { @@ -32,7 +32,7 @@ interface privateInterfaceWithPrivateTypeParameters { (): privateClass; myMethod(): privateClass; >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPublicTypeParameters { @@ -40,7 +40,7 @@ interface privateInterfaceWithPublicTypeParameters { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export class publicClassWithWithPrivateTypeParameters { @@ -49,19 +49,19 @@ export class publicClassWithWithPrivateTypeParameters { static myPublicStaticMethod() { // Error >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { // Error >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -71,19 +71,19 @@ export class publicClassWithWithPublicTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -93,19 +93,19 @@ class privateClassWithWithPrivateTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -115,40 +115,40 @@ class privateClassWithWithPublicTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } export function publicFunctionWithPrivateTypeParameters() { // Error >publicFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export function publicFunctionWithPublicTypeParameters() { >publicFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPrivateTypeParameters() { >privateFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPublicTypeParameters() { >privateFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export interface publicInterfaceWithPublicTypeParametersWithoutExtends { @@ -235,7 +235,7 @@ export interface publicInterfaceWithPrivatModuleTypeParameters { myMethod(): privateModule.publicClass; // Error >myMethod : () => privateModule.publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >privateModule : any > : ^^^ >privateModule : any @@ -247,20 +247,20 @@ export class publicClassWithWithPrivateModuleTypeParameters { static myPublicStaticMethod() { // Error >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } myPublicMethod() { // Error >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } } export function publicFunctionWithPrivateMopduleTypeParameters() { // Error >publicFunctionWithPrivateMopduleTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } @@ -281,7 +281,7 @@ interface privateInterfaceWithPrivatModuleTypeParameters { myMethod(): privateModule.publicClass; >myMethod : () => privateModule.publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >privateModule : any > : ^^^ >privateModule : any @@ -293,20 +293,20 @@ class privateClassWithWithPrivateModuleTypeParameters { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } } function privateFunctionWithPrivateMopduleTypeParameters() { >privateFunctionWithPrivateMopduleTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } @@ -331,7 +331,7 @@ export module publicModule { (): privateClass; // Error myMethod(): privateClass; // Error >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export interface publicInterfaceWithPublicTypeParameters { @@ -339,7 +339,7 @@ export module publicModule { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPrivateTypeParameters { @@ -347,7 +347,7 @@ export module publicModule { (): privateClass; myMethod(): privateClass; >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPublicTypeParameters { @@ -355,7 +355,7 @@ export module publicModule { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export class publicClassWithWithPrivateTypeParameters { @@ -364,19 +364,19 @@ export module publicModule { static myPublicStaticMethod() { // Error >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { // Error >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -386,19 +386,19 @@ export module publicModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -408,19 +408,19 @@ export module publicModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -430,40 +430,40 @@ export module publicModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } export function publicFunctionWithPrivateTypeParameters() { // Error >publicFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export function publicFunctionWithPublicTypeParameters() { >publicFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPrivateTypeParameters() { >privateFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPublicTypeParameters() { >privateFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export interface publicInterfaceWithPublicTypeParametersWithoutExtends { @@ -550,7 +550,7 @@ export module publicModule { myMethod(): privateModule.publicClass; // Error >myMethod : () => privateModule.publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >privateModule : any > : ^^^ >privateModule : any @@ -562,20 +562,20 @@ export module publicModule { static myPublicStaticMethod() { // Error >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } myPublicMethod() { // Error >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } } export function publicFunctionWithPrivateMopduleTypeParameters() { // Error >publicFunctionWithPrivateMopduleTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } @@ -596,7 +596,7 @@ export module publicModule { myMethod(): privateModule.publicClass; >myMethod : () => privateModule.publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ >privateModule : any > : ^^^ >privateModule : any @@ -608,20 +608,20 @@ export module publicModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } } function privateFunctionWithPrivateMopduleTypeParameters() { >privateFunctionWithPrivateMopduleTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >privateModule : any > : ^^^ } @@ -647,7 +647,7 @@ module privateModule { (): privateClass; myMethod(): privateClass; >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export interface publicInterfaceWithPublicTypeParameters { @@ -655,7 +655,7 @@ module privateModule { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPrivateTypeParameters { @@ -663,7 +663,7 @@ module privateModule { (): privateClass; myMethod(): privateClass; >myMethod : () => privateClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } interface privateInterfaceWithPublicTypeParameters { @@ -671,7 +671,7 @@ module privateModule { (): publicClass; myMethod(): publicClass; >myMethod : () => publicClass -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ } export class publicClassWithWithPrivateTypeParameters { @@ -680,19 +680,19 @@ module privateModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -702,19 +702,19 @@ module privateModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -724,19 +724,19 @@ module privateModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } @@ -746,40 +746,40 @@ module privateModule { static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod() { >myPrivateStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod() { >myPrivateMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } export function publicFunctionWithPrivateTypeParameters() { >publicFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export function publicFunctionWithPublicTypeParameters() { >publicFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPrivateTypeParameters() { >privateFunctionWithPrivateTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } function privateFunctionWithPublicTypeParameters() { >privateFunctionWithPublicTypeParameters : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } export interface publicInterfaceWithPublicTypeParametersWithoutExtends { diff --git a/tests/baselines/reference/privateNameEmitHelpers.types b/tests/baselines/reference/privateNameEmitHelpers.types index fe56288e53970..69f0d4f6a284d 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/privateNameStaticEmitHelpers.types b/tests/baselines/reference/privateNameStaticEmitHelpers.types index 3db1db4f673a9..2cf321bb0a728 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/promiseAllOnAny01.types b/tests/baselines/reference/promiseAllOnAny01.types index 107a4ca078fdd..3f8f0c6e3e494 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/promiseChaining1.types b/tests/baselines/reference/promiseChaining1.types index af2e57472bfa0..2ea214441ddc4 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 @@ -41,19 +41,19 @@ class Chain2 { >this.then(x => result)/*S*/.then(x => "abc")/*Function*/.then(x => x.length) : Chain2 > : ^^^^^^^^^^^^^^^^ >this.then(x => result)/*S*/.then(x => "abc")/*Function*/.then : (cb: (x: Function) => S) => Chain2 -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.then(x => result)/*S*/.then(x => "abc") : Chain2 > : ^^^^^^^^^^^^^^^^ >this.then(x => result)/*S*/.then : (cb: (x: S_1) => S) => 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 @@ -61,7 +61,7 @@ class Chain2 { >result : S > : ^ >then : (cb: (x: S_1) => S) => Chain2 -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x => "abc" : (x: S) => string > : ^ ^^^^^^^^^^^^^^ >x : S @@ -69,7 +69,7 @@ class Chain2 { >"abc" : "abc" > : ^^^^^ >then : (cb: (x: Function) => S) => Chain2 -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x => x.length : (x: Function) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^ >x : Function diff --git a/tests/baselines/reference/promiseChaining2.types b/tests/baselines/reference/promiseChaining2.types index 1ccb66c20e187..8d74340e860aa 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 @@ -41,19 +41,19 @@ class Chain2 { >this.then(x => result).then(x => "abc").then(x => x.length) : Chain2 > : ^^^^^^^^^^^^^^^^ >this.then(x => result).then(x => "abc").then : (cb: (x: Function) => S) => Chain2 -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >this.then(x => result).then(x => "abc") : Chain2 > : ^^^^^^^^^^^^^^^^ >this.then(x => result).then : (cb: (x: S_1) => S) => 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 @@ -61,7 +61,7 @@ class Chain2 { >result : S > : ^ >then : (cb: (x: S_1) => S) => Chain2 -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ >x => "abc" : (x: S) => string > : ^ ^^^^^^^^^^^^^^ >x : S @@ -69,7 +69,7 @@ class Chain2 { >"abc" : "abc" > : ^^^^^ >then : (cb: (x: Function) => S) => Chain2 -> : ^^^^^^^^^^^^^^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >x => x.length : (x: Function) => number > : ^ ^^^^^^^^^^^^^^^^^^^^^ >x : Function diff --git a/tests/baselines/reference/promiseIdentityWithConstraints.types b/tests/baselines/reference/promiseIdentityWithConstraints.types index a355a12621e5f..fd19a1f929a21 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/promisesWithConstraints.types b/tests/baselines/reference/promisesWithConstraints.types index 4868e027f6009..fd365f86005ee 100644 --- a/tests/baselines/reference/promisesWithConstraints.types +++ b/tests/baselines/reference/promisesWithConstraints.types @@ -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 f00a5abfe24cc..3447531c0cd40 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/propertyAccessOnTypeParameterWithConstraints.types b/tests/baselines/reference/propertyAccessOnTypeParameterWithConstraints.types index 55aeba7d58fcc..d37a0ec8870f6 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 0eca406d93113..c8f52752cb7a0 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 ea4269371e42c..d63918982939c 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 bdb9852bce464..5965014b1bdc7 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 46c7f380befb6..cbf802b8b8dc0 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/protectedMembersThisParameter.types b/tests/baselines/reference/protectedMembersThisParameter.types index f831d911dafbb..9bd064885d201 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 diff --git a/tests/baselines/reference/quickIntersectionCheckCorrectlyCachesErrors.types b/tests/baselines/reference/quickIntersectionCheckCorrectlyCachesErrors.types index cb33955492a17..2ccafe3921bdd 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 7c476ac08707b..aad65ad0923f7 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] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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] > : ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -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/recursiveConditionalTypes.types b/tests/baselines/reference/recursiveConditionalTypes.types index 829882de8384e..8a47cbaee3cb8 100644 --- a/tests/baselines/reference/recursiveConditionalTypes.types +++ b/tests/baselines/reference/recursiveConditionalTypes.types @@ -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 @@ -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/recursiveConditionalTypes2.types b/tests/baselines/reference/recursiveConditionalTypes2.types index 15450ab4fd748..81ab93d1c1900 100644 --- a/tests/baselines/reference/recursiveConditionalTypes2.types +++ b/tests/baselines/reference/recursiveConditionalTypes2.types @@ -105,7 +105,7 @@ type DefaultsDeep = { interface _Array { find(predicate: (value: T) => boolean): void; >find : (predicate: (value: T) => boolean) => void -> : ^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^ >predicate : (value: T) => boolean > : ^ ^^ ^^^^^ >value : T diff --git a/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types b/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types index 68bebad0e5303..ac47b1ae1b104 100644 --- a/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types +++ b/tests/baselines/reference/recursiveTypeAliasWithSpreadConditionalReturnNotCircular.types @@ -4,20 +4,20 @@ export {} export interface Option { zip1>>(...others: O): Option<[T, ...UnzipOptionArray1]>; ->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]> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zip2 : >>(...others: O) => Option<[T, ...UnzipOptionArray2]> +> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ >others : O > : ^ zip3>>(...others: O): Option<[T, ...UnzipOptionArray3]>; ->zip3 : []>(...others: O) => Option<[T, ...UnzipOptionArray3]> -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>zip3 : >>(...others: O) => Option<[T, ...UnzipOptionArray3]> +> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^ >others : O > : ^ } @@ -57,12 +57,12 @@ const zipped1 = opt1.zip1(opt2, opt3); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1.zip1(opt2, opt3) : Option<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->opt1.zip1 : []>(...others: O) => Option<[number, ...UnzipOptionArray1]> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>opt1.zip1 : >>(...others: O) => Option<[number, ...UnzipOptionArray1]> +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1 : Option > : ^^^^^^^^^^^^^^ ->zip1 : []>(...others: O) => Option<[number, ...UnzipOptionArray1]> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>zip1 : >>(...others: O) => Option<[number, ...UnzipOptionArray1]> +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt2 : Option > : ^^^^^^^^^^^^^^ >opt3 : Option @@ -73,12 +73,12 @@ const zipped2 = opt1.zip2(opt2, opt3); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1.zip2(opt2, opt3) : Option<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->opt1.zip2 : []>(...others: O) => Option<[number, ...UnzipOptionArray2]> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>opt1.zip2 : >>(...others: O) => Option<[number, ...UnzipOptionArray2]> +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1 : Option > : ^^^^^^^^^^^^^^ ->zip2 : []>(...others: O) => Option<[number, ...UnzipOptionArray2]> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>zip2 : >>(...others: O) => Option<[number, ...UnzipOptionArray2]> +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt2 : Option > : ^^^^^^^^^^^^^^ >opt3 : Option @@ -89,12 +89,12 @@ const zipped3 = opt1.zip3(opt2, opt3); > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1.zip3(opt2, opt3) : Option<[number, string, boolean]> > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ->opt1.zip3 : []>(...others: O) => Option<[number, ...UnzipOptionArray3]> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>opt1.zip3 : >>(...others: O) => Option<[number, ...UnzipOptionArray3]> +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt1 : Option > : ^^^^^^^^^^^^^^ ->zip3 : []>(...others: O) => Option<[number, ...UnzipOptionArray3]> -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>zip3 : >>(...others: O) => Option<[number, ...UnzipOptionArray3]> +> : ^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >opt2 : Option > : ^^^^^^^^^^^^^^ >opt3 : Option diff --git a/tests/baselines/reference/recursiveTypeRelations.types b/tests/baselines/reference/recursiveTypeRelations.types index 96c540094957a..a66a41271ec9c 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[] diff --git a/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types b/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types index bcac7ea1f4bf1..12f559847bec1 100644 --- a/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types +++ b/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.types @@ -66,7 +66,7 @@ function foo2(x: any) { function other, U>() { >other : , U>() => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^ // error but wrong error // BUG 838247 diff --git a/tests/baselines/reference/recursiveTypesWithTypeof.types b/tests/baselines/reference/recursiveTypesWithTypeof.types index 07e0e7edbc17b..abd5232130db5 100644 --- a/tests/baselines/reference/recursiveTypesWithTypeof.types +++ b/tests/baselines/reference/recursiveTypesWithTypeof.types @@ -118,22 +118,22 @@ var i = i(i); > : ^ ^^ ^^^^^^^^ var j: (x: T) => T; ->j : (x: T) => T -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ->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 -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^^ +>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; @@ -171,22 +171,22 @@ var i2 = new i2(i2); > : ^^^^^ ^^ ^^^^^^^^ var j2: new (x: T) => T; ->j2 : new (x: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^ ->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 -> : ^^^^^ ^^^^^^^^^^^^^^ ^^ ^^^^^^ +>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/restInvalidArgumentType.types b/tests/baselines/reference/restInvalidArgumentType.types index 1cbe97b06c3d9..c943a901df2d7 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 diff --git a/tests/baselines/reference/restParamUsingMappedTypeOverUnionConstraint.types b/tests/baselines/reference/restParamUsingMappedTypeOverUnionConstraint.types index 799bd1ea89b20..0aa04e2458151 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/restTupleElements1.types b/tests/baselines/reference/restTupleElements1.types index bcad673fa382d..8f7740dd28b22 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 diff --git a/tests/baselines/reference/restTuplesFromContextualTypes.types b/tests/baselines/reference/restTuplesFromContextualTypes.types index 2cdf63e6eaee4..cc01d11fe6d80 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 @@ -632,7 +632,7 @@ let g0 = f5(() => "hello"); >f5(() => "hello") : () => string > : ^^^^^^^^^^^^ >f5 : (f: (...args: T) => U) => (...args: T) => U -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >() => "hello" : () => string > : ^^^^^^^^^^^^ >"hello" : "hello" @@ -644,7 +644,7 @@ let g1 = f5((x, y) => 42); >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 @@ -660,7 +660,7 @@ let g2 = f5((x: number, y) => 42); >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 @@ -676,7 +676,7 @@ let g3 = f5((x: number, y: number) => x + y); >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 @@ -696,7 +696,7 @@ let g4 = f5((...args) => true); >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 @@ -724,7 +724,7 @@ let g5 = pipe(() => true, b => 42); >pipe(() => true, b => 42) : () => number > : ^^^^^^^^^^^^ >pipe : (f: (...args: A) => B, g: (x: B) => C) => (...args: A) => C -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ ^^ ^^^^^^ >() => true : () => boolean > : ^^^^^^^^^^^^^ >true : true @@ -742,7 +742,7 @@ let g6 = pipe(x => "hello", s => s.length); >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 @@ -766,7 +766,7 @@ let g7 = pipe((x, y) => 42, x => "" + x); >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 @@ -792,7 +792,7 @@ let g8 = pipe((x: number, y: string) => 42, x => "" + x); >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 217a6a1815687..c65e61162047b 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/returnTypeInferenceNotTooBroad.types b/tests/baselines/reference/returnTypeInferenceNotTooBroad.types index d6ed39751d257..0d1c833314eb6 100644 --- a/tests/baselines/reference/returnTypeInferenceNotTooBroad.types +++ b/tests/baselines/reference/returnTypeInferenceNotTooBroad.types @@ -30,7 +30,7 @@ interface Wrapper { } declare function sepsis(opts: Opts): Wrapper; >sepsis : (opts: Opts) => Wrapper -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >opts : Opts > : ^^^^^^^ @@ -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 @@ -88,7 +88,7 @@ export const yone = unwrap(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 diff --git a/tests/baselines/reference/reverseMappedTupleContext.types b/tests/baselines/reference/reverseMappedTupleContext.types index cb87e6b2a7b03..faaa4730ae267 100644 --- a/tests/baselines/reference/reverseMappedTupleContext.types +++ b/tests/baselines/reference/reverseMappedTupleContext.types @@ -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,7 +134,7 @@ 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; }; } > : ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^ @@ -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/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types b/tests/baselines/reference/reverseMappedTypeContextualTypesPerElementOfTupleConstraint.types index 43e79f698ae06..465a8b489694b 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 @@ -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/reverseMappedTypeIntersectionConstraint.types b/tests/baselines/reference/reverseMappedTypeIntersectionConstraint.types index 9608d9a4e85d6..520138cd37274 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 7c0e35cb49770..f063fe88f6cac 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 263a0a93907ae..d019de28535b4 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/reverseMappedUnionInference.types b/tests/baselines/reference/reverseMappedUnionInference.types index 8d9aa97853cde..971a40c21d6b0 100644 --- a/tests/baselines/reference/reverseMappedUnionInference.types +++ b/tests/baselines/reference/reverseMappedUnionInference.types @@ -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/signatureInstantiationWithRecursiveConstraints.types b/tests/baselines/reference/signatureInstantiationWithRecursiveConstraints.types index 982b6eec22685..f7998a56ea6a8 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/specedNoStackBlown.types b/tests/baselines/reference/specedNoStackBlown.types index 8ecde23cb88d5..684a5f9f0a64f 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/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types index 22ef06157fae3..d92de312d36f7 100644 --- a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types +++ b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.types @@ -200,7 +200,7 @@ var a2: { 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 6fe39d1a25547..98480b9816223 100644 --- a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types +++ b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.types @@ -267,7 +267,7 @@ var a2: { 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 ebab7a5709213..5248655610147 100644 --- a/tests/baselines/reference/spreadExpressionContextualType.types +++ b/tests/baselines/reference/spreadExpressionContextualType.types @@ -16,8 +16,8 @@ interface Apple { } function test(item: T): T { ->test : (item: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>test : (item: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >item : T > : ^ @@ -29,8 +29,8 @@ function test(item: T): T { } function test2(item: T): T { ->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 0ea48f7b586d8..861421fc345f5 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 diff --git a/tests/baselines/reference/spreadObjectOrFalsy.types b/tests/baselines/reference/spreadObjectOrFalsy.types index 332e9fd5d6fdc..69411ad4d3f16 100644 --- a/tests/baselines/reference/spreadObjectOrFalsy.types +++ b/tests/baselines/reference/spreadObjectOrFalsy.types @@ -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 e18fee2410acd..6eae6a821c0c1 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 216e3ae90a5b5..562053320a525 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 1341b7eef3686..6d2bf2bd48ec8 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 diff --git a/tests/baselines/reference/spreadsAndContextualTupleTypes.types b/tests/baselines/reference/spreadsAndContextualTupleTypes.types index 4bd6c9fa4a447..160308c486044 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" diff --git a/tests/baselines/reference/spuriousCircularityOnTypeImport.types b/tests/baselines/reference/spuriousCircularityOnTypeImport.types index 675ed82b6c532..8816b1f1904ab 100644 --- a/tests/baselines/reference/spuriousCircularityOnTypeImport.types +++ b/tests/baselines/reference/spuriousCircularityOnTypeImport.types @@ -25,8 +25,8 @@ export declare const value2: { > : ^^^^^^^^^^^^^^^^^^ ^^^ sliceSelectors: >(selectorsBySlice: FuncMap) => { [P in keyof FuncMap]: Parameters }; ->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/staticMethodWithTypeParameterExtendsClauseDeclFile.types b/tests/baselines/reference/staticMethodWithTypeParameterExtendsClauseDeclFile.types index f4648c3bc93cc..d9993a43160be 100644 --- a/tests/baselines/reference/staticMethodWithTypeParameterExtendsClauseDeclFile.types +++ b/tests/baselines/reference/staticMethodWithTypeParameterExtendsClauseDeclFile.types @@ -17,27 +17,27 @@ export class publicClassWithWithPrivateTypeParameters { private static myPrivateStaticMethod1() { // do not emit extends clause >myPrivateStaticMethod1 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod1() { // do not emit extends clause >myPrivateMethod1 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private static myPrivateStaticMethod2() { // do not emit extends clause >myPrivateStaticMethod2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } private myPrivateMethod2() { // do not emit extends clause >myPrivateMethod2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } public static myPublicStaticMethod() { >myPublicStaticMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } public myPublicMethod() { >myPublicMethod : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } diff --git a/tests/baselines/reference/strictBindCallApply1.types b/tests/baselines/reference/strictBindCallApply1.types index 8bf6e8a8c04d2..87cbb9418884b 100644 --- a/tests/baselines/reference/strictBindCallApply1.types +++ b/tests/baselines/reference/strictBindCallApply1.types @@ -33,11 +33,11 @@ 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 > : ^^^^^^^^^ @@ -47,11 +47,11 @@ let f01 = foo.bind(undefined, 10); >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 @@ -63,11 +63,11 @@ let f02 = foo.bind(undefined, 10, "hello"); >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 @@ -81,11 +81,11 @@ let f03 = foo.bind(undefined, 10, 20); // Error >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,11 +99,11 @@ 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 > : ^^^^^^^^^ @@ -113,11 +113,11 @@ let f05 = generic.bind(undefined); // typeof generic >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] @@ -340,7 +340,7 @@ let f10 = c.foo.bind(c); >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,7 +348,7 @@ 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 > : ^ @@ -358,7 +358,7 @@ let f11 = c.foo.bind(c, 10); >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 @@ -378,7 +378,7 @@ let f12 = c.foo.bind(c, 10, "hello"); >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 @@ -400,7 +400,7 @@ let f13 = c.foo.bind(c, 10, 20); // Error >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 @@ -422,7 +422,7 @@ let f14 = c.foo.bind(undefined); // Error >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,7 +448,7 @@ 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 > : ^ @@ -458,7 +458,7 @@ let f16 = c.generic.bind(c); // typeof C.prototype.generic >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 @@ -466,7 +466,7 @@ let f16 = c.generic.bind(c); // typeof C.prototype.generic >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 @@ -916,11 +916,11 @@ function bar(callback: (this: 1, ...args: T) => void) { >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 > : ^ @@ -928,18 +928,18 @@ function bar(callback: (this: 1, ...args: T) => void) { >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 -> : ^ ^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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 @@ -951,11 +951,11 @@ function baz(callback: (this: 1, ...args: T extends 1 ? [unknow >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 > : ^ @@ -963,11 +963,11 @@ function baz(callback: (this: 1, ...args: T extends 1 ? [unknow >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 1545a3b4e3ba5..af0d9bae1c1c0 100644 --- a/tests/baselines/reference/strictBindCallApply2.types +++ b/tests/baselines/reference/strictBindCallApply2.types @@ -25,11 +25,11 @@ const fb = fn.bind({ blub: "blub" }); >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/strictSubtypeAndNarrowing.types b/tests/baselines/reference/strictSubtypeAndNarrowing.types index e6a1ad9d84937..35e0bc6b537b7 100644 --- a/tests/baselines/reference/strictSubtypeAndNarrowing.types +++ b/tests/baselines/reference/strictSubtypeAndNarrowing.types @@ -633,8 +633,8 @@ type NarrowByDeepValue = DeepPathT extends readonly [ declare function doesValueAtDeepPathSatisfy< ->doesValueAtDeepPathSatisfy : (obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ +>doesValueAtDeepPathSatisfy : , ValueT>(obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue +> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^ ObjT extends object, const DeepPathT extends ReadonlyArray, @@ -710,8 +710,8 @@ function test1(foo: Foo): {value: {type: 'A'}; a?: number} { > : ^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >doesValueAtDeepPathSatisfy(foo, ['value', 'type'], isA) : boolean > : ^^^^^^^ ->doesValueAtDeepPathSatisfy : (obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>doesValueAtDeepPathSatisfy : , ValueT>(obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue +> : ^ ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >foo : Foo > : ^^^ >['value', 'type'] : ["value", "type"] @@ -749,8 +749,8 @@ function test2(foo: Foo): {value: {type: 'A'}; a?: number} { > : ^^^^^^^ >doesValueAtDeepPathSatisfy(foo, ['value', 'type'], isB) : boolean > : ^^^^^^^ ->doesValueAtDeepPathSatisfy : (obj: ObjT, deepPath: DeepPathT, predicate: (arg: unknown) => arg is ValueT) => obj is NarrowByDeepValue -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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 505f141f1200b..7086965d547d8 100644 --- a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types +++ b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.types @@ -348,19 +348,19 @@ function f12(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 fd4615c3c82be..22bc9157d9b03 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" @@ -83,7 +83,7 @@ let h = bar(x => x); >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" diff --git a/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.types b/tests/baselines/reference/stringLiteralTypesAsTypeParameterConstraint02.types index 5ef47f2d80189..9a2257ec697f9 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 a48787e928e90..c404453bf633b 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 6c2aa0453b6a4..7649ce0c7ab05 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/subclassWithPolymorphicThisIsAssignable.types b/tests/baselines/reference/subclassWithPolymorphicThisIsAssignable.types index b4a5bbf5d4985..2db33d2a7e8b3 100644 --- a/tests/baselines/reference/subclassWithPolymorphicThisIsAssignable.types +++ b/tests/baselines/reference/subclassWithPolymorphicThisIsAssignable.types @@ -21,15 +21,15 @@ export class Example { >this.test() : void > : ^^^^ >this.test : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ >this : this > : ^^^^ >test : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^ ^^^^^^^^^^^ } public test() { } >test : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } diff --git a/tests/baselines/reference/substitutionTypeNoMergeOfAssignableType.types b/tests/baselines/reference/substitutionTypeNoMergeOfAssignableType.types index 50783dc6a2665..b3b94b53a8a4f 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 5f9ddc84e3327..f97405e0aef9c 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 3e92f1a113c48..ff52e4bb91bfc 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/subtypesOfTypeParameter.types b/tests/baselines/reference/subtypesOfTypeParameter.types index f0f1219d60cc6..3bdd0c04801bb 100644 --- a/tests/baselines/reference/subtypesOfTypeParameter.types +++ b/tests/baselines/reference/subtypesOfTypeParameter.types @@ -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 66b7d40050d8a..c4e8e9a37a297 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 @@ -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 @@ -844,7 +844,7 @@ function f19(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 861d06365c169..31b32f08af17d 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 29b51c5a4c4a6..49b088e99e29c 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 980be4a9b906d..1539b4d2cd064 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/subtypingWithCallSignatures2.types b/tests/baselines/reference/subtypingWithCallSignatures2.types index 7315697b45ee2..da01215c6dfb5 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,11 +324,11 @@ 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[]; }): { (x: T): number[]; (x: U): number[]; }; (a: any): any; } -> : ^^^ ^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : any declare function foo17(a: { @@ -665,9 +665,9 @@ var r5b = [r5arg2, r5arg1]; 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): (x: (arg: Base) => Derived) => Base; (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): (x: (arg: Base) => Derived) => (r: Base) => Derived; (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): (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; (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): (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; (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): (...x: Derived[]) => Derived; (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): (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (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 -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r12arg1 : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +>>(x: Array, y: T) => >null : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -1068,16 +1068,16 @@ var r12 = foo12(r12arg1); // any > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo12 : { (a: (x: Array, y: Array) => Array): (x: Array, y: Array) => Derived[]; (a: any): any; } > : ^^^ ^^ ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ->r12arg1 : (x: Array, y: T) => Array -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r12arg1 : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r12a = [r12arg1, r12arg2]; >r12a : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r12arg1, r12arg2] : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ ->r12arg1 : (x: Array, y: T) => Array -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r12arg1 : >(x: Array, y: T) => Array +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r12arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ @@ -1088,14 +1088,14 @@ var r12b = [r12arg2, r12arg1]; > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r12arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ ->r12arg1 : (x: Array, y: T) => 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ +>>(x: Array, y: T) => y : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -1122,16 +1122,16 @@ var r13 = foo13(r13arg1); // any > : ^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo13 : { (a: (x: Array, y: Array) => Array): (x: Array, y: Array) => Derived[]; (a: any): any; } > : ^^^ ^^ ^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ->r13arg1 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r13a = [r13arg1, r13arg2]; >r13a : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r13arg1, r13arg2] : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ ->r13arg1 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >r13arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ @@ -1142,8 +1142,8 @@ var r13b = [r13arg2, r13arg1]; > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r13arg2 : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ ->r13arg1 : (x: Array, y: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : >(x: Array, y: T) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r14arg1 = (x: { a: T; b: T }) => x.a; >r14arg1 : (x: { a: T; b: T; }) => T @@ -1225,9 +1225,9 @@ var r15 = foo15(r15arg1); // any var r16arg1 = (x: T) => [1]; >r16arg1 : (x: T) => number[] -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ >(x: T) => [1] : (x: T) => number[] -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ >x : T > : ^ >[1] : number[] @@ -1237,13 +1237,13 @@ 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[]; }): { (x: T): number[]; (x: U): number[]; }; (a: any): any; } -> : ^^^ ^^ ^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >r16arg1 : (x: T) => number[] -> : ^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ var r17arg1 = (x: (a: T) => T) => null; >r17arg1 : (x: (a: T) => T) => T[] diff --git a/tests/baselines/reference/subtypingWithCallSignatures3.types b/tests/baselines/reference/subtypingWithCallSignatures3.types index 493927186cfc5..d589006c0b8ab 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 @@ -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): (x: (arg: Base) => Derived) => (r: Base) => Derived2; (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): (x: (arg: Base) => Derived, y: (arg2: Base) => Derived) => (r: Base) => Derived; (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): (...x: Base[]) => Base; (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): (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (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 > : ^ ^^ ^^ ^^ ^^^^^ @@ -561,10 +561,10 @@ 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r6arg2 : >(x: Array, y: Array) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ +>>(x: Array, y: Array) => null : >(x: Array, y: Array) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -587,8 +587,8 @@ module Errors { > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >[r6arg2, r6arg] : ((x: Array, y: Array) => Array)[] > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ ->r6arg2 : (x: Array, y: Array) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r6arg2 : >(x: Array, y: Array) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >r6arg : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ @@ -599,8 +599,8 @@ module Errors { > : ^^ ^^ ^^ ^^ ^^^^^ ^^^ >r6arg : (x: Array, y: Array) => Array > : ^ ^^ ^^ ^^ ^^^^^ ->r6arg2 : (x: Array, y: Array) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r6arg2 : >(x: Array, y: Array) => T +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ var r7arg = (x: { a: T; b: T }) => null; >r7arg : (x: { a: T; b: T; }) => T @@ -660,9 +660,9 @@ module Errors { 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,25 +678,25 @@ module Errors { >foo15 : { (a2: (x: { a: string; b: number; }) => number): (x: { a: string; b: number; }) => number; (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 > : ^ ^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/subtypingWithCallSignatures4.types b/tests/baselines/reference/subtypingWithCallSignatures4.types index c11572d22a3e1..9d06664abbfdb 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures4.types +++ b/tests/baselines/reference/subtypingWithCallSignatures4.types @@ -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 @@ -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 @@ -486,9 +486,9 @@ var r5b = [r5arg2, r5arg]; 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,27 +514,27 @@ 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 @@ -658,9 +658,9 @@ var r15b = [r15arg2, r15arg]; 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,27 +690,27 @@ 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[] diff --git a/tests/baselines/reference/subtypingWithConstructSignatures2.types b/tests/baselines/reference/subtypingWithConstructSignatures2.types index 7d2f0f659d747..1addc391e00cd 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,11 +324,11 @@ 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[]; }): { new (x: T): number[]; new (x: U): number[]; }; (a: any): any; } -> : ^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ +> : ^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^ ^^^ >a : any declare function foo17(a: { @@ -619,7 +619,7 @@ var r5b = [r5arg2, r5arg1]; 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): new (x: new (arg: Base) => Derived) => Base; (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): new (x: new (arg: Base) => Derived) => new (r: Base) => Derived; (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): new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived; (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): new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived; (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): new (...x: Derived[]) => Derived; (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): new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (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 -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r12arg1 : new >(x: Array, y: T) => Array +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -948,16 +948,16 @@ var r12 = foo12(r12arg1); // any > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo12 : { (a: new (x: Array, y: Array) => Array): new (x: Array, y: Array) => Derived[]; (a: any): any; } > : ^^^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ->r12arg1 : new (x: Array, y: T) => Derived[] -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>r12arg1 : new >(x: Array, y: T) => Derived[] +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ var r12a = [r12arg1, r12arg2]; >r12a : (new (x: Array, y: Array) => Derived[])[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >[r12arg1, r12arg2] : (new (x: Array, y: Array) => Derived[])[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ->r12arg1 : new (x: Array, y: T) => Derived[] -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>r12arg1 : new >(x: Array, y: T) => Derived[] +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >r12arg2 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -968,12 +968,12 @@ var r12b = [r12arg2, r12arg1]; > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >r12arg2 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->r12arg1 : new (x: Array, y: T) => Derived[] -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ +>r12arg1 : new >(x: Array, y: T) => Derived[] +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ var r13arg1: new >(x: Array, y: T) => T; ->r13arg1 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r13arg1 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T @@ -994,16 +994,16 @@ var r13 = foo13(r13arg1); // any > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ >foo13 : { (a: new (x: Array, y: Array) => Array): new (x: Array, y: Array) => Derived[]; (a: any): any; } > : ^^^ ^^ ^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ->r13arg1 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r13a = [r13arg1, r13arg2]; >r13a : (new (x: Array, y: Array) => Derived[])[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >[r13arg1, r13arg2] : (new (x: Array, y: Array) => Derived[])[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ->r13arg1 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >r13arg2 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -1014,8 +1014,8 @@ var r13b = [r13arg2, r13arg1]; > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >r13arg2 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->r13arg1 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r13arg1 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r14arg1: new (x: { a: T; b: T }) => T; >r14arg1 : new (x: { a: T; b: T; }) => T @@ -1081,19 +1081,19 @@ var r15 = foo15(r15arg1); // any 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[]; }): { new (x: T): number[]; new (x: U): number[]; }; (a: any): any; } -> : ^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^ ^^ ^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ >r16arg1 : new (x: T) => number[] -> : ^^^^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^ +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^ var r17arg1: new (x: (a: T) => T) => T[]; >r17arg1 : new (x: (a: T) => T) => T[] diff --git a/tests/baselines/reference/subtypingWithConstructSignatures3.types b/tests/baselines/reference/subtypingWithConstructSignatures3.types index 3d9daec18cae6..2e9ddf5174bfd 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 @@ -296,7 +296,7 @@ module Errors { 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): new (x: new (arg: Base) => Derived) => new (r: Base) => Derived2; (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): new (x: new (arg: Base) => Derived, y: new (arg2: Base) => Derived) => new (r: Base) => Derived; (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): new (...x: Base[]) => Base; (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): new (x: { foo: string; }, y: { foo: string; bar: string; }) => Base; (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 > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^ @@ -505,8 +505,8 @@ module Errors { > : ^^^^^^^^^^ var r6arg2: new >(x: Array, y: Array) => T; ->r6arg2 : new (x: Array, y: Array) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>r6arg2 : new >(x: Array, y: Array) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : Base[] @@ -527,8 +527,8 @@ module Errors { > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >[r6arg2, r6arg1] : (new (x: Array, y: Array) => Derived[])[] > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ ->r6arg2 : new (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r6arg2 : new >(x: Array, y: Array) => T +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ >r6arg1 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ @@ -539,8 +539,8 @@ module Errors { > : ^^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^^^^ >r6arg1 : new (x: Array, y: Array) => Derived[] > : ^^^^^ ^^ ^^ ^^ ^^^^^^^^^^^^^^ ->r6arg2 : new (x: Array, y: Array) => T -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^ +>r6arg2 : new >(x: Array, y: Array) => T +> : ^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^ var r7arg1: new (x: { a: T; b: T }) => T; >r7arg1 : new (x: { a: T; b: T; }) => T @@ -592,7 +592,7 @@ module Errors { 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,25 +606,25 @@ module Errors { >foo15 : { (a2: new (x: { a: string; b: number; }) => number): new (x: { a: string; b: number; }) => number; (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 > : ^^^^^ ^^ ^^^^^^^^^^^ diff --git a/tests/baselines/reference/subtypingWithConstructSignatures4.types b/tests/baselines/reference/subtypingWithConstructSignatures4.types index 993f3a25c0eb0..ea5a19588acfc 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures4.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures4.types @@ -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 @@ -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 @@ -444,7 +444,7 @@ var r5b = [r5arg2, r5arg]; 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,27 +464,27 @@ 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 @@ -592,7 +592,7 @@ var r15b = [r15arg2, r15arg]; 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,27 +616,27 @@ 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[] diff --git a/tests/baselines/reference/subtypingWithConstructSignatures5.types b/tests/baselines/reference/subtypingWithConstructSignatures5.types index 3a871cf47868d..c358622008e63 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures5.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures5.types @@ -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,29 +260,29 @@ 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 > : ^ a12: new >(x: Array, y: T) => Array; // ok, less specific parameter type ->a12 : new (x: Array, y: T) => Array -> : ^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a12 : new >(x: Array, y: T) => Array +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T > : ^ a13: new >(x: Array, y: T) => T; // ok, T = Array, satisfies constraint, contextual signature instantiation succeeds ->a13 : new (x: Array, y: T) => T -> : ^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>a13 : new >(x: Array, y: T) => T +> : ^^^^^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >x : Base[] > : ^^^^^^ >y : T diff --git a/tests/baselines/reference/subtypingWithConstructSignatures6.types b/tests/baselines/reference/subtypingWithConstructSignatures6.types index 6f3c2bed2c658..4d1aea91bcf84 100644 --- a/tests/baselines/reference/subtypingWithConstructSignatures6.types +++ b/tests/baselines/reference/subtypingWithConstructSignatures6.types @@ -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 @@ -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 diff --git a/tests/baselines/reference/switchWithConstrainedTypeVariable.types b/tests/baselines/reference/switchWithConstrainedTypeVariable.types index e6136c6932163..7239c52755347 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 852d3758247f8..5e19bc3755743 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 4eb932788fa62..11fae9be18569 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/taggedPrimitiveNarrowing.types b/tests/baselines/reference/taggedPrimitiveNarrowing.types index 070c75baaa06a..e2fdf7a4288d9 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/taggedTemplateStringsWithOverloadResolution3.types b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types index b654e7a5f8524..a5c64a403dae7 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.types @@ -283,7 +283,7 @@ fn3 ``; // Error // 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 3f9c2533c3375..63d9995d687d0 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.types @@ -283,7 +283,7 @@ fn3 ``; // Error // 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/templateLiteralIntersection4.types b/tests/baselines/reference/templateLiteralIntersection4.types index 944a7b2bb27bf..0a584849adcde 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 a44c87d53e10e..b9863b3ab2699 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}` @@ -29,11 +29,11 @@ const createScopedActionType = (scope: S) => (type: T) => `MyScope/${T}` >createActionInMyScope : (type: T) => `MyScope/${T}` -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >createScopedActionType("MyScope") : (type: T) => `MyScope/${T}` -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >createScopedActionType : (scope: S) => (type: T) => `${S}/${T}` -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ ^^^^^^^^^ ^^ ^^ ^^^^^ >"MyScope" : "MyScope" > : ^^^^^^^^^ @@ -43,7 +43,7 @@ const MY_ACTION = createActionInMyScope("MY_ACTION"); // 'MyScope/MY_ACTION' >createActionInMyScope("MY_ACTION") : "MyScope/MY_ACTION" > : ^^^^^^^^^^^^^^^^^^^ >createActionInMyScope : (type: T) => `MyScope/${T}` -> : ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^ >"MY_ACTION" : "MY_ACTION" > : ^^^^^^^^^^^ @@ -108,8 +108,8 @@ type TCA2 = Cases<'BAR'>; // 'BAR bar BAR bAR' // Assignability function test(name: `get${Capitalize}`) { ->test : (name: `get${Capitalize}`) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>test : (name: `get${Capitalize}`) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >name : `get${Capitalize}` > : ^^^^^^^^^^^^^^^^^^^^^ @@ -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 48851e24db427..d795062405681 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 @@ -334,7 +334,7 @@ declare function widening(x: T): T; declare function nonWidening(x: T): T; >nonWidening : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -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 @@ -458,7 +458,7 @@ declare function g1(x: T): T; declare function g2(x: T): T; >g2 : (x: T) => T -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >x : T > : ^ @@ -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 f6101b297b946..bcd5bbfb198a5 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 @@ -597,16 +597,16 @@ type Schema = { a: { b: { c: number } } }; > : ^^^^^^ declare function chain(field: F | `${F}.${F}`): void; ->chain : (field: F | `${F}.${F}`) => void -> : ^ ^^^^^^^^^^^^^^ ^^ ^^^^^ +>chain : (field: F | `${F}.${F}`) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >field : F | `${F}.${F}` > : ^^^^^^^^^^^^^^^ chain("a"); >chain("a") : void > : ^^^^ ->chain : (field: F | `${F}.${F}`) => 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` @@ -791,22 +791,22 @@ type DotString = `${string}.${string}.${string}`; > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declare function noSpread

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

(args: P[]) => P -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^ +>noSpread :

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

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

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

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

(args: P[]) => P -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +>noSpread :

(args: P[]) => P +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ >[`1.${'2'}.3`, `1.${'2'}.4`] : ("1.2.3" | "1.2.4")[] > : ^^^^^^^^^^^^^^^^^^^^^ >`1.${'2'}.3` : "1.2.3" @@ -821,8 +821,8 @@ noSpread([`1.${'2'}.3`, `1.${'2'}.4`]); 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +>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` @@ -841,8 +841,8 @@ noSpread([`1.${'2' as string}.3`, `1.${'2' as string}.4`]); spread(`1.${'2'}.3`, `1.${'2'}.4`); >spread(`1.${'2'}.3`, `1.${'2'}.4`) : "1.2.3" | "1.2.4" > : ^^^^^^^^^^^^^^^^^ ->spread :

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

(...args: P[]) => P +> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ >`1.${'2'}.3` : "1.2.3" > : ^^^^^^^ >'2' : "2" @@ -855,8 +855,8 @@ spread(`1.${'2'}.3`, `1.${'2'}.4`); 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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^ +>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 @@ -885,8 +885,8 @@ function ft1(t: T, u: Uppercase, u1: Uppercase<`1.${T}.3`>, spread(`1.${t}.3`, `1.${t}.4`); >spread(`1.${t}.3`, `1.${t}.4`) : `1.${T}.3` | `1.${T}.4` > : ^^^^^^^^^^^^^^^^^^^^^^^ ->spread :

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

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

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

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

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

(...args: P[]) => P +> : ^ ^^^^^^^^^ ^^^^^ ^^ ^^^^^^ >u1 : `1.${Uppercase}.3` > : ^^^^^^^^^^^^^^^^^^^^^ >u2 : `1.${Uppercase}.4` @@ -931,7 +931,7 @@ type Boom = 'abc' | 'def' | `a${string}` | Lowercase; function a() { >a : () => void -> : ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >id : string > : ^^^^^^ diff --git a/tests/baselines/reference/templateLiteralTypes4.types b/tests/baselines/reference/templateLiteralTypes4.types index c71aba1a0fb30..ab656c5208408 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"]> @@ -630,14 +630,14 @@ interface TypedObjectMembers { // get/set a field by index getIndex>(index: I): FieldType["type"]>; ->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 -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>setIndex : >(index: I, value: FieldType["type"]>) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >index : I > : ^ >value : FieldType["type"]> @@ -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 27e09dfc9aead..68a5677449f12 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 9b8ea3f0ae0c0..1488750803230 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 07e5795b9a6cb..69947363a2a5d 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 bbac48984188e..259eee83adf56 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/thisInTupleTypeParameterConstraints.types b/tests/baselines/reference/thisInTupleTypeParameterConstraints.types index 881a69711d1ec..f2115f7c5b2a0 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/thisPrototypeMethodCompoundAssignment.types b/tests/baselines/reference/thisPrototypeMethodCompoundAssignment.types index 086ac464b72ef..c63453f25217b 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 e69c7706b9ecc..b462a9e3181ea 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 07e5f305076bf..eda3cde77f265 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 9ca0586d22c2f..507820b75dd73 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/thisTypeAsConstraint.types b/tests/baselines/reference/thisTypeAsConstraint.types index 82191a96bf3c7..901500ba600b5 100644 --- a/tests/baselines/reference/thisTypeAsConstraint.types +++ b/tests/baselines/reference/thisTypeAsConstraint.types @@ -7,6 +7,6 @@ class C { public m() { >m : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } } diff --git a/tests/baselines/reference/thisTypeInFunctions3.types b/tests/baselines/reference/thisTypeInFunctions3.types index 7c00cbf154f38..0b3b8eb49b1cf 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 1e86013fce232..69c2a41637321 100644 --- a/tests/baselines/reference/thisTypeInObjectLiterals2.types +++ b/tests/baselines/reference/thisTypeInObjectLiterals2.types @@ -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 @@ -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" diff --git a/tests/baselines/reference/thisTypeOptionalCall.types b/tests/baselines/reference/thisTypeOptionalCall.types index 8f990d2a76fb2..c49f519cd9f69 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/trackedSymbolsNoCrash.types b/tests/baselines/reference/trackedSymbolsNoCrash.types index 18640f29d412a..02ee07d283a42 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/transpile/declarationTypeParameterConstraint.d.ts b/tests/baselines/reference/transpile/declarationTypeParameterConstraint.d.ts new file mode 100644 index 0000000000000..b20c8b3da1665 --- /dev/null +++ b/tests/baselines/reference/transpile/declarationTypeParameterConstraint.d.ts @@ -0,0 +1,13 @@ +//// [declarationTypeParameterConstraint.ts] //// +import { type In, type Out, type Base } from "./a"; + +export const object = { + doThing(_t: T, _in: In[T]): Out[T] { + return; + }, +}; +//// [declarationTypeParameterConstraint.d.ts] //// +import { type In, type Out, type Base } from "./a"; +export declare const object: { + doThing(_t: T, _in: In[T]): Out[T]; +}; diff --git a/tests/baselines/reference/transpile/declarationTypeParameterConstraint.js b/tests/baselines/reference/transpile/declarationTypeParameterConstraint.js new file mode 100644 index 0000000000000..b989c1f45630a --- /dev/null +++ b/tests/baselines/reference/transpile/declarationTypeParameterConstraint.js @@ -0,0 +1,17 @@ +//// [declarationTypeParameterConstraint.ts] //// +import { type In, type Out, type Base } from "./a"; + +export const object = { + doThing(_t: T, _in: In[T]): Out[T] { + return; + }, +}; +//// [declarationTypeParameterConstraint.js] //// +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.object = void 0; +exports.object = { + doThing: function (_t, _in) { + return; + }, +}; diff --git a/tests/baselines/reference/tslibReExportHelpers2.types b/tests/baselines/reference/tslibReExportHelpers2.types index 317ee54cdf795..0e359bd1cf1ab 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 1ab6168c215fa..afe81350a91d3 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/tsxGenericArrowFunctionParsing.types b/tests/baselines/reference/tsxGenericArrowFunctionParsing.types index 4fbfd82b05e3d..2c58f4402e574 100644 --- a/tests/baselines/reference/tsxGenericArrowFunctionParsing.types +++ b/tests/baselines/reference/tsxGenericArrowFunctionParsing.types @@ -37,15 +37,15 @@ x1.isElement; // This is a generic function var x2 = () => {}; >x2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ >() => {} : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ x2(); >x2() : void > : ^^^^ >x2 : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ // This is a generic function var x3 = () => {}; diff --git a/tests/baselines/reference/tsxGenericAttributesType1.types b/tests/baselines/reference/tsxGenericAttributesType1.types index 6feb0588a30bb..fe8d3f0324dac 100644 --- a/tests/baselines/reference/tsxGenericAttributesType1.types +++ b/tests/baselines/reference/tsxGenericAttributesType1.types @@ -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 79c3775af01b7..7561217f00582 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 8242a8daa67ac..81fb87c9eee84 100644 --- a/tests/baselines/reference/tsxGenericAttributesType7.types +++ b/tests/baselines/reference/tsxGenericAttributesType7.types @@ -32,9 +32,9 @@ const decorator = function (props: U) { const decorator1 = function (props: U) { >decorator1 : (props: U) => JSX.Element -> : ^ ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >function (props: U) { return ;} : (props: U) => JSX.Element -> : ^ ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ >props : U diff --git a/tests/baselines/reference/tsxGenericAttributesType8.types b/tests/baselines/reference/tsxGenericAttributesType8.types index 7f3e0e4c6140e..7ebcebc82ea4c 100644 --- a/tests/baselines/reference/tsxGenericAttributesType8.types +++ b/tests/baselines/reference/tsxGenericAttributesType8.types @@ -32,9 +32,9 @@ const decorator = function (props: U) { const decorator1 = function (props: U) { >decorator1 : (props: U) => JSX.Element -> : ^ ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >function (props: U) { return ;} : (props: U) => JSX.Element -> : ^ ^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^ >x : string > : ^^^^^^ >props : U diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types b/tests/baselines/reference/tsxStatelessFunctionComponentWithDefaultTypeParameter2.types index d66801d928e56..ef82ca9b63018 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/tsxStatelessFunctionComponentsWithTypeArguments2.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types index 77b12ade15f13..3eb0c0f94a235 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments2.types @@ -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 diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types index 3db6717ae0013..ae3d603118fc4 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments3.types @@ -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 diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types index 447890ed85b79..a0949bafe7c1b 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments4.types @@ -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 diff --git a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types index 46fe6a281e129..8dca93e6378f2 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types +++ b/tests/baselines/reference/tsxStatelessFunctionComponentsWithTypeArguments5.types @@ -15,7 +15,7 @@ declare function Component(l: U): JSX.Element; function createComponent(arg: T) { >createComponent : (arg: T) => void -> : ^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >prop : number > : ^^^^^^ >arg : T @@ -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 diff --git a/tests/baselines/reference/twiceNestedKeyofIndexInference.types b/tests/baselines/reference/twiceNestedKeyofIndexInference.types index 1a2e27785a015..35c008d4dc69e 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/typeAliasFunctionTypeSharedSymbol.types b/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types index aeee167e369c6..4bbb3fa93ce2b 100644 --- a/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types +++ b/tests/baselines/reference/typeAliasFunctionTypeSharedSymbol.types @@ -4,8 +4,8 @@ // Repro from comment in #21496 function Mixin(Base: TBase) { ->Mixin : {}>(Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Mixin : (Base: TBase) => { new (...args: any[]): (Anonymous class); prototype: Mixin.(Anonymous class); } & TBase +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >args : any[] > : ^^^^^ >Base : TBase @@ -23,8 +23,8 @@ function Mixin(Base: TBase) { 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 -> : ^ ^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>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 5a43302ee4041..5a2058c0356d7 100644 --- a/tests/baselines/reference/typeAliases.types +++ b/tests/baselines/reference/typeAliases.types @@ -163,8 +163,8 @@ var x13_2: T13 > : ^^^ declare function foo13(t1: T1, t2: T13): void; ->foo13 : (t1: T1, t2: T13) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^ +>foo13 : (t1: T1, t2: T13) => void +> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^ >t1 : T1 > : ^^ >t2 : I13 @@ -173,8 +173,8 @@ declare function foo13(t1: T1, t2: T13): void; foo13(x13_1, x13_2); >foo13(x13_1, x13_2) : void > : ^^^^ ->foo13 : (t1: T1, t2: T13) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>foo13 : (t1: T1, t2: T13) => void +> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x13_1 : I13 > : ^^^ >x13_2 : I13 @@ -183,8 +183,8 @@ foo13(x13_1, x13_2); foo13(x13_2, x13_1); >foo13(x13_2, x13_1) : void > : ^^^^ ->foo13 : (t1: T1, t2: T13) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +>foo13 : (t1: T1, t2: T13) => void +> : ^ ^^^^^^^^^ ^^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >x13_2 : I13 > : ^^^ >x13_1 : I13 diff --git a/tests/baselines/reference/typeArgInference2.types b/tests/baselines/reference/typeArgInference2.types index 660faac536db1..b90bc0f809f34 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 007e9fa80f783..1ef6ca25fd9f6 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 a0654059c8bf5..2c6666adc6815 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 301d5c1c6f55e..d37a21915d1d3 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/typeArgumentInferenceApparentType2.types b/tests/baselines/reference/typeArgumentInferenceApparentType2.types index 011e6a920ee86..ba48e610c6eec 100644 --- a/tests/baselines/reference/typeArgumentInferenceApparentType2.types +++ b/tests/baselines/reference/typeArgumentInferenceApparentType2.types @@ -9,7 +9,7 @@ function method(iterable: Iterable): T { function inner>() { >inner : >() => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ var u: U; >u : U diff --git a/tests/baselines/reference/typeArgumentInferenceTransitiveConstraints.types b/tests/baselines/reference/typeArgumentInferenceTransitiveConstraints.types index ee5698bd71dad..cd378e0458ac3 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/typeArgumentInferenceWithConstraintAsCommonRoot.types b/tests/baselines/reference/typeArgumentInferenceWithConstraintAsCommonRoot.types index 0e3ef1552a20b..6b9cbf37b2ae6 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 f115db42897f0..931dae97424b7 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.types +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.types @@ -4,30 +4,30 @@ // Generic call with no parameters function noParams() { } >noParams : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ noParams(); >noParams() : void > : ^^^^ >noParams : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ noParams(); >noParams() : void > : ^^^^ >noParams : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ noParams<{}>(); >noParams<{}>() : void > : ^^^^ >noParams : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ // Generic call with parameters but none use type parameter type function noGenericParams(n: string) { } >noGenericParams : (n: string) => void -> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : string > : ^^^^^^ @@ -35,7 +35,7 @@ noGenericParams(''); // Valid >noGenericParams('') : void > : ^^^^ >noGenericParams : (n: string) => void -> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ @@ -43,7 +43,7 @@ noGenericParams(''); >noGenericParams('') : void > : ^^^^ >noGenericParams : (n: string) => void -> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ @@ -51,14 +51,14 @@ noGenericParams<{}>(''); // Error >noGenericParams<{}>('') : void > : ^^^^ >noGenericParams : (n: string) => void -> : ^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >'' : "" > : ^^ // 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 diff --git a/tests/baselines/reference/typeCheckTypeArgument.types b/tests/baselines/reference/typeCheckTypeArgument.types index b59bb5ecb0439..6c0537112f34c 100644 --- a/tests/baselines/reference/typeCheckTypeArgument.types +++ b/tests/baselines/reference/typeCheckTypeArgument.types @@ -3,7 +3,7 @@ === typeCheckTypeArgument.ts === var f: () => void; >f : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^ interface IFoo { } @@ -13,7 +13,7 @@ class Foo { } function bar() { } >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ class Foo2 { >Foo2 : Foo2 @@ -21,14 +21,14 @@ class Foo2 { method() { } >method : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^ } ((a) => { }); >((a) => { }) : (a: any) => void -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >(a) => { } : (a: any) => void -> : ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^ >a : any > : ^^^ diff --git a/tests/baselines/reference/typeGuardFunctionErrors.types b/tests/baselines/reference/typeGuardFunctionErrors.types index 546a4144f6cc6..29fca4c2b86fc 100644 --- a/tests/baselines/reference/typeGuardFunctionErrors.types +++ b/tests/baselines/reference/typeGuardFunctionErrors.types @@ -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/typeGuardNarrowByMutableUntypedField.types b/tests/baselines/reference/typeGuardNarrowByMutableUntypedField.types index be91c4964d0ea..8d0a96dda4130 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 9c4aa923e39a3..e727dc0d149a4 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 694b1937f346c..6f4c5ae62b448 100644 --- a/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types +++ b/tests/baselines/reference/typeGuardOfFormTypeOfFunction.types @@ -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/typeInferenceCacheInvalidation.types b/tests/baselines/reference/typeInferenceCacheInvalidation.types index ab6412364a8f6..88009bfaf8fe1 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/typeInferenceFBoundedTypeParams.types b/tests/baselines/reference/typeInferenceFBoundedTypeParams.types index 79b30e5a7f25a..9a2de14a5268d 100644 --- a/tests/baselines/reference/typeInferenceFBoundedTypeParams.types +++ b/tests/baselines/reference/typeInferenceFBoundedTypeParams.types @@ -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 @@ -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/typeInferenceLiteralUnion.types b/tests/baselines/reference/typeInferenceLiteralUnion.types index 0f7860d42a910..3f9b568f67c22 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) => [Primitive | T, Primitive | T] | [undefined, undefined] -> : ^ ^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >[new NumCoercible(10), 13, '12', true] : (string | number | true | NumCoercible)[] > : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >new NumCoercible(10) : NumCoercible diff --git a/tests/baselines/reference/typeInferenceWithExcessProperties.types b/tests/baselines/reference/typeInferenceWithExcessProperties.types index d3b28c00cbb27..a41eaf290ed2b 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 65d341875a544..7908696543cc4 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/typeOfOnTypeArg.types b/tests/baselines/reference/typeOfOnTypeArg.types index 50e09fa3b85d9..a61d552a025f4 100644 --- a/tests/baselines/reference/typeOfOnTypeArg.types +++ b/tests/baselines/reference/typeOfOnTypeArg.types @@ -12,8 +12,8 @@ var A = { '': 3 }; > : ^ function fill(f: B) { ->fill : (f: B) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>fill : (f: B) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >A : { '': number; } > : ^^^^^^^^^^^^^^^ >f : B @@ -24,8 +24,8 @@ function fill(f: B) { fill(32); >fill(32) : void > : ^^^^ ->fill : (f: B) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>fill : (f: B) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >32 : 32 > : ^^ diff --git a/tests/baselines/reference/typeParameterAndArgumentOfSameName1.types b/tests/baselines/reference/typeParameterAndArgumentOfSameName1.types index 6ce2e795038db..1985848171702 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/typeParameterAsTypeParameterConstraint.types b/tests/baselines/reference/typeParameterAsTypeParameterConstraint.types index ff60899339e25..160b91302c6e0 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 c2437aed8da7e..f4dfc82aec8b1 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 7ead4382e1f67..bba96b08526cf 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.types +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.types @@ -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 diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types index 572b4f8ef35e6..8c012727d4624 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.types @@ -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 diff --git a/tests/baselines/reference/typeParameterAssignability2.types b/tests/baselines/reference/typeParameterAssignability2.types index a1a45f1c15a7a..2522b6d182117 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 7ac9e499c17a2..83e0b824ef619 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/typeParameterAssignmentWithConstraints.types b/tests/baselines/reference/typeParameterAssignmentWithConstraints.types index d548f7e322b31..2a9901e65b75e 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/typeParameterConstModifiers.types b/tests/baselines/reference/typeParameterConstModifiers.types index 28af8a5ba94a6..b673b9e95563d 100644 --- a/tests/baselines/reference/typeParameterConstModifiers.types +++ b/tests/baselines/reference/typeParameterConstModifiers.types @@ -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 @@ -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 6696d6c668a3c..77496e25d6a6e 100644 --- a/tests/baselines/reference/typeParameterConstModifiersReverseMappedTypes.types +++ b/tests/baselines/reference/typeParameterConstModifiersReverseMappedTypes.types @@ -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 ee37682a7c3b4..5cf87e9d832a8 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 9375185bb93e9..586b1e2a1cbb8 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 e0514d79f0db1..a3eb463c5114f 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 194b5f71ce57d..c58528544828d 100644 --- a/tests/baselines/reference/typeParameterConstraints1.types +++ b/tests/baselines/reference/typeParameterConstraints1.types @@ -9,73 +9,73 @@ function foo1(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 -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>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/typeParameterDiamond1.types b/tests/baselines/reference/typeParameterDiamond1.types index 27500ac3707d4..9fa4119fed77f 100644 --- a/tests/baselines/reference/typeParameterDiamond1.types +++ b/tests/baselines/reference/typeParameterDiamond1.types @@ -7,11 +7,11 @@ function diamondTop() { function diamondMiddle() { >diamondMiddle : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ function diamondBottom() { >diamondBottom : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ var top: Top; >top : Top diff --git a/tests/baselines/reference/typeParameterDiamond2.types b/tests/baselines/reference/typeParameterDiamond2.types index 567329217b544..47e87fe638e5a 100644 --- a/tests/baselines/reference/typeParameterDiamond2.types +++ b/tests/baselines/reference/typeParameterDiamond2.types @@ -7,11 +7,11 @@ function diamondTop() { function diamondMiddle() { >diamondMiddle : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^^ function diamondBottom() { >diamondBottom : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ var top: Top; >top : Top diff --git a/tests/baselines/reference/typeParameterDiamond3.types b/tests/baselines/reference/typeParameterDiamond3.types index 92f6dd9a7a21d..40ab93f9b072e 100644 --- a/tests/baselines/reference/typeParameterDiamond3.types +++ b/tests/baselines/reference/typeParameterDiamond3.types @@ -11,7 +11,7 @@ function diamondTop() { function diamondBottom() { >diamondBottom : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ var top: Top; >top : Top diff --git a/tests/baselines/reference/typeParameterDiamond4.types b/tests/baselines/reference/typeParameterDiamond4.types index ff5fcbf682182..e25030875c4ec 100644 --- a/tests/baselines/reference/typeParameterDiamond4.types +++ b/tests/baselines/reference/typeParameterDiamond4.types @@ -11,7 +11,7 @@ function diamondTop() { function diamondBottom() { >diamondBottom : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ var top: Top; >top : Top diff --git a/tests/baselines/reference/typeParameterDoesntBlockParameterLookup.types b/tests/baselines/reference/typeParameterDoesntBlockParameterLookup.types index 79b7ff389ea21..ada1bf818fe42 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/typeParameterExtendingUnion1.types b/tests/baselines/reference/typeParameterExtendingUnion1.types index 0ecd6aa7ba4b0..25de6e9f07a80 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 40089245f9167..907dd149cd838 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 b8077c43d7339..583bf577acdb6 100644 --- a/tests/baselines/reference/typeParameterExtendsPrimitive.types +++ b/tests/baselines/reference/typeParameterExtendsPrimitive.types @@ -4,7 +4,7 @@ // #14473 function f() { >f : () => number -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^^ var t: T; >t : T @@ -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 00620d7b53115..ffd0a747afe7d 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 619d6534f8fbb..f6ef385232376 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/typeParameterIndirectlyConstrainedToItself.types b/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.types index 9ab2b3e6873b6..8b04e72a28b43 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/typeParameterOrderReversal.types b/tests/baselines/reference/typeParameterOrderReversal.types index 4a178d096a2b9..5b9edd32c97c0 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 7574975dcef70..35b67664017f3 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 f3cc89b11177f..3f5806284aa80 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 74281789bf42a..948c4867d1078 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 @@ -14,11 +14,11 @@ function foo(x: T, y: U) { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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 @@ -49,11 +49,11 @@ function foo2(x: T, y: U) { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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 @@ -86,13 +86,13 @@ var f = function (x: T, y: U) { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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 @@ -125,15 +125,15 @@ var f2 = function (x: T, y: U) { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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 @@ -166,13 +166,13 @@ var f3 = (x: T, y: U) => { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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 @@ -205,13 +205,13 @@ var f4 = (x: T, y: U) => { function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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 438bf2f9f5244..231984f659baf 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 1fea8e727afce..bec452bc8e20b 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 @@ -58,11 +58,11 @@ function foo(x: T, y: U): V { // error function bar(): X { // error >bar : () => X -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ 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 @@ -93,11 +93,11 @@ function foo2(x: T, y: U): W { // error function bar(): Y { // error >bar : () => Y -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^ 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 @@ -130,7 +130,7 @@ var f3 = (x: T, y: U) => { function bar(r: X, s: Y) { // error >bar : (r: X, s: Y) => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^ ^^ ^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^ ^^ ^^ ^^ ^^^^^^^^^ >r : X > : ^ >s : Y @@ -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 @@ -173,13 +173,13 @@ var f4 = (x: V, y: X) => { // error function bar() { >bar : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ 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/typeParametersAreIdenticalToThemselves.types b/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types index 4c2b8d775ac29..b897ad71656bb 100644 --- a/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types +++ b/tests/baselines/reference/typeParametersAreIdenticalToThemselves.types @@ -149,19 +149,19 @@ class C { 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 > : ^ } @@ -274,13 +274,13 @@ interface I { 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 > : ^ } diff --git a/tests/baselines/reference/typeParametersShouldNotBeEqual2.types b/tests/baselines/reference/typeParametersShouldNotBeEqual2.types index 1dd1fb0ded432..da7c03932120f 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 284ed32531363..7d9075ec04813 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 f46439c8ffeca..bfc78e153ff1c 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 > : ^^^^^^^^^^^^^^^ @@ -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 diff --git a/tests/baselines/reference/typePredicatesCanNarrowByDiscriminant.types b/tests/baselines/reference/typePredicatesCanNarrowByDiscriminant.types index e2f824b1d7c71..db6a23340b3eb 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/typeSatisfaction_errorLocations1.types b/tests/baselines/reference/typeSatisfaction_errorLocations1.types index 4a237c6de893f..28d786882c7ab 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/typeVariableConstraintIntersections.types b/tests/baselines/reference/typeVariableConstraintIntersections.types index fd51670c14699..32e839d1fbe39 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 > : ^ @@ -331,8 +331,8 @@ const optionHandlers: OptionHandlers = { }; function handleOption(option: Options & { kind: K }): string { ->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 f77dd38c85db5..354545a5377af 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 > : ^ @@ -82,8 +82,8 @@ function fn(o: T) { } function fn2(o: T) { ->fn2 : >(o: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>fn2 : (o: T) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >o : T > : ^ diff --git a/tests/baselines/reference/typeVariableTypeGuards.types b/tests/baselines/reference/typeVariableTypeGuards.types index a70201a4ae9a2..fdb6f23951fe6 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/typeofImportInstantiationExpression.types b/tests/baselines/reference/typeofImportInstantiationExpression.types index 6a7bf3973af27..84dd63de703b9 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/undefinedAssignableToEveryType.types b/tests/baselines/reference/undefinedAssignableToEveryType.types index 3bbb053e26807..eb12eaf6ab553 100644 --- a/tests/baselines/reference/undefinedAssignableToEveryType.types +++ b/tests/baselines/reference/undefinedAssignableToEveryType.types @@ -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/underscoreMapFirst.types b/tests/baselines/reference/underscoreMapFirst.types index 3ef7d8fbb5433..f68fbda3f1b27 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 @@ -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" diff --git a/tests/baselines/reference/underscoreTest1.types b/tests/baselines/reference/underscoreTest1.types index 4bc2ad387216a..b6aab53703021 100644 --- a/tests/baselines/reference/underscoreTest1.types +++ b/tests/baselines/reference/underscoreTest1.types @@ -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; } @@ -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[] @@ -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 @@ -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 @@ -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 diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 4b3d00d45f6bf..d1eb2c20d73da 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -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 diff --git a/tests/baselines/reference/unionAndIntersectionInference3.types b/tests/baselines/reference/unionAndIntersectionInference3.types index 4af1ee052624d..268ff97ae9a0a 100644 --- a/tests/baselines/reference/unionAndIntersectionInference3.types +++ b/tests/baselines/reference/unionAndIntersectionInference3.types @@ -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 > : ^^^^^^^^^^^^^^^^^^^^ diff --git a/tests/baselines/reference/unionOfClassCalls.types b/tests/baselines/reference/unionOfClassCalls.types index f8df0e6be66cd..b610b246fda8f 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 > : ^ } diff --git a/tests/baselines/reference/unionOfEnumInference.types b/tests/baselines/reference/unionOfEnumInference.types index 2aa0a2d20d566..86b82431ce7b7 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 2d25941403424..cb940ee0da80f 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/unionWithIndexSignature.types b/tests/baselines/reference/unionWithIndexSignature.types index e2c57097077a4..ad091daa1412f 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/uniqueSymbolsErrors.types b/tests/baselines/reference/uniqueSymbolsErrors.types index 907120ed39448..4be8171e3f6a7 100644 --- a/tests/baselines/reference/uniqueSymbolsErrors.types +++ b/tests/baselines/reference/uniqueSymbolsErrors.types @@ -45,8 +45,8 @@ declare function invalidTypePredicate(n: any): n is unique symbol; > : ^^^ declare function invalidTypeParameterConstraint(): void; ->invalidTypeParameterConstraint : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>invalidTypeParameterConstraint : () => void +> : ^^^^^^^^^^^ ^^^^^^^ declare function invalidTypeParameterDefault(): void; >invalidTypeParameterDefault : () => void @@ -98,8 +98,8 @@ class InvalidClass { > : ^^^ invalidTypeParameterConstraint(): void { return; } ->invalidTypeParameterConstraint : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>invalidTypeParameterConstraint : () => void +> : ^^^^^^^^^^^ ^^^^^^^ invalidTypeParameterDefault(): void { return; } >invalidTypeParameterDefault : () => void @@ -148,8 +148,8 @@ class InvalidClass { > : ^^^ static invalidStaticTypeParameterConstraint(): void { return; } ->invalidStaticTypeParameterConstraint : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>invalidStaticTypeParameterConstraint : () => void +> : ^^^^^^^^^^^ ^^^^^^^ static invalidStaticTypeParameterDefault(): void { return; } >invalidStaticTypeParameterDefault : () => void @@ -201,8 +201,8 @@ interface InvalidInterface { > : ^^^ invalidTypeParameterConstraint(): void; ->invalidTypeParameterConstraint : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>invalidTypeParameterConstraint : () => void +> : ^^^^^^^^^^^ ^^^^^^^ invalidTypeParameterDefault(): void; >invalidTypeParameterDefault : () => void @@ -247,8 +247,8 @@ type InvalidTypeLiteral = { > : ^^^ invalidTypeParameterConstraint(): void; ->invalidTypeParameterConstraint : () => void -> : ^^^^^^^^^^^^^^^^^^^^^^^^ +>invalidTypeParameterConstraint : () => void +> : ^^^^^^^^^^^ ^^^^^^^ invalidTypeParameterDefault(): void; >invalidTypeParameterDefault : () => void diff --git a/tests/baselines/reference/unknownControlFlow.types b/tests/baselines/reference/unknownControlFlow.types index 12a20e64e1ea3..13ee45cd74052 100644 --- a/tests/baselines/reference/unknownControlFlow.types +++ b/tests/baselines/reference/unknownControlFlow.types @@ -162,7 +162,7 @@ function f11(x: T) { function f12(x: T) { >f12 : (x: T) => void -> : ^ ^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -373,7 +373,7 @@ function f21(x: T) { function f22(x: T) { >f22 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -600,7 +600,7 @@ function f31(x: T) { function f32(x: T) { >f32 : (x: T) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >x : T > : ^ @@ -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 6db5b8892ece6..8ed95106bf93a 100644 --- a/tests/baselines/reference/unknownLikeUnionObjectFlagsNotPropagated.types +++ b/tests/baselines/reference/unknownLikeUnionObjectFlagsNotPropagated.types @@ -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/unknownType1.types b/tests/baselines/reference/unknownType1.types index a4d49efea4dd9..cd688aefcbf4c 100644 --- a/tests/baselines/reference/unknownType1.types +++ b/tests/baselines/reference/unknownType1.types @@ -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 8ef5e9c70086f..e846958a24387 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 @@ -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/variadicTuples1.types b/tests/baselines/reference/variadicTuples1.types index 1152313972631..d70904ae527e2 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 d12bef827a7a9..36f5d6e132cc5 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 @@ -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[] @@ -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 2569ae49da67a..6b01970b1e938 100644 --- a/tests/baselines/reference/varianceAnnotations.types +++ b/tests/baselines/reference/varianceAnnotations.types @@ -429,7 +429,7 @@ interface ActionObject { declare function createMachine(action: ActionObject): StateNode; >createMachine : (action: ActionObject) => StateNode -> : ^ ^^^^^^^^^^^^^^^^^ ^^^^^ ^^ ^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^ >type : string > : ^^^^^^ >action : ActionObject @@ -447,7 +447,7 @@ const machine = createMachine({} as any); >createMachine({} as any) : StateNode > : ^^^^^^^^^^^^^^^^^^^ >createMachine : (action: ActionObject) => StateNode -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^^^ >{} as any : any > : ^^^ >{} : {} @@ -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 diff --git a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types index 91e1e69673c90..00203961e1cea 100644 --- a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types +++ b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign.types @@ -204,16 +204,16 @@ const tmp1: MyInfo = null!; > : ^^^^^ function tmp2(n: N) {} ->tmp2 : >(n: N) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>tmp2 : (n: N) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : N > : ^ tmp2(tmp1); // uncommenting this line removes a type error from a completely unrelated line ?? >tmp2(tmp1) : void > : ^^^^ ->tmp2 : >(n: N) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>tmp2 : (n: N) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >tmp1 : MyInfo > : ^^^^^^ diff --git a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types index fcc2d4af9c4d4..31a8c4d6ecd1d 100644 --- a/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types +++ b/tests/baselines/reference/varianceProblingAndZeroOrderIndexSignatureRelationsAlign2.types @@ -204,8 +204,8 @@ const tmp1: MyInfo = null!; > : ^^^^^ function tmp2(n: N) {} ->tmp2 : >(n: N) => void -> : ^ ^^^^^^^^^^^^^^^^^^^^^^^^^ ^^ ^^^^^^^^^ +>tmp2 : (n: N) => void +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^^^^ >n : N > : ^ diff --git a/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types b/tests/baselines/reference/varianceRepeatedlyPropegatesWithUnreliableFlag.types index f7aa8104741a9..b2ed64ae5b765 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/voidReturnIndexUnionInference.types b/tests/baselines/reference/voidReturnIndexUnionInference.types index c82ead4d5fb27..09c897b82ae2a 100644 --- a/tests/baselines/reference/voidReturnIndexUnionInference.types +++ b/tests/baselines/reference/voidReturnIndexUnionInference.types @@ -52,7 +52,7 @@ interface Props { function bad

(props: Readonly

) { >bad :

(props: Readonly

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

> : ^^^^^^^^^^^ diff --git a/tests/baselines/reference/wideningTuples1.types b/tests/baselines/reference/wideningTuples1.types index afcdb7573391b..95f84833ef432 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/wrappedAndRecursiveConstraints.types b/tests/baselines/reference/wrappedAndRecursiveConstraints.types index a238efd378762..0e88675e39040 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 96a4961ad845c..b5689bd187095 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 41f8567be8594..46b697b3b8fb6 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 -> : ^ ^^^^^^^^^^^^ ^^ ^^^^^^ +> : ^ ^^^^^^^^^ ^^ ^^ ^^^^^^ } } diff --git a/tests/cases/transpile/declarationTypeParameterConstraint.ts b/tests/cases/transpile/declarationTypeParameterConstraint.ts new file mode 100644 index 0000000000000..413d484699f6d --- /dev/null +++ b/tests/cases/transpile/declarationTypeParameterConstraint.ts @@ -0,0 +1,8 @@ +// @declaration: true +import { type In, type Out, type Base } from "./a"; + +export const object = { + doThing(_t: T, _in: In[T]): Out[T] { + return; + }, +}; \ No newline at end of file