diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 43cf8f622c68b..a557c72f10be7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -6623,8 +6623,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } if ( context.flags & NodeBuilderFlags.GenerateNamesForShadowedTypeParams && - type.flags & TypeFlags.TypeParameter && - !isTypeSymbolAccessible(type.symbol, context.enclosingDeclaration) + type.flags & TypeFlags.TypeParameter ) { const name = typeParameterToName(type, context); context.approximateLength += idText(name).length; @@ -7527,7 +7526,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { && signature.declaration && signature.declaration !== context.enclosingDeclaration && !isInJSFile(signature.declaration) - && some(expandedParams) + && (some(expandedParams) || some(signature.typeParameters)) ) { // As a performance optimization, reuse the same fake scope within this chain. // This is especially needed when we are working on an excessively deep type; @@ -7545,32 +7544,64 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // Note that we only check the most immediate enclosingDeclaration; the only place we // could potentially add another fake scope into the chain is right here, so we don't // traverse all ancestors. - const existingFakeScope = getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration ? context.enclosingDeclaration : undefined; - Debug.assertOptionalNode(existingFakeScope, isBlock); + pushFakeScope( + "params", + add => { + for (const param of expandedParams) { + add(param.escapedName, param); + } + }, + ); - const locals = existingFakeScope?.locals ?? createSymbolTable(); + if (context.flags & NodeBuilderFlags.GenerateNamesForShadowedTypeParams) { + // TODO(jakebailey): should this instead be done before walking type parameters? + pushFakeScope( + "typeParams", + add => { + for (const typeParam of signature.typeParameters ?? emptyArray) { + const typeParamName = typeParameterToName(typeParam, context).escapedText; + add(typeParamName, typeParam.symbol); + } + }, + ); + } - let newLocals: __String[] | undefined; - for (const param of expandedParams) { - if (!locals.has(param.escapedName)) { - newLocals = append(newLocals, param.escapedName); - locals.set(param.escapedName, param); + function pushFakeScope(kind: "params" | "typeParams", addAll: (addSymbol: (name: __String, symbol: Symbol) => void) => void) { + // We only ever need to look two declarations upward. + Debug.assert(context.enclosingDeclaration); + let existingFakeScope: Node | undefined; + if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind) { + existingFakeScope = context.enclosingDeclaration; } - } + else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind) { + existingFakeScope = context.enclosingDeclaration.parent; + } + Debug.assertOptionalNode(existingFakeScope, isBlock); - if (newLocals) { - function removeNewLocals() { + const locals = existingFakeScope?.locals ?? createSymbolTable(); + let newLocals: __String[] | undefined; + addAll((name, symbol) => { + if (!locals.has(name)) { + newLocals = append(newLocals, name); + locals.set(name, symbol); + } + }); + if (!newLocals) return; + + const oldCleanup = cleanup; + function undo() { forEach(newLocals, s => locals.delete(s)); + oldCleanup?.(); } if (existingFakeScope) { - cleanup = removeNewLocals; + cleanup = undo; } else { // Use a Block for this; the type of the node doesn't matter so long as it // has locals, and this is cheaper/easier than using a function-ish Node. const fakeScope = parseNodeFactory.createBlock(emptyArray); - getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = true; + getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind; fakeScope.locals = locals; const saveEnclosingDeclaration = context.enclosingDeclaration; @@ -7579,7 +7610,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { cleanup = () => { context.enclosingDeclaration = saveEnclosingDeclaration; - removeNewLocals(); + undo(); }; } } @@ -8127,13 +8158,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } } - function typeParameterShadowsNameInScope(escapedName: __String, context: NodeBuilderContext, type: TypeParameter) { + function typeParameterShadowsOtherTypeParameterInScope(escapedName: __String, context: NodeBuilderContext, type: TypeParameter) { const result = resolveName(context.enclosingDeclaration, escapedName, SymbolFlags.Type, /*nameNotFoundMessage*/ undefined, escapedName, /*isUse*/ false); - if (result) { - if (result.flags & SymbolFlags.TypeParameter && result === type.symbol) { - return false; - } - return true; + if (result && result.flags & SymbolFlags.TypeParameter) { + return result !== type.symbol; } return false; } @@ -8153,7 +8181,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { const rawtext = result.escapedText as string; let i = context.typeParameterNamesByTextNextNameCount?.get(rawtext) || 0; let text = rawtext; - while (context.typeParameterNamesByText?.has(text) || typeParameterShadowsNameInScope(text as __String, context, type)) { + while (context.typeParameterNamesByText?.has(text) || typeParameterShadowsOtherTypeParameterInScope(text as __String, context, type)) { i++; text = `${rawtext}_${i}`; } @@ -8166,7 +8194,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { // `i` we've used thus far, to save work later (context.typeParameterNamesByTextNextNameCount ||= new Map()).set(rawtext, i); (context.typeParameterNames ||= new Map()).set(getTypeId(type), result); - (context.typeParameterNamesByText ||= new Set()).add(rawtext); + (context.typeParameterNamesByText ||= new Set()).add(text); } return result; } @@ -8345,7 +8373,10 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration: Node) { - return getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration ? enclosingDeclaration.parent : enclosingDeclaration; + while (getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration) { + enclosingDeclaration = enclosingDeclaration.parent; + } + return enclosingDeclaration; } /** @@ -8425,7 +8456,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker { } if (isIdentifier(node)) { const type = getDeclaredTypeOfSymbol(sym); - const name = sym.flags & SymbolFlags.TypeParameter && !isTypeSymbolAccessible(type.symbol, context.enclosingDeclaration) ? typeParameterToName(type, context) : factory.cloneNode(node); + const name = sym.flags & SymbolFlags.TypeParameter ? typeParameterToName(type, context) : factory.cloneNode(node); name.symbol = sym; // for quickinfo, which uses identifier symbol information return { introducesError, node: setEmitFlags(setOriginalNode(name, node), EmitFlags.NoAsciiEscaping) }; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b4dc259ea902f..1926ef4cd7795 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -6047,7 +6047,7 @@ export interface NodeLinks { decoratorSignature?: Signature; // Signature for decorator as if invoked by the runtime. spreadIndices?: { first: number | undefined, last: number | undefined }; // Indices of first and last spread elements in array literal parameterInitializerContainsUndefined?: boolean; // True if this is a parameter declaration whose type annotation contains "undefined". - fakeScopeForSignatureDeclaration?: boolean; // True if this is a fake scope injected into an enclosing declaration chain. + fakeScopeForSignatureDeclaration?: "params" | "typeParams"; // If present, this is a fake scope injected into an enclosing declaration chain. assertionExpressionType?: Type; // Cached type of the expression of a type assertion } diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures.types b/tests/baselines/reference/assignmentCompatWithCallSignatures.types index 645e052f4f485..7dd4861124743 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures.types @@ -56,9 +56,9 @@ a = a2; >a2 : (x: number) => string t = (x: T) => 1; ->t = (x: T) => 1 : (x: T_1) => number +>t = (x: T) => 1 : (x: T) => number >t : T ->(x: T) => 1 : (x: T_1) => number +>(x: T) => 1 : (x: T) => number >x : T >1 : 1 @@ -76,9 +76,9 @@ t = function (x: number) { return ''; } >'' : "" a = (x: T) => 1; ->a = (x: T) => 1 : (x: T_1) => number +>a = (x: T) => 1 : (x: T) => number >a : (x: number) => void ->(x: T) => 1 : (x: T_1) => number +>(x: T) => 1 : (x: T) => number >x : T >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures2.types b/tests/baselines/reference/assignmentCompatWithCallSignatures2.types index 3d2c5fe0f4c1d..345e81daaa362 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures2.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures2.types @@ -68,11 +68,11 @@ t = { f: () => 1 }; >1 : 1 t = { f: (x:T) => 1 }; ->t = { f: (x:T) => 1 } : { f: (x: T_1) => number; } +>t = { f: (x:T) => 1 } : { f: (x: T) => number; } >t : T ->{ f: (x:T) => 1 } : { f: (x: T_1) => number; } ->f : (x: T_1) => number ->(x:T) => 1 : (x: T_1) => number +>{ f: (x:T) => 1 } : { f: (x: T) => number; } +>f : (x: T) => number +>(x:T) => 1 : (x: T) => number >x : T >1 : 1 @@ -102,11 +102,11 @@ a = { f: () => 1 } >1 : 1 a = { f: (x: T) => 1 }; ->a = { f: (x: T) => 1 } : { f: (x: T_1) => number; } +>a = { f: (x: T) => 1 } : { f: (x: T) => number; } >a : { f(x: number): void; } ->{ f: (x: T) => 1 } : { f: (x: T_1) => number; } ->f : (x: T_1) => number ->(x: T) => 1 : (x: T_1) => number +>{ f: (x: T) => 1 } : { f: (x: T) => number; } +>f : (x: T) => number +>(x: T) => 1 : (x: T) => number >x : T >1 : 1 diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types index 4c11234186aff..c73ecb914c3bf 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures3.types @@ -355,7 +355,7 @@ b13 = a13; // ok >a13 : (x: Base[], y: Derived[]) => Derived[] var b14: (x: { a: T; b: T }) => T; ->b14 : (x: { a: T; b: T; }) => T +>b14 : (x: { a: T; b: T;}) => T >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types index 7dd453a01a97b..8cb1642ff718e 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures4.types @@ -224,7 +224,7 @@ module Errors { >a12 : (x: Base[], y: Derived2[]) => Derived[] var b15: (x: { a: T; b: T }) => T; ->b15 : (x: { a: T; b: T; }) => T +>b15 : (x: { a: T; b: T;}) => T >x : { a: T; b: T; } >a : T >b : T @@ -240,7 +240,7 @@ module Errors { >a15 : (x: { a: string; b: number; }) => number var b15a: (x: { a: T; b: T }) => number; ->b15a : (x: { a: T; b: T; }) => number +>b15a : (x: { a: T; b: T;}) => number >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types index 3ec7b4b221f7a..09484fb912718 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures5.types @@ -50,7 +50,7 @@ var a6: (x: (arg: T) => Derived) => T; >arg : T var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -58,13 +58,13 @@ var a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; >bar : T var a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[] +>a15 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T var a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[] +>a16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -194,7 +194,7 @@ b6 = a6; // ok >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 +>b11 : (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -212,7 +212,7 @@ b11 = a11; // ok >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b15: (x: { a: U; b: V; }) => U[]; ->b15 : (x: { a: U; b: V; }) => U[] +>b15 : (x: { a: U; b: V;}) => U[] >x : { a: U; b: V; } >a : U >b : V @@ -228,7 +228,7 @@ b15 = a15; // ok >a15 : (x: { a: T; b: T; }) => T[] var b16: (x: { a: T; b: T }) => T[]; ->b16 : (x: { a: T; b: T; }) => T[] +>b16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types index 23f7daaf22374..bf438aba65cd1 100644 --- a/tests/baselines/reference/assignmentCompatWithCallSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithCallSignatures6.types @@ -51,7 +51,7 @@ interface A { >arg : T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -59,13 +59,13 @@ interface A { >bar : T a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[] +>a15 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[] +>a16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -167,7 +167,7 @@ b5 = x.a5; >a5 : (x: (arg: T) => U) => T var b11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->b11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>b11 : (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -189,7 +189,7 @@ b11 = x.a11; >a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b16: (x: { a: T; b: T }) => T[]; ->b16 : (x: { a: T; b: T; }) => T[] +>b16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types index beeb022033c73..8bf8a3a79f3d8 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures3.types @@ -355,7 +355,7 @@ b13 = a13; // ok >a13 : new (x: Base[], y: Derived[]) => Derived[] var b14: new (x: { a: T; b: T }) => T; ->b14 : new (x: { a: T; b: T; }) => T +>b14 : new (x: { a: T; b: T;}) => T >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types index f6302f5cd1a36..e854003d55ecc 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures4.types @@ -224,7 +224,7 @@ module Errors { >a12 : new (x: Base[], y: Derived2[]) => Derived[] var b15: new (x: { a: T; b: T }) => T; ->b15 : new (x: { a: T; b: T; }) => T +>b15 : new (x: { a: T; b: T;}) => T >x : { a: T; b: T; } >a : T >b : T @@ -240,7 +240,7 @@ module Errors { >a15 : new (x: { a: string; b: number; }) => number var b15a: new (x: { a: T; b: T }) => number; ->b15a : new (x: { a: T; b: T; }) => number +>b15a : new (x: { a: T; b: T;}) => number >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types index 6e208fadc12a1..bdc3a654cf402 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures5.types @@ -50,7 +50,7 @@ var a6: new (x: new (arg: T) => Derived) => T; >arg : T var a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -58,13 +58,13 @@ var a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; >bar : T var a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[] +>a15 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T var a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -194,7 +194,7 @@ b6 = a6; // ok >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 +>b11 : new (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -212,7 +212,7 @@ b11 = a11; // ok >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b15: new (x: { a: U; b: V; }) => U[]; ->b15 : new (x: { a: U; b: V; }) => U[] +>b15 : new (x: { a: U; b: V;}) => U[] >x : { a: U; b: V; } >a : U >b : V @@ -228,7 +228,7 @@ b15 = a15; // ok >a15 : new (x: { a: T; b: T; }) => T[] var b16: new (x: { a: T; b: T }) => T[]; ->b16 : new (x: { a: T; b: T; }) => T[] +>b16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types index 5c1b806659a56..34d3518a3b1d3 100644 --- a/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types +++ b/tests/baselines/reference/assignmentCompatWithConstructSignatures6.types @@ -51,7 +51,7 @@ interface A { >arg : T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -59,13 +59,13 @@ interface A { >bar : T a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[] +>a15 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -167,7 +167,7 @@ b5 = x.a5; >a5 : new (x: (arg: T) => U) => T var b11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->b11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>b11 : new (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -189,7 +189,7 @@ b11 = x.a11; >a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base var b16: new (x: { a: T; b: T }) => T[]; ->b16 : new (x: { a: T; b: T; }) => T[] +>b16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types b/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types index 55c886c9f7d1b..cde481af55d4a 100644 --- a/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types +++ b/tests/baselines/reference/asyncFunctionsAndStrictNullChecks.types @@ -13,7 +13,7 @@ declare namespace Windows.Foundation { >progress : any then(success?: (value: TResult) => IPromise, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; ->then : { (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => U) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_3) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_4) | undefined, error?: ((error: any) => U_4) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; } +>then : { (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => U) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_2) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_3) | undefined, error?: ((error: any) => U_3) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; } >success : ((value: TResult) => IPromise) | undefined >value : TResult >error : ((error: any) => U) | undefined @@ -22,7 +22,7 @@ declare namespace Windows.Foundation { >progress : any then(success?: (value: TResult) => U, error?: (error: any) => IPromise, progress?: (progress: any) => void): IPromise; ->then : { (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => U_2) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_4) | undefined, error?: ((error: any) => U_4) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; } +>then : { (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => U_2) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_3) | undefined, error?: ((error: any) => U_3) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; } >success : ((value: TResult) => U) | undefined >value : TResult >error : ((error: any) => IPromise) | undefined @@ -31,7 +31,7 @@ declare namespace Windows.Foundation { >progress : any then(success?: (value: TResult) => U, error?: (error: any) => U, progress?: (progress: any) => void): IPromise; ->then : { (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => U_2) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_3) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U) | undefined, error?: ((error: any) => U) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; } +>then : { (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => IPromise) | undefined, error?: ((error: any) => U_2) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U_3) | undefined, error?: ((error: any) => IPromise) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; (success?: ((value: TResult) => U) | undefined, error?: ((error: any) => U) | undefined, progress?: ((progress: any) => void) | undefined): IPromise; } >success : ((value: TResult) => U) | undefined >value : TResult >error : ((error: any) => U) | undefined diff --git a/tests/baselines/reference/awaitedTypeJQuery.types b/tests/baselines/reference/awaitedTypeJQuery.types index 8140863465296..89975b6d642db 100644 --- a/tests/baselines/reference/awaitedTypeJQuery.types +++ b/tests/baselines/reference/awaitedTypeJQuery.types @@ -58,7 +58,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_3 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_4 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } +>then : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } BRF = never, BJF = never, BNF = never, CRF = never, CJF = never, CNF = never, @@ -94,7 +94,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } +>then : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase | Thenable | ANP): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } BRP = never, BJP = never, BNP = never, CRP = never, CJP = never, CNP = never, @@ -119,7 +119,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_4 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_3 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } +>then : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } BRD = never, BJD = never, BND = never, CRD = never, CJD = never, CND = never, @@ -155,7 +155,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } +>then : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase | Thenable | ARF, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter?: null, progressFilter?: null): PromiseBase; } BRF = never, BJF = never, BNF = never, CRF = never, CJF = never, CNF = never, @@ -180,7 +180,7 @@ interface PromiseBase; thenthen : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter?: null, progressFilter?: null): PromiseBase; } +>then : { (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_1 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_1 | PromiseBase | Thenable, progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_1 | PromiseBase | Thenable): PromiseBase; (doneFilter: null, failFilter: null, progressFilter?: (t: TN, u: UN, v: VN, ...s: SN[]) => ANP_2 | PromiseBase | Thenable): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => ARD_2 | PromiseBase | Thenable, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_2 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: null, failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => ARF_3 | PromiseBase | Thenable, progressFilter?: null): PromiseBase; (doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase | Thenable | ARD, failFilter?: null, progressFilter?: null): PromiseBase; } BRD = never, BJD = never, BND = never, CRD = never, CJD = never, CND = never, diff --git a/tests/baselines/reference/bluebirdStaticThis.types b/tests/baselines/reference/bluebirdStaticThis.types index d62f40ea9d4d8..f9a7bdbfdf637 100644 --- a/tests/baselines/reference/bluebirdStaticThis.types +++ b/tests/baselines/reference/bluebirdStaticThis.types @@ -27,7 +27,7 @@ export declare class Promise implements Promise.Thenable { >ctx : any static try(dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; ->try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } +>try : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } >dit : typeof Promise >Promise : typeof Promise >fn : () => R @@ -44,7 +44,7 @@ export declare class Promise implements Promise.Thenable { >ctx : any static attempt(dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; ->attempt : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } +>attempt : { (dit: typeof Promise, fn: () => Promise.Thenable, args?: any[], ctx?: any): Promise; (dit: typeof Promise, fn: () => R, args?: any[], ctx?: any): Promise; } >dit : typeof Promise >Promise : typeof Promise >fn : () => R @@ -70,7 +70,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static resolve(dit: typeof Promise, value: R): Promise; ->resolve : { (dit: typeof Promise): Promise; (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } +>resolve : { (dit: typeof Promise): Promise; (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } >dit : typeof Promise >Promise : typeof Promise >value : R @@ -101,7 +101,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static cast(dit: typeof Promise, value: R): Promise; ->cast : { (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } +>cast : { (dit: typeof Promise, value: Promise.Thenable): Promise; (dit: typeof Promise, value: R): Promise; } >dit : typeof Promise >Promise : typeof Promise >value : R @@ -132,7 +132,7 @@ export declare class Promise implements Promise.Thenable { >ms : number static delay(dit: typeof Promise, value: R, ms: number): Promise; ->delay : { (dit: typeof Promise, value: Promise.Thenable, ms: number): Promise; (dit: typeof Promise, value: R, ms: number): Promise; (dit: typeof Promise, ms: number): Promise; } +>delay : { (dit: typeof Promise, value: Promise.Thenable, ms: number): Promise; (dit: typeof Promise, value: R, ms: number): Promise; (dit: typeof Promise, ms: number): Promise; } >dit : typeof Promise >Promise : typeof Promise >value : R @@ -191,21 +191,21 @@ export declare class Promise implements Promise.Thenable { >Promise : any static all(dit: typeof Promise, values: Promise.Thenable): Promise; ->all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_4[]): Promise; } +>all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_3[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable >Promise : any static all(dit: typeof Promise, values: Promise.Thenable[]): Promise; ->all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_4[]): Promise; } +>all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_3[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] >Promise : any static all(dit: typeof Promise, values: R[]): Promise; ->all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>all : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -232,7 +232,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static settle(dit: typeof Promise, values: Promise.Thenable): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_4[]): Promise[]>; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_3[]): Promise[]>; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -240,7 +240,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static settle(dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_4[]): Promise[]>; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R_3[]): Promise[]>; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -248,7 +248,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static settle(dit: typeof Promise, values: R[]): Promise[]>; ->settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R[]): Promise[]>; } +>settle : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise[]>; (dit: typeof Promise, values: Promise.Thenable): Promise[]>; (dit: typeof Promise, values: Promise.Thenable[]): Promise[]>; (dit: typeof Promise, values: R[]): Promise[]>; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -263,21 +263,21 @@ export declare class Promise implements Promise.Thenable { >Promise : any static any(dit: typeof Promise, values: Promise.Thenable): Promise; ->any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_4[]): Promise; } +>any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_3[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable >Promise : any static any(dit: typeof Promise, values: Promise.Thenable[]): Promise; ->any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_4[]): Promise; } +>any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_3[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] >Promise : any static any(dit: typeof Promise, values: R[]): Promise; ->any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>any : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -291,21 +291,21 @@ export declare class Promise implements Promise.Thenable { >Promise : any static race(dit: typeof Promise, values: Promise.Thenable): Promise; ->race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_4[]): Promise; } +>race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_3[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable >Promise : any static race(dit: typeof Promise, values: Promise.Thenable[]): Promise; ->race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_4[]): Promise; } +>race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R_3[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] >Promise : any static race(dit: typeof Promise, values: R[]): Promise; ->race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } +>race : { (dit: typeof Promise, values: Promise.Thenable[]>): Promise; (dit: typeof Promise, values: Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]): Promise; (dit: typeof Promise, values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -320,7 +320,7 @@ export declare class Promise implements Promise.Thenable { >count : number static some(dit: typeof Promise, values: Promise.Thenable, count: number): Promise; ->some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_4[], count: number): Promise; } +>some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_3[], count: number): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -328,7 +328,7 @@ export declare class Promise implements Promise.Thenable { >count : number static some(dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; ->some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_4[], count: number): Promise; } +>some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R_3[], count: number): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -336,7 +336,7 @@ export declare class Promise implements Promise.Thenable { >count : number static some(dit: typeof Promise, values: R[], count: number): Promise; ->some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R[], count: number): Promise; } +>some : { (dit: typeof Promise, values: Promise.Thenable[]>, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable, count: number): Promise; (dit: typeof Promise, values: Promise.Thenable[], count: number): Promise; (dit: typeof Promise, values: R[], count: number): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -350,7 +350,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static join(dit: typeof Promise, ...values: R[]): Promise; ->join : { (dit: typeof Promise, ...values: Promise.Thenable[]): Promise; (dit: typeof Promise, ...values: R[]): Promise; } +>join : { (dit: typeof Promise, ...values: Promise.Thenable[]): Promise; (dit: typeof Promise, ...values: R[]): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -369,7 +369,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static map(dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => U): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], mapper: (item: R_8, index: number, arrayLength: number) => U_8): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_2, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => U_3): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_4, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => U_5): Promise; (dit: typeof Promise, values: R_6[], mapper: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[]> @@ -381,7 +381,7 @@ export declare class Promise implements Promise.Thenable { >arrayLength : number static map(dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], mapper: (item: R_8, index: number, arrayLength: number) => U_8): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => U_3): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_4, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => U_5): Promise; (dit: typeof Promise, values: R_6[], mapper: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -393,7 +393,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static map(dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => U): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], mapper: (item: R_8, index: number, arrayLength: number) => U_8): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_4, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => U_5): Promise; (dit: typeof Promise, values: R_6[], mapper: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -404,7 +404,7 @@ export declare class Promise implements Promise.Thenable { >arrayLength : number static map(dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], mapper: (item: R_8, index: number, arrayLength: number) => U_8): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => U_5): Promise; (dit: typeof Promise, values: R_6[], mapper: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -416,7 +416,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static map(dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], mapper: (item: R_8, index: number, arrayLength: number) => U_8): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; (dit: typeof Promise, values: R_6[], mapper: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -427,7 +427,7 @@ export declare class Promise implements Promise.Thenable { >arrayLength : number static map(dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], mapper: (item: R_8, index: number, arrayLength: number) => U_8): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -438,7 +438,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static map(dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; ->map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; } +>map : { (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, mapper: (item: R_2, index: number, arrayLength: number) => U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, mapper: (item: R_4, index: number, arrayLength: number) => U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], mapper: (item: R_6, index: number, arrayLength: number) => U_6): Promise; (dit: typeof Promise, values: R_7[], mapper: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R[], mapper: (item: R, index: number, arrayLength: number) => U): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -463,7 +463,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R_8[], reducer: (total: U_8, current: R_8, index: number, arrayLength: number) => U_8, initialValue?: U_8): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => U_3, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => U_5, initialValue?: U_5): Promise; (dit: typeof Promise, values: R_6[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => U_7, initialValue?: U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[]> @@ -477,7 +477,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R_8[], reducer: (total: U_8, current: R_8, index: number, arrayLength: number) => U_8, initialValue?: U_8): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => U_3, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => U_5, initialValue?: U_5): Promise; (dit: typeof Promise, values: R_6[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => U_7, initialValue?: U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -491,7 +491,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R_8[], reducer: (total: U_8, current: R_8, index: number, arrayLength: number) => U_8, initialValue?: U_8): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => U_5, initialValue?: U_5): Promise; (dit: typeof Promise, values: R_6[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => U_7, initialValue?: U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -504,7 +504,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R_8[], reducer: (total: U_8, current: R_8, index: number, arrayLength: number) => U_8, initialValue?: U_8): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => U_5, initialValue?: U_5): Promise; (dit: typeof Promise, values: R_6[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => U_7, initialValue?: U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -518,7 +518,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R_8[], reducer: (total: U_8, current: R_8, index: number, arrayLength: number) => U_8, initialValue?: U_8): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; (dit: typeof Promise, values: R_6[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => U_7, initialValue?: U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -531,7 +531,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: R_8[], reducer: (total: U_8, current: R_8, index: number, arrayLength: number) => U_8, initialValue?: U_8): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => U_7, initialValue?: U_7): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -544,7 +544,7 @@ export declare class Promise implements Promise.Thenable { >initialValue : U static reduce(dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; ->reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; } +>reduce : { (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_1, current: R_1, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_1): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, reducer: (total: U_2, current: R_2, index: number, arrayLength: number) => U_2, initialValue?: U_2): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_3, current: R_3, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_3): Promise; (dit: typeof Promise, values: Promise.Thenable, reducer: (total: U_4, current: R_4, index: number, arrayLength: number) => U_4, initialValue?: U_4): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_5, current: R_5, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_5): Promise; (dit: typeof Promise, values: Promise.Thenable[], reducer: (total: U_6, current: R_6, index: number, arrayLength: number) => U_6, initialValue?: U_6): Promise; (dit: typeof Promise, values: R_7[], reducer: (total: U_7, current: R_7, index: number, arrayLength: number) => Promise.Thenable, initialValue?: U_7): Promise; (dit: typeof Promise, values: R[], reducer: (total: U, current: R, index: number, arrayLength: number) => U, initialValue?: U): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -569,7 +569,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static filter(dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], filterer: (item: R_8, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_2, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_4, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_6[], filterer: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[]> @@ -581,7 +581,7 @@ export declare class Promise implements Promise.Thenable { >arrayLength : number static filter(dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], filterer: (item: R_8, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_4, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_6[], filterer: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -593,7 +593,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static filter(dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], filterer: (item: R_8, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_4, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_6[], filterer: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable @@ -604,7 +604,7 @@ export declare class Promise implements Promise.Thenable { >arrayLength : number static filter(dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], filterer: (item: R_8, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_6[], filterer: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -616,7 +616,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static filter(dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], filterer: (item: R_8, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_6[], filterer: (item: R_6, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : Promise.Thenable[] @@ -627,7 +627,7 @@ export declare class Promise implements Promise.Thenable { >arrayLength : number static filter(dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_8[], filterer: (item: R_8, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -638,7 +638,7 @@ export declare class Promise implements Promise.Thenable { >Promise : any static filter(dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; ->filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; } +>filter : { (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_1, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[]>, filterer: (item: R_2, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_3, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable, filterer: (item: R_4, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_5, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: Promise.Thenable[], filterer: (item: R_6, index: number, arrayLength: number) => boolean): Promise; (dit: typeof Promise, values: R_7[], filterer: (item: R_7, index: number, arrayLength: number) => Promise.Thenable): Promise; (dit: typeof Promise, values: R[], filterer: (item: R, index: number, arrayLength: number) => boolean): Promise; } >dit : typeof Promise >Promise : typeof Promise >values : R[] @@ -658,21 +658,21 @@ export declare module Promise { >error : any then(onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U): Thenable; ->then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U): Thenable; (onFulfilled: (value: R) => U_3, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_4, onRejected?: (error: any) => U_4): Thenable; } +>then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U): Thenable; (onFulfilled: (value: R) => U_2, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_3, onRejected?: (error: any) => U_3): Thenable; } >onFulfilled : (value: R) => Thenable >value : R >onRejected : (error: any) => U >error : any then(onFulfilled: (value: R) => U, onRejected: (error: any) => Thenable): Thenable; ->then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_2): Thenable; (onFulfilled: (value: R) => U, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_4, onRejected?: (error: any) => U_4): Thenable; } +>then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_2): Thenable; (onFulfilled: (value: R) => U, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U_3, onRejected?: (error: any) => U_3): Thenable; } >onFulfilled : (value: R) => U >value : R >onRejected : (error: any) => Thenable >error : any then(onFulfilled?: (value: R) => U, onRejected?: (error: any) => U): Thenable; ->then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_2): Thenable; (onFulfilled: (value: R) => U_3, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U, onRejected?: (error: any) => U): Thenable; } +>then : { (onFulfilled: (value: R) => Thenable, onRejected: (error: any) => Thenable): Thenable; (onFulfilled: (value: R) => Thenable, onRejected?: (error: any) => U_2): Thenable; (onFulfilled: (value: R) => U_3, onRejected: (error: any) => Thenable): Thenable; (onFulfilled?: (value: R) => U, onRejected?: (error: any) => U): Thenable; } >onFulfilled : (value: R) => U >value : R >onRejected : (error: any) => U diff --git a/tests/baselines/reference/callChain.3.types b/tests/baselines/reference/callChain.3.types index 04b3c2d02032d..feee4365c3f6a 100644 --- a/tests/baselines/reference/callChain.3.types +++ b/tests/baselines/reference/callChain.3.types @@ -5,7 +5,7 @@ declare function absorb(): T; >absorb : () => T declare const a: { m?(obj: {x: T}): T } | undefined; ->a : { m?(obj: { x: T; }): T; } | undefined +>a : { m?(obj: { x: T;}): T; } | undefined >m : ((obj: { x: T;}) => T) | undefined >obj : { x: T; } >x : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types index e663dd090d028..3e0c95356ae27 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance2.types @@ -233,7 +233,7 @@ interface I extends A { >y : T a14: (x: { a: T; b: U }) => T; // ok ->a14 : (x: { a: T; b: U; }) => T +>a14 : (x: { a: T; b: U;}) => T >x : { a: T; b: U; } >a : T >b : U diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types index c493f65778a73..19516ba55bde1 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance3.types @@ -185,7 +185,7 @@ module Errors { interface I6 extends A { a15: (x: { a: T; b: T }) => T; // error, T is {} which isn't an acceptable return type ->a15 : (x: { a: T; b: T; }) => T +>a15 : (x: { a: T; b: T;}) => T >x : { a: T; b: T; } >a : T >b : T @@ -193,7 +193,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 +>a15 : (x: { a: T; b: T;}) => number >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types index bc30e2f3fcaf0..2d5836fedf90a 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance4.types @@ -52,7 +52,7 @@ interface A { // T >arg : T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -60,13 +60,13 @@ interface A { // T >bar : T a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[] +>a15 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[] +>a16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -140,7 +140,7 @@ interface I extends A { >arg : T a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok ->a11 : (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -148,13 +148,13 @@ interface I extends A { >bar : U a15: (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V ->a15 : (x: { a: U; b: V; }) => U[] +>a15 : (x: { a: U; b: V;}) => U[] >x : { a: U; b: V; } >a : U >b : V a16: (x: { a: T; b: T }) => T[]; // ok, more general parameter type ->a16 : (x: { a: T; b: T; }) => T[] +>a16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types index 1051543595877..bb866c1b5abb2 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance5.types @@ -183,7 +183,7 @@ interface I extends B { >y : T a14: (x: { a: T; b: U }) => T; // ok ->a14 : (x: { a: T; b: U; }) => T +>a14 : (x: { a: T; b: U;}) => T >x : { a: T; b: U; } >a : T >b : U diff --git a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types index 1e09a35b27e2d..ac83097c9d5d5 100644 --- a/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/callSignatureAssignabilityInInheritance6.types @@ -54,7 +54,7 @@ interface A { // T >arg : T a11: (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -62,13 +62,13 @@ interface A { // T >bar : T a15: (x: { a: T; b: T }) => T[]; ->a15 : (x: { a: T; b: T; }) => T[] +>a15 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T a16: (x: { a: T; b: T }) => T[]; ->a16 : (x: { a: T; b: T; }) => T[] +>a16 : (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -109,7 +109,7 @@ interface I5 extends A { interface I7 extends A { a11: (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : (x: { foo: T;}, y: { foo: U; bar: U; }) => Base +>a11 : (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } diff --git a/tests/baselines/reference/callbacksDontShareTypes.types b/tests/baselines/reference/callbacksDontShareTypes.types index 43269fc3eb1ed..0d866799e8aa0 100644 --- a/tests/baselines/reference/callbacksDontShareTypes.types +++ b/tests/baselines/reference/callbacksDontShareTypes.types @@ -21,7 +21,7 @@ interface Combinators { >x : T map(c: Collection, f: (x: T) => any): Collection; ->map : { (c: Collection, f: (x: T_1) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } +>map : { (c: Collection, f: (x: T_1) => U): Collection; (c: Collection, f: (x: T) => any): Collection; } >c : Collection >f : (x: T) => any >x : T diff --git a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types index 81e6e440584fa..af8936704ae64 100644 --- a/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types +++ b/tests/baselines/reference/chainedCallsWithTypeParameterConstrainedToOtherTypeParameter2.types @@ -21,7 +21,7 @@ class Chain { // Ok to go down the chain, but error to climb up the chain (new Chain(t)).then(tt => s).then(ss => t); >(new Chain(t)).then(tt => s).then(ss => t) : Chain ->(new Chain(t)).then(tt => s).then : (cb: (x: S) => S) => Chain +>(new Chain(t)).then(tt => s).then : (cb: (x: S) => S_1) => Chain >(new Chain(t)).then(tt => s) : Chain >(new Chain(t)).then : (cb: (x: T) => S) => Chain >(new Chain(t)) : Chain @@ -32,7 +32,7 @@ class Chain { >tt => s : (tt: T) => S >tt : T >s : S ->then : (cb: (x: S) => S) => Chain +>then : (cb: (x: S) => S_1) => Chain >ss => t : (ss: S) => T >ss : S >t : T @@ -40,12 +40,12 @@ class Chain { // But error to try to climb up the chain (new Chain(s)).then(ss => t); >(new Chain(s)).then(ss => t) : Chain ->(new Chain(s)).then : (cb: (x: S) => S) => Chain +>(new Chain(s)).then : (cb: (x: S) => S_1) => Chain >(new Chain(s)) : Chain >new Chain(s) : Chain >Chain : typeof Chain >s : S ->then : (cb: (x: S) => S) => Chain +>then : (cb: (x: S) => S_1) => Chain >ss => t : (ss: S) => T >ss : S >t : T @@ -77,24 +77,24 @@ class Chain { (new Chain(s)).then(ss => s).then(ss => s).then(ss => s); >(new Chain(s)).then(ss => s).then(ss => s).then(ss => s) : Chain ->(new Chain(s)).then(ss => s).then(ss => s).then : (cb: (x: S) => S) => Chain +>(new Chain(s)).then(ss => s).then(ss => s).then : (cb: (x: S) => S_1) => Chain >(new Chain(s)).then(ss => s).then(ss => s) : Chain ->(new Chain(s)).then(ss => s).then : (cb: (x: S) => S) => Chain +>(new Chain(s)).then(ss => s).then : (cb: (x: S) => S_1) => Chain >(new Chain(s)).then(ss => s) : Chain ->(new Chain(s)).then : (cb: (x: S) => S) => Chain +>(new Chain(s)).then : (cb: (x: S) => S_1) => Chain >(new Chain(s)) : Chain >new Chain(s) : Chain >Chain : typeof Chain >s : S ->then : (cb: (x: S) => S) => Chain +>then : (cb: (x: S) => S_1) => Chain >ss => s : (ss: S) => S >ss : S >s : S ->then : (cb: (x: S) => S) => Chain +>then : (cb: (x: S) => S_1) => Chain >ss => s : (ss: S) => S >ss : S >s : S ->then : (cb: (x: S) => S) => Chain +>then : (cb: (x: S) => S_1) => Chain >ss => s : (ss: S) => S >ss : S >s : S @@ -197,11 +197,11 @@ class Chain2 { >(new Chain2(i)).then(ii => s).then(ss => s).then(ss => s).then(ss => s).value.x : number >(new Chain2(i)).then(ii => s).then(ss => s).then(ss => s).then(ss => s).value : S >(new Chain2(i)).then(ii => s).then(ss => s).then(ss => s).then(ss => s) : Chain2 ->(new Chain2(i)).then(ii => s).then(ss => s).then(ss => s).then : (cb: (x: S) => S) => Chain2 +>(new Chain2(i)).then(ii => s).then(ss => s).then(ss => s).then : (cb: (x: S) => S_1) => Chain2 >(new Chain2(i)).then(ii => s).then(ss => s).then(ss => s) : Chain2 ->(new Chain2(i)).then(ii => s).then(ss => s).then : (cb: (x: S) => S) => Chain2 +>(new Chain2(i)).then(ii => s).then(ss => s).then : (cb: (x: S) => S_1) => Chain2 >(new Chain2(i)).then(ii => s).then(ss => s) : Chain2 ->(new Chain2(i)).then(ii => s).then : (cb: (x: S) => S) => Chain2 +>(new Chain2(i)).then(ii => s).then : (cb: (x: S) => S_1) => Chain2 >(new Chain2(i)).then(ii => s) : Chain2 >(new Chain2(i)).then : (cb: (x: I) => S) => Chain2 >(new Chain2(i)) : Chain2 @@ -212,15 +212,15 @@ class Chain2 { >ii => s : (ii: I) => S >ii : I >s : S ->then : (cb: (x: S) => S) => Chain2 +>then : (cb: (x: S) => S_1) => Chain2 >ss => s : (ss: S) => S >ss : S >s : S ->then : (cb: (x: S) => S) => Chain2 +>then : (cb: (x: S) => S_1) => Chain2 >ss => s : (ss: S) => S >ss : S >s : S ->then : (cb: (x: S) => S) => Chain2 +>then : (cb: (x: S) => S_1) => Chain2 >ss => s : (ss: S) => S >ss : S >s : S diff --git a/tests/baselines/reference/circularInstantiationExpression.types b/tests/baselines/reference/circularInstantiationExpression.types index 49fb9cb6cf901..65430d609db28 100644 --- a/tests/baselines/reference/circularInstantiationExpression.types +++ b/tests/baselines/reference/circularInstantiationExpression.types @@ -8,6 +8,6 @@ declare function foo(t: T): typeof foo; foo(""); >foo("") : (t: string) => any ->foo : (t: T) => (t: T) => any +>foo : (t: T) => typeof foo >"" : "" diff --git a/tests/baselines/reference/coAndContraVariantInferences3.types b/tests/baselines/reference/coAndContraVariantInferences3.types index e3c4cffd38ba0..912777443420f 100644 --- a/tests/baselines/reference/coAndContraVariantInferences3.types +++ b/tests/baselines/reference/coAndContraVariantInferences3.types @@ -180,14 +180,14 @@ declare function every(array: readonly T[], callback: (element: >index : number 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_3[] | undefined, callback: (element: T_3, index: number) => boolean): boolean; } +>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_2[] | undefined, callback: (element: T_2, index: number) => boolean): boolean; } >array : readonly T[] | undefined >callback : (element: T, index: number) => element is U >element : T >index : number 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_2[] | undefined, callback: (element: T_2, index: number) => element is U_1): array is readonly U_1[] | undefined; (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_2[] | undefined, callback: (element: T_2, index: number) => element is U_1): array is readonly U_1[] | undefined; (array: readonly T[] | undefined, callback: (element: T, index: number) => boolean): boolean; } >array : readonly T[] | undefined >callback : (element: T, index: number) => boolean >element : T diff --git a/tests/baselines/reference/complexRecursiveCollections.types b/tests/baselines/reference/complexRecursiveCollections.types index 3c61e30dc16ed..8fbbe76f6d8bf 100644 --- a/tests/baselines/reference/complexRecursiveCollections.types +++ b/tests/baselines/reference/complexRecursiveCollections.types @@ -32,7 +32,7 @@ interface Collection { >context : any reduce(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; ->reduce : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } +>reduce : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } >reducer : (reduction: V | R, value: V, key: K, iter: this) => R >reduction : V | R >value : V @@ -839,7 +839,7 @@ declare module Immutable { >otherCollection : Collection zipWith(zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; ->zipWith : { (zipper: (value: T, otherValue: U_1) => Z_1, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: any[]) => Z_3, ...collections: Collection[]): OrderedSet; } +>zipWith : { (zipper: (value: T, otherValue: U_1) => Z_1, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: any[]) => Z_2, ...collections: Collection[]): OrderedSet; } >zipper : (value: T, otherValue: U, thirdValue: V) => Z >value : T >otherValue : U @@ -848,7 +848,7 @@ declare module Immutable { >thirdCollection : Collection zipWith(zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; ->zipWith : { (zipper: (value: T, otherValue: U) => Z_1, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U_1, thirdValue: V) => Z_2, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; } +>zipWith : { (zipper: (value: T, otherValue: U) => Z_1, otherCollection: Collection): OrderedSet; (zipper: (value: T, otherValue: U_1, thirdValue: V) => Z_2, otherCollection: Collection, thirdCollection: Collection): OrderedSet; (zipper: (...any: Array) => Z, ...collections: Array>): OrderedSet; } >zipper : (...any: Array) => Z >any : any[] >collections : Collection[] @@ -1156,13 +1156,13 @@ declare module Immutable { >Seq : any export function Keyed(obj: {[key: string]: V}): Seq.Keyed; ->Keyed : { (collection: Iterable<[K, V_1]>): Keyed; (obj: { [key: string]: V; }): Seq.Keyed; (): Keyed; (): Keyed; } +>Keyed : { (collection: Iterable<[K, V_1]>): Keyed; (obj: { [key: string]: V; }): Seq.Keyed; (): Keyed; (): Keyed; } >obj : { [key: string]: V; } >key : string >Seq : any export function Keyed(): Seq.Keyed; ->Keyed : { (collection: Iterable<[K_1, V_1]>): Keyed; (obj: { [key: string]: V_2; }): Keyed; (): Seq.Keyed; (): Keyed; } +>Keyed : { (collection: Iterable<[K_1, V_1]>): Keyed; (obj: { [key: string]: V_2; }): Keyed; (): Seq.Keyed; (): Keyed; } >Seq : any export function Keyed(): Seq.Keyed; @@ -1500,7 +1500,7 @@ declare module Immutable { >Collection : any export function Keyed(obj: {[key: string]: V}): Collection.Keyed; ->Keyed : { (collection: Iterable<[K, V_1]>): Keyed; (obj: { [key: string]: V; }): Collection.Keyed; } +>Keyed : { (collection: Iterable<[K, V_1]>): Keyed; (obj: { [key: string]: V; }): Collection.Keyed; } >obj : { [key: string]: V; } >key : string >Collection : any @@ -1652,7 +1652,7 @@ declare module Immutable { >Collection : any zipWith(zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; ->zipWith : { (zipper: (value: T, otherValue: U_1) => Z_1, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; (zipper: (...any: any[]) => Z_3, ...collections: Collection[]): Indexed; } +>zipWith : { (zipper: (value: T, otherValue: U_1) => Z_1, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U, thirdValue: V) => Z, otherCollection: Collection, thirdCollection: Collection): Collection.Indexed; (zipper: (...any: any[]) => Z_2, ...collections: Collection[]): Indexed; } >zipper : (value: T, otherValue: U, thirdValue: V) => Z >value : T >otherValue : U @@ -1662,7 +1662,7 @@ declare module Immutable { >Collection : any zipWith(zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; ->zipWith : { (zipper: (value: T, otherValue: U) => Z_1, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U_1, thirdValue: V) => Z_2, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; } +>zipWith : { (zipper: (value: T, otherValue: U) => Z_1, otherCollection: Collection): Indexed; (zipper: (value: T, otherValue: U_1, thirdValue: V) => Z_2, otherCollection: Collection, thirdCollection: Collection): Indexed; (zipper: (...any: Array) => Z, ...collections: Array>): Collection.Indexed; } >zipper : (...any: Array) => Z >any : any[] >collections : Collection[] @@ -2110,7 +2110,7 @@ declare module Immutable { >context : any reduce(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; ->reduce : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } +>reduce : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } >reducer : (reduction: V | R, value: V, key: K, iter: this) => R >reduction : V | R >value : V @@ -2128,7 +2128,7 @@ declare module Immutable { >context : any reduceRight(reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; ->reduceRight : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } +>reduceRight : { (reducer: (reduction: R_1, value: V, key: K, iter: this) => R_1, initialReduction: R_1, context?: any): R_1; (reducer: (reduction: V | R, value: V, key: K, iter: this) => R): R; } >reducer : (reduction: V | R, value: V, key: K, iter: this) => R >reduction : V | R >value : V diff --git a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types index 2c12cc2d00c76..e254493ad19ea 100644 --- a/tests/baselines/reference/conditionalTypeDoesntSpinForever.types +++ b/tests/baselines/reference/conditionalTypeDoesntSpinForever.types @@ -40,7 +40,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >name : any name: (t?: TYPE) => BuildPubSubRecordType ->name : (t?: TYPE) => BuildPubSubRecordType +>name : (t?: TYPE) => BuildPubSubRecordType >t : TYPE >name : TYPE } @@ -176,7 +176,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >record : any identifier: >(t?: TYPE) => BuildPubSubRecordType ->identifier : >(t?: TYPE) => BuildPubSubRecordType +>identifier : >(t?: TYPE) => BuildPubSubRecordType >t : TYPE >identifier : TYPE @@ -236,7 +236,7 @@ export enum PubSubRecordIsStoredInRedisAsA { >record : any record: (t?: TYPE) => BuildPubSubRecordType ->record : (t?: TYPE) => BuildPubSubRecordType +>record : (t?: TYPE) => BuildPubSubRecordType >t : TYPE >record : TYPE } diff --git a/tests/baselines/reference/conditionalTypes1.js b/tests/baselines/reference/conditionalTypes1.js index 667c4de7c09a4..b90f9f21605cc 100644 --- a/tests/baselines/reference/conditionalTypes1.js +++ b/tests/baselines/reference/conditionalTypes1.js @@ -649,7 +649,7 @@ type Foo = T extends string ? boolean : number; type Bar = T extends string ? boolean : number; declare const convert: (value: Foo) => Bar; type Baz = Foo; -declare const convert2: (value: Foo) => Foo; +declare const convert2: (value: Foo) => Baz; declare function f31(): void; declare function f32(): void; declare function f33(): void; diff --git a/tests/baselines/reference/conditionalTypes1.types b/tests/baselines/reference/conditionalTypes1.types index 881eecd821190..5a88fc36d0d79 100644 --- a/tests/baselines/reference/conditionalTypes1.types +++ b/tests/baselines/reference/conditionalTypes1.types @@ -789,8 +789,8 @@ type Baz = Foo; >Baz : Baz const convert2 = (value: Foo): Baz => value; ->convert2 : (value: Foo) => Foo ->(value: Foo): Baz => value : (value: Foo) => Foo +>convert2 : (value: Foo) => Baz +>(value: Foo): Baz => value : (value: Foo) => Baz >value : Foo >value : Foo diff --git a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types index 46173b625832e..2f27a38d71b26 100644 --- a/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types +++ b/tests/baselines/reference/conditionalTypesSimplifyWhenTrivial.types @@ -59,8 +59,8 @@ type ExcludeWithDefault = T extends U ? D : T; >ExcludeWithDefault : ExcludeWithDefault const fn5 = ( ->fn5 : (params: Pick>) => Params ->( params: Pick>,): Params => params : (params: Pick>) => Params +>fn5 : (params: Pick>) => Params +>( params: Pick>,): Params => params : (params: Pick>) => Params params: Pick>, >params : Pick> @@ -83,8 +83,8 @@ function fn6(x: ExcludeWithDefault) { } const fn7 = ( ->fn7 : (params: Pick>) => Params ->( params: Pick>,): Params => params : (params: Pick>) => Params +>fn7 : (params: Pick>) => Params +>( params: Pick>,): Params => params : (params: Pick>) => Params params: Pick>, >params : Pick> diff --git a/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types index 21b55ae75a2ef..64be2e260dda2 100644 --- a/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types +++ b/tests/baselines/reference/conflictingDeclarationsImportFromNamespace2.types @@ -9,7 +9,7 @@ declare module "./index" { interface LoDashStatic { pick: ( ->pick : (object: T, ...props: U[]) => Pick +>pick : (object: T, ...props: Array) => Pick object: T, >object : T diff --git a/tests/baselines/reference/constraintSatisfactionWithAny.types b/tests/baselines/reference/constraintSatisfactionWithAny.types index 96d7dd6ba72b0..f9e1bb8d1a538 100644 --- a/tests/baselines/reference/constraintSatisfactionWithAny.types +++ b/tests/baselines/reference/constraintSatisfactionWithAny.types @@ -14,7 +14,7 @@ function foo2(x: T): T { return null; } //function foo3(x: T): T { return null; } function foo4(x: T) => void>(x: T): T { return null; } ->foo4 : (x: T_1) => void>(x: T) => T +>foo4 : (x: T_1) => void>(x: T) => T >x : T >x : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types index 0bed3a62c2184..2ff0dba4385c1 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance2.types @@ -233,7 +233,7 @@ interface I extends A { >y : T a14: new (x: { a: T; b: U }) => T; // ok ->a14 : new (x: { a: T; b: U; }) => T +>a14 : new (x: { a: T; b: U;}) => T >x : { a: T; b: U; } >a : T >b : U diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types index 05dd7752d4573..e342e13f9b931 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance3.types @@ -161,7 +161,7 @@ module Errors { interface I6 extends A { a15: new (x: { a: T; b: T }) => T; // error, T is {} which isn't an acceptable return type ->a15 : new (x: { a: T; b: T; }) => T +>a15 : new (x: { a: T; b: T;}) => T >x : { a: T; b: T; } >a : T >b : T @@ -169,7 +169,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 +>a15 : new (x: { a: T; b: T;}) => number >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types index 34f2ba81784c6..ba6eafba0e9ad 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance4.types @@ -52,7 +52,7 @@ interface A { // T >arg : T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -60,13 +60,13 @@ interface A { // T >bar : T a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[] +>a15 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -160,7 +160,7 @@ interface I extends A { >arg : T a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; // ok ->a11 : new (x: { foo: T; }, y: { foo: U; bar: U; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } @@ -168,13 +168,13 @@ interface I extends A { >bar : U a15: new (x: { a: U; b: V; }) => U[]; // ok, T = U, T = V ->a15 : new (x: { a: U; b: V; }) => U[] +>a15 : new (x: { a: U; b: V;}) => U[] >x : { a: U; b: V; } >a : U >b : V a16: new (x: { a: T; b: T }) => T[]; // ok, more general parameter type ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types index 586f63a410f87..8a9c1737fc4c0 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance5.types @@ -183,7 +183,7 @@ interface I extends B { >y : T a14: new (x: { a: T; b: U }) => T; // ok ->a14 : new (x: { a: T; b: U; }) => T +>a14 : new (x: { a: T; b: U;}) => T >x : { a: T; b: U; } >a : T >b : U diff --git a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types index 065dd2478a504..7477c180797a4 100644 --- a/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types +++ b/tests/baselines/reference/constructSignatureAssignabilityInInheritance6.types @@ -54,7 +54,7 @@ interface A { // T >arg : T a11: new (x: { foo: T }, y: { foo: T; bar: T }) => Base; ->a11 : new (x: { foo: T; }, y: { foo: T; bar: T; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: T; bar: T;}) => Base >x : { foo: T; } >foo : T >y : { foo: T; bar: T; } @@ -62,13 +62,13 @@ interface A { // T >bar : T a15: new (x: { a: T; b: T }) => T[]; ->a15 : new (x: { a: T; b: T; }) => T[] +>a15 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T a16: new (x: { a: T; b: T }) => T[]; ->a16 : new (x: { a: T; b: T; }) => T[] +>a16 : new (x: { a: T; b: T;}) => T[] >x : { a: T; b: T; } >a : T >b : T @@ -109,7 +109,7 @@ interface I5 extends A { interface I7 extends A { a11: new (x: { foo: T }, y: { foo: U; bar: U }) => Base; ->a11 : new (x: { foo: T;}, y: { foo: U; bar: U; }) => Base +>a11 : new (x: { foo: T;}, y: { foo: U; bar: U;}) => Base >x : { foo: T; } >foo : T >y : { foo: U; bar: U; } diff --git a/tests/baselines/reference/contravariantInferenceAndTypeGuard.types b/tests/baselines/reference/contravariantInferenceAndTypeGuard.types index 7007cde95a38e..7aedd6ea6d520 100644 --- a/tests/baselines/reference/contravariantInferenceAndTypeGuard.types +++ b/tests/baselines/reference/contravariantInferenceAndTypeGuard.types @@ -34,11 +34,11 @@ declare class List { >context : TContext filter(fn: FilterFn): List; ->filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext_1): List; (fn: IteratorFn>): List; } +>filter : { (fn: FilterFn, context: TContext): List; (fn: FilterFn): List; (fn: IteratorFn, context: TContext_1): 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; } +>filter : { (fn: FilterFn, context: TContext_1): List; (fn: FilterFn>): List; (fn: IteratorFn, context: TContext): List; (fn: IteratorFn>): List; } >fn : IteratorFn >context : TContext diff --git a/tests/baselines/reference/correlatedUnions.js b/tests/baselines/reference/correlatedUnions.js index 5335811054601..05e77d8b4d3e1 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], SameKeys[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 eb4c434c405ec..604656b968713 100644 --- a/tests/baselines/reference/correlatedUnions.types +++ b/tests/baselines/reference/correlatedUnions.types @@ -744,7 +744,7 @@ const ALL_BARS = [{ name: 'a'}, {name: 'b'}] as const; const BAR_LOOKUP = makeCompleteLookupMapping(ALL_BARS, 'name'); >BAR_LOOKUP : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } >makeCompleteLookupMapping(ALL_BARS, 'name') : { a: { readonly name: "a"; }; b: { readonly name: "b"; }; } ->makeCompleteLookupMapping : (ops: T, attr: Attr_1) => { [Item in T[number] as Item[Attr_1]]: Item; } +>makeCompleteLookupMapping : (ops: T, attr: Attr) => { [Item in T[number] as Item[Attr]]: Item; } >ALL_BARS : readonly [{ readonly name: "a"; }, { readonly name: "b"; }] >'name' : "name" @@ -797,8 +797,8 @@ type MappedFromOriginal = SameKeys; >MappedFromOriginal : SameKeys const getStringAndNumberFromOriginalAndMapped = < ->getStringAndNumberFromOriginalAndMapped : (original: Original, mappedFromOriginal: MappedFromOriginal, key: K, nestedKey: N) => [Original[K][N], SameKeys[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], SameKeys[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 diff --git a/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.js b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.js index 919d54f08d56f..cd939e0c70a1b 100644 --- a/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.js +++ b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.js @@ -17,4 +17,4 @@ exports.fun = fun; //// [declarationEmitDistributiveConditionalWithInfer.d.ts] -export declare const fun: (subFun: () => (Collection[Field] extends infer T ? T extends Collection[Field] ? T extends readonly (infer InnerArr)[] ? InnerArr : T : never : never)[]) => void; +export declare const fun: (subFun: () => FlatArray[]) => void; diff --git a/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types index b440e40d15755..9cb80f14cf92c 100644 --- a/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types +++ b/tests/baselines/reference/declarationEmitDistributiveConditionalWithInfer.types @@ -3,11 +3,11 @@ === declarationEmitDistributiveConditionalWithInfer.ts === // This function's type is changed on declaration export const fun = ( ->fun : (subFun: () => (Collection[Field] extends infer T ? T extends Collection[Field] ? T extends readonly (infer InnerArr)[] ? InnerArr : T : never : never)[]) => void ->( subFun: () => FlatArray[]) => { } : (subFun: () => (Collection[Field] extends infer T ? T extends Collection[Field] ? T extends readonly (infer InnerArr)[] ? InnerArr : T : never : never)[]) => void +>fun : (subFun: () => FlatArray[]) => void +>( subFun: () => FlatArray[]) => { } : (subFun: () => FlatArray[]) => void subFun: () ->subFun : () => (Collection[Field] extends infer T ? T extends Collection[Field] ? T extends readonly (infer InnerArr)[] ? InnerArr : T : never : never)[] +>subFun : () => FlatArray[] => FlatArray[]) => { }; diff --git a/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types b/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types index 7c611a05bc7f5..27a2b67888585 100644 --- a/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types +++ b/tests/baselines/reference/declarationEmitOverloadedPrivateInference.types @@ -26,7 +26,7 @@ export class Wrapper { >options : T private proxy(fn: (options?: T) => U, noArgs: true): (options?: T) => U; ->proxy : { (fn: (options: T_1) => U_1): (options: T_1) => U_1; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } +>proxy : { (fn: (options: T_1) => U_1): (options: T_1) => U_1; (fn: (options?: T) => U, noArgs: true): (options?: T) => U; } >fn : (options?: T) => U >options : T >noArgs : true diff --git a/tests/baselines/reference/declarationEmitPrivatePromiseLikeInterface.js b/tests/baselines/reference/declarationEmitPrivatePromiseLikeInterface.js index fca79b431ed2a..dec8e1bbe65e9 100644 --- a/tests/baselines/reference/declarationEmitPrivatePromiseLikeInterface.js +++ b/tests/baselines/reference/declarationEmitPrivatePromiseLikeInterface.js @@ -72,6 +72,6 @@ export interface HttpResponse ex error: E; } export declare class HttpClient { - request: () => TPromise, any>; + request: () => TPromise>; } export {}; diff --git a/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types b/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types index e58c743abbf0b..afae11e60ede4 100644 --- a/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types +++ b/tests/baselines/reference/declarationEmitQualifiedAliasTypeArgument.types @@ -38,15 +38,15 @@ import { T, Q } from "./lib"; >Q : any import { create } from "./bbb"; ->create : () => () => import("bbb").INode +>create : () => () => import("bbb").INode export const fun = create(); >fun : () => import("bbb").INode >create() : () => import("bbb").INode ->create : () => () => import("bbb").INode +>create : () => () => import("bbb").INode export const fun2 = create(); >fun2 : () => import("bbb").INode >create() : () => import("bbb").INode ->create : () => () => import("bbb").INode +>create : () => () => import("bbb").INode diff --git a/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.js b/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.js new file mode 100644 index 0000000000000..3e2c9794bc5de --- /dev/null +++ b/tests/baselines/reference/declarationEmitReusesLambdaParameterNodes.js @@ -0,0 +1,27 @@ +//// [tests/cases/compiler/declarationEmitReusesLambdaParameterNodes.ts] //// + +//// [index.d.ts] +export type Whatever = {x: string, y: number}; +export type Props = Omit & Partial & T; + +//// [index.ts] +import { Props } from "react-select"; + +export const CustomSelect1 = (x: Props