diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index c5c39f3570178..ccac12fb1e4d7 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -203,7 +203,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: Iterable>): Promise; + all(values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; } declare namespace Reflect { diff --git a/src/lib/es2015.promise.d.ts b/src/lib/es2015.promise.d.ts index 83776137c33c1..65f46649011a9 100644 --- a/src/lib/es2015.promise.d.ts +++ b/src/lib/es2015.promise.d.ts @@ -18,7 +18,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; + all(values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -26,7 +26,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; + all(values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -34,7 +34,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; + all(values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -42,7 +42,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; + all(values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -50,7 +50,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; + all(values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -58,7 +58,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike , T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; + all(values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -66,7 +66,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike ]): Promise<[T1, T2, T3, T4]>; + all(values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -74,7 +74,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; + all(values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -82,7 +82,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; + all(values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; /** * Creates a Promise that is resolved with an array of results when all of the provided Promises @@ -90,7 +90,7 @@ interface PromiseConstructor { * @param values An array of Promises. * @returns A new Promise. */ - all(values: (T | PromiseLike)[]): Promise; + all(values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; /** * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved @@ -120,7 +120,7 @@ interface PromiseConstructor { * @param value A promise. * @returns A promise whose internal state matches the provided promise. */ - resolve(value: T | PromiseLike): Promise; + resolve(value: T): Promise ? U : T>; /** * Creates a new resolved promise . diff --git a/tests/baselines/reference/asyncArrowFunction11_es5.types b/tests/baselines/reference/asyncArrowFunction11_es5.types index 70eea5e2f2a4c..b91ebf5ba52a0 100644 --- a/tests/baselines/reference/asyncArrowFunction11_es5.types +++ b/tests/baselines/reference/asyncArrowFunction11_es5.types @@ -11,9 +11,9 @@ class A { await Promise.resolve(); >await Promise.resolve() : void >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } const obj = { ["a"]: () => this }; // computed property name after `await` triggers case >obj : { ["a"]: () => this; } diff --git a/tests/baselines/reference/asyncFunctionReturnType.types b/tests/baselines/reference/asyncFunctionReturnType.types index d2cb63e0a35f3..2513959c3aff2 100644 --- a/tests/baselines/reference/asyncFunctionReturnType.types +++ b/tests/baselines/reference/asyncFunctionReturnType.types @@ -44,9 +44,9 @@ async function fIndexedTypeForPromiseOfStringProp(obj: Obj): PromisePromise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.stringProp : string >obj : Obj >stringProp : string @@ -58,9 +58,9 @@ async function fIndexedTypeForExplicitPromiseOfStringProp(obj: Obj): Promise(obj.stringProp); >Promise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.stringProp : string >obj : Obj >stringProp : string @@ -82,9 +82,9 @@ async function fIndexedTypeForPromiseOfAnyProp(obj: Obj): PromisePromise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.anyProp : any >obj : Obj >anyProp : any @@ -96,9 +96,9 @@ async function fIndexedTypeForExplicitPromiseOfAnyProp(obj: Obj): Promise(obj.anyProp); >Promise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.anyProp : any >obj : Obj >anyProp : any @@ -120,9 +120,9 @@ async function fGenericIndexedTypeForPromiseOfStringProp(obj: return Promise.resolve(obj.stringProp); >Promise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.stringProp : string >obj : TObj >stringProp : string @@ -133,10 +133,10 @@ async function fGenericIndexedTypeForExplicitPromiseOfStringPropobj : TObj return Promise.resolve(obj.stringProp); ->Promise.resolve(obj.stringProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj.stringProp) : Promise ? U : TObj["stringProp"]> +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.stringProp : string >obj : TObj >stringProp : string @@ -158,9 +158,9 @@ async function fGenericIndexedTypeForPromiseOfAnyProp(obj: TOb return Promise.resolve(obj.anyProp); >Promise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.anyProp : any >obj : TObj >anyProp : any @@ -171,10 +171,10 @@ async function fGenericIndexedTypeForExplicitPromiseOfAnyProp( >obj : TObj return Promise.resolve(obj.anyProp); ->Promise.resolve(obj.anyProp) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj.anyProp) : Promise ? U : TObj["anyProp"]> +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj.anyProp : any >obj : TObj >anyProp : any @@ -197,10 +197,10 @@ async function fGenericIndexedTypeForPromiseOfKPropkey : K return Promise.resolve(obj[key]); ->Promise.resolve(obj[key]) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj[key]) : Promise ? U : TObj[K]> +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj[key] : TObj[K] >obj : TObj >key : K @@ -212,10 +212,10 @@ async function fGenericIndexedTypeForExplicitPromiseOfKPropkey : K return Promise.resolve(obj[key]); ->Promise.resolve(obj[key]) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve(obj[key]) : Promise ? U : TObj[K]> +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >obj[key] : TObj[K] >obj : TObj >key : K diff --git a/tests/baselines/reference/correctOrderOfPromiseMethod.types b/tests/baselines/reference/correctOrderOfPromiseMethod.types index 5e8eaa72f429b..906e0b9738302 100644 --- a/tests/baselines/reference/correctOrderOfPromiseMethod.types +++ b/tests/baselines/reference/correctOrderOfPromiseMethod.types @@ -30,9 +30,9 @@ async function countEverything(): Promise { >resultB : B[] >await Promise.all([ providerA(), providerB(), ]) : [A[], B[]] >Promise.all([ providerA(), providerB(), ]) : Promise<[A[], B[]]> ->Promise.all : { (values: Iterable>): Promise; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: (T | PromiseLike)[]): Promise; } +>Promise.all : { (values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; (values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; (values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; (values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; (values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; (values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; (values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; (values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: (T | PromiseLike)[]): Promise; } +>all : { (values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; (values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; (values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; (values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; (values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; (values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; (values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; (values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; } >[ providerA(), providerB(), ] : [Promise, Promise] providerA(), diff --git a/tests/baselines/reference/exportDefaultAsyncFunction2.types b/tests/baselines/reference/exportDefaultAsyncFunction2.types index 0e6ad89ccdfe6..cc0a0fb403870 100644 --- a/tests/baselines/reference/exportDefaultAsyncFunction2.types +++ b/tests/baselines/reference/exportDefaultAsyncFunction2.types @@ -19,9 +19,9 @@ export default async(() => await(Promise.resolve(1))); >await(Promise.resolve(1)) : any >await : (...args: any[]) => any >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 === tests/cases/compiler/b.ts === diff --git a/tests/baselines/reference/genericFunctionInference1.types b/tests/baselines/reference/genericFunctionInference1.types index 1974fe17bea80..c2d2c52542e07 100644 --- a/tests/baselines/reference/genericFunctionInference1.types +++ b/tests/baselines/reference/genericFunctionInference1.types @@ -835,9 +835,9 @@ const fn30: Fn = pipe( const promise = Promise.resolve(1); >promise : Promise >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 promise.then( diff --git a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types index 4c56070fd3cba..2d3e4f723a2f1 100644 --- a/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types +++ b/tests/baselines/reference/inferFromGenericFunctionReturnTypes3.types @@ -7,9 +7,9 @@ function truePromise(): Promise { return Promise.resolve(true); >Promise.resolve(true) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >true : true } @@ -413,9 +413,9 @@ const f1: F = () => { return Promise.all([ >Promise.all([ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ]) : Promise<[{ name: string; age: number; position: "GOALKEEPER"; }, { name: string; age: number; position: "STRIKER"; }]> ->Promise.all : { (values: Iterable>): Promise; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: (T | PromiseLike)[]): Promise; } +>Promise.all : { (values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; (values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; (values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; (values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; (values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; (values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; (values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; (values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: (T | PromiseLike)[]): Promise; } +>all : { (values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; (values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; (values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; (values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; (values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; (values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; (values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; (values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; } >[ { name: "David Gomes", age: 23, position: "GOALKEEPER", }, { name: "Cristiano Ronaldo", age: 33, position: "STRIKER", } ] : [{ name: string; age: number; position: "GOALKEEPER"; }, { name: string; age: number; position: "STRIKER"; }] { >{ name: "David Gomes", age: 23, position: "GOALKEEPER", } : { name: string; age: number; position: "GOALKEEPER"; } diff --git a/tests/baselines/reference/inferenceLimit.types b/tests/baselines/reference/inferenceLimit.types index 6aa7ab501ea16..92b94a08cb2f0 100644 --- a/tests/baselines/reference/inferenceLimit.types +++ b/tests/baselines/reference/inferenceLimit.types @@ -76,9 +76,9 @@ export class BrokenClass { >Promise.all(result.map(populateItems)) .then((orders: Array) => { resolve(orders); }) : Promise >Promise.all(result.map(populateItems)) .then : (onfulfilled?: (value: unknown[]) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >Promise.all(result.map(populateItems)) : Promise ->Promise.all : { (values: Iterable>): Promise; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: (T | PromiseLike)[]): Promise; } +>Promise.all : { (values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; (values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; (values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; (values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; (values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; (values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; (values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; (values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; } >Promise : PromiseConstructor ->all : { (values: Iterable>): Promise; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike, T10 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike, T9 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike, T8 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike, T7 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike, T6 | PromiseLike]): Promise<[T1, T2, T3, T4, T5, T6]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike, T5 | PromiseLike]): Promise<[T1, T2, T3, T4, T5]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike, T4 | PromiseLike]): Promise<[T1, T2, T3, T4]>; (values: [T1 | PromiseLike, T2 | PromiseLike, T3 | PromiseLike]): Promise<[T1, T2, T3]>; (values: [T1 | PromiseLike, T2 | PromiseLike]): Promise<[T1, T2]>; (values: (T | PromiseLike)[]): Promise; } +>all : { (values: Iterable): Promise<(TAll extends PromiseLike ? UAll : TAll)[]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9, T10 extends PromiseLike ? U10 : T10]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8, T9]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8, T9 extends PromiseLike ? U9 : T9]>; (values: [T1, T2, T3, T4, T5, T6, T7, T8]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7, T8 extends PromiseLike ? U8 : T8]>; (values: [T1, T2, T3, T4, T5, T6, T7]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6, T7 extends PromiseLike ? U7 : T7]>; (values: [T1, T2, T3, T4, T5, T6]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5, T6 extends PromiseLike ? U6 : T6]>; (values: [T1, T2, T3, T4, T5]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4, T5 extends PromiseLike ? U5 : T5]>; (values: [T1, T2, T3, T4]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3, T4 extends PromiseLike ? U4 : T4]>; (values: [T1, T2, T3]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2, T3 extends PromiseLike ? U3 : T3]>; (values: [T1, T2]): Promise<[T1 extends PromiseLike ? U1 : T1, T2 extends PromiseLike ? U2 : T2]>; (values: T[]): Promise<(T extends PromiseLike ? U : T)[]>; } >result.map(populateItems) : Promise[] >result.map : (callbackfn: (value: MyModule.MyModel, index: number, array: MyModule.MyModel[]) => U, thisArg?: any) => U[] >result : MyModule.MyModel[] diff --git a/tests/baselines/reference/instantiateContextualTypes.types b/tests/baselines/reference/instantiateContextualTypes.types index b5317b6f7561f..48f4d8ab8c00f 100644 --- a/tests/baselines/reference/instantiateContextualTypes.types +++ b/tests/baselines/reference/instantiateContextualTypes.types @@ -342,9 +342,9 @@ class Interesting { >Promise.resolve().then(() => { if (1 < 2) { return 'SOMETHING'; } return 'ELSE'; }) : Promise >Promise.resolve().then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => { if (1 < 2) { return 'SOMETHING'; } return 'ELSE'; } : () => "SOMETHING" | "ELSE" @@ -369,9 +369,9 @@ class Interesting { >Promise.resolve().then(() => { return 'ELSE'; }) : Promise >Promise.resolve().then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => { return 'ELSE'; } : () => "ELSE" @@ -388,9 +388,9 @@ class Interesting { >Promise.resolve().then(() => { if (1 < 2) { return 'SOMETHING'; } return 'SOMETHING'; }) : Promise >Promise.resolve().then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >then : (onfulfilled?: ((value: void) => TResult1 | PromiseLike) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike) | null | undefined) => Promise >() => { if (1 < 2) { return 'SOMETHING'; } return 'SOMETHING'; } : () => "SOMETHING" diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types index 3fab5033c2305..1c23dee8acfd9 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseImplicitAny.types @@ -27,18 +27,18 @@ function returnAnyArray(arr) { var anyPromise = Promise.resolve(5); >anyPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >5 : 5 /** @type {Promise} */ var numberPromise = Promise.resolve(5); >numberPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >5 : 5 /** diff --git a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types index 82ff886f1ec68..7d5891d6309f1 100644 --- a/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types +++ b/tests/baselines/reference/jsdocArrayObjectPromiseNoImplicitAny.types @@ -27,18 +27,18 @@ function returnNotAnyArray(arr) { var notAnyPromise = Promise.resolve(5); >notAnyPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >5 : 5 /** @type {Promise} */ var numberPromise = Promise.resolve(5); >numberPromise : Promise >Promise.resolve(5) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >5 : 5 /** diff --git a/tests/baselines/reference/noImplicitReturnsInAsync1.types b/tests/baselines/reference/noImplicitReturnsInAsync1.types index dd468d33e6e21..89f3ed5c6036b 100644 --- a/tests/baselines/reference/noImplicitReturnsInAsync1.types +++ b/tests/baselines/reference/noImplicitReturnsInAsync1.types @@ -15,8 +15,8 @@ async function test(isError: boolean = false) { >x : string >await Promise.resolve("The test is passed without an error.") : string >Promise.resolve("The test is passed without an error.") : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >"The test is passed without an error." : "The test is passed without an error." } diff --git a/tests/baselines/reference/promiseVoidErrorCallback.types b/tests/baselines/reference/promiseVoidErrorCallback.types index a1388cb04ef69..945a06e0c6e62 100644 --- a/tests/baselines/reference/promiseVoidErrorCallback.types +++ b/tests/baselines/reference/promiseVoidErrorCallback.types @@ -19,9 +19,9 @@ function f1(): Promise { return Promise.resolve({ __t1: "foo_t1" }); >Promise.resolve({ __t1: "foo_t1" }) : Promise<{ __t1: string; }> ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >{ __t1: "foo_t1" } : { __t1: string; } >__t1 : string >"foo_t1" : "foo_t1" diff --git a/tests/baselines/reference/transformNestedGeneratorsWithTry.types b/tests/baselines/reference/transformNestedGeneratorsWithTry.types index 0ea963bbe4aeb..55e055df43887 100644 --- a/tests/baselines/reference/transformNestedGeneratorsWithTry.types +++ b/tests/baselines/reference/transformNestedGeneratorsWithTry.types @@ -16,9 +16,9 @@ async function a(): Bluebird { await Bluebird.resolve(); // -- remove this and it compiles >await Bluebird.resolve() : void >Bluebird.resolve() : Promise ->Bluebird.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Bluebird.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Bluebird : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } } catch (error) { } >error : any diff --git a/tests/baselines/reference/tsbuild/moduleSpecifiers/initial-build/resolves-correctly.js b/tests/baselines/reference/tsbuild/moduleSpecifiers/initial-build/resolves-correctly.js index 274ec9c06b1cb..c7eb4062183be 100644 --- a/tests/baselines/reference/tsbuild/moduleSpecifiers/initial-build/resolves-correctly.js +++ b/tests/baselines/reference/tsbuild/moduleSpecifiers/initial-build/resolves-correctly.js @@ -38,12 +38,12 @@ exports.__esModule = true; "signature": "10837180865" }, "../../../.ts/lib.es2015.iterable.d.ts": { - "version": "183764445096", - "signature": "183764445096" + "version": "-99778774879", + "signature": "-99778774879" }, "../../../.ts/lib.es2015.promise.d.ts": { - "version": "235321148269", - "signature": "235321148269" + "version": "41686188353", + "signature": "41686188353" }, "../../../.ts/lib.es2015.proxy.d.ts": { "version": "55479865087", @@ -138,12 +138,12 @@ exports.__esModule = true; "signature": "10837180865" }, "../../../.ts/lib.es2015.iterable.d.ts": { - "version": "183764445096", - "signature": "183764445096" + "version": "-99778774879", + "signature": "-99778774879" }, "../../../.ts/lib.es2015.promise.d.ts": { - "version": "235321148269", - "signature": "235321148269" + "version": "41686188353", + "signature": "41686188353" }, "../../../.ts/lib.es2015.proxy.d.ts": { "version": "55479865087", @@ -261,12 +261,12 @@ exports.getVar = getVar; "signature": "10837180865" }, "../../../.ts/lib.es2015.iterable.d.ts": { - "version": "183764445096", - "signature": "183764445096" + "version": "-99778774879", + "signature": "-99778774879" }, "../../../.ts/lib.es2015.promise.d.ts": { - "version": "235321148269", - "signature": "235321148269" + "version": "41686188353", + "signature": "41686188353" }, "../../../.ts/lib.es2015.proxy.d.ts": { "version": "55479865087", diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.1.types b/tests/baselines/reference/types.asyncGenerators.es2018.1.types index 54db9b890ecd7..72f467e0099f9 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.1.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.1.types @@ -21,9 +21,9 @@ async function * inferReturnType4() { yield Promise.resolve(1); >yield Promise.resolve(1) : any >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * inferReturnType5() { @@ -36,9 +36,9 @@ async function * inferReturnType5() { yield Promise.resolve(2); >yield Promise.resolve(2) : any >Promise.resolve(2) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >2 : 2 } async function * inferReturnType6() { @@ -57,9 +57,9 @@ async function * inferReturnType7() { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * inferReturnType8() { @@ -89,9 +89,9 @@ const assignability2: () => AsyncIterableIterator = async function * () yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 }; @@ -114,9 +114,9 @@ const assignability4: () => AsyncIterableIterator = async function * () >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 }; @@ -149,9 +149,9 @@ const assignability7: () => AsyncIterable = async function * () { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 }; @@ -174,9 +174,9 @@ const assignability9: () => AsyncIterable = async function * () { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 }; @@ -209,9 +209,9 @@ const assignability12: () => AsyncIterator = async function * () { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 }; @@ -234,9 +234,9 @@ const assignability14: () => AsyncIterator = async function * () { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 }; @@ -266,9 +266,9 @@ async function * explicitReturnType2(): AsyncIterableIterator { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * explicitReturnType3(): AsyncIterableIterator { @@ -287,9 +287,9 @@ async function * explicitReturnType4(): AsyncIterableIterator { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * explicitReturnType5(): AsyncIterableIterator { @@ -316,9 +316,9 @@ async function * explicitReturnType7(): AsyncIterable { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * explicitReturnType8(): AsyncIterable { @@ -337,9 +337,9 @@ async function * explicitReturnType9(): AsyncIterable { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * explicitReturnType10(): AsyncIterable { @@ -366,9 +366,9 @@ async function * explicitReturnType12(): AsyncIterator { yield Promise.resolve(1); >yield Promise.resolve(1) : undefined >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * explicitReturnType13(): AsyncIterator { @@ -387,9 +387,9 @@ async function * explicitReturnType14(): AsyncIterator { >yield* [Promise.resolve(1)] : any >[Promise.resolve(1)] : Promise[] >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } async function * explicitReturnType15(): AsyncIterator { @@ -425,9 +425,9 @@ async function * awaitedType2() { >x : number >await Promise.resolve(1) : number >Promise.resolve(1) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >1 : 1 } diff --git a/tests/baselines/reference/types.asyncGenerators.es2018.2.types b/tests/baselines/reference/types.asyncGenerators.es2018.2.types index 8352487119937..c806140442836 100644 --- a/tests/baselines/reference/types.asyncGenerators.es2018.2.types +++ b/tests/baselines/reference/types.asyncGenerators.es2018.2.types @@ -20,9 +20,9 @@ async function * inferReturnType3() { yield* Promise.resolve([1, 2]); >yield* Promise.resolve([1, 2]) : any >Promise.resolve([1, 2]) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >[1, 2] : number[] >1 : 1 >2 : 2 diff --git a/tests/baselines/reference/unionAndIntersectionInference1.types b/tests/baselines/reference/unionAndIntersectionInference1.types index 72d60545e6a51..58e5f6760aa2c 100644 --- a/tests/baselines/reference/unionAndIntersectionInference1.types +++ b/tests/baselines/reference/unionAndIntersectionInference1.types @@ -192,9 +192,9 @@ const createTestAsync = (): Promise => Promise.resolve().then(() => ({ na >Promise.resolve().then(() => ({ name: 'test' })) : Promise >Promise.resolve().then : (onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >Promise.resolve() : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >then : (onfulfilled?: (value: void) => TResult1 | PromiseLike, onrejected?: (reason: any) => TResult2 | PromiseLike) => Promise >() => ({ name: 'test' }) : () => { name: "test"; } >({ name: 'test' }) : { name: "test"; } diff --git a/tests/baselines/reference/uniqueSymbols.types b/tests/baselines/reference/uniqueSymbols.types index a321593c11a8c..c083abba7cb6d 100644 --- a/tests/baselines/reference/uniqueSymbols.types +++ b/tests/baselines/reference/uniqueSymbols.types @@ -400,9 +400,9 @@ const constInitToLReadonlyNestedTypeWithIndexedAccess: L["nested"]["readonlyNest const promiseForConstCall = Promise.resolve(constCall); >promiseForConstCall : Promise >Promise.resolve(constCall) : Promise ->Promise.resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>Promise.resolve : { (value: T): Promise ? U : T>; (): Promise; } >Promise : PromiseConstructor ->resolve : { (value: T | PromiseLike): Promise; (): Promise; } +>resolve : { (value: T): Promise ? U : T>; (): Promise; } >constCall : unique symbol const arrayOfConstCall = [constCall];