mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-07 17:29:36 -05:00
Updated Promise and PromiseLike to use defaults
This commit is contained in:
35
src/lib/es2015.promise.d.ts
vendored
35
src/lib/es2015.promise.d.ts
vendored
@@ -8,45 +8,14 @@ interface Promise<T> {
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then(onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): Promise<T>;
|
||||
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T | TResult>;
|
||||
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(onfulfilled: (value: T) => TResult | PromiseLike<TResult>, onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<TResult>;
|
||||
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult1, TResult2>(onfulfilled: (value: T) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>;
|
||||
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
|
||||
|
||||
/**
|
||||
* Attaches a callback for only the rejection of the Promise.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of the callback.
|
||||
*/
|
||||
catch(onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): Promise<T>;
|
||||
|
||||
/**
|
||||
* Attaches a callback for only the rejection of the Promise.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of the callback.
|
||||
*/
|
||||
catch<TResult>(onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T | TResult>;
|
||||
catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
|
||||
}
|
||||
|
||||
interface PromiseConstructor {
|
||||
|
||||
34
src/lib/es5.d.ts
vendored
34
src/lib/es5.d.ts
vendored
@@ -1316,39 +1316,7 @@ interface PromiseLike<T> {
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then(
|
||||
onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null,
|
||||
onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): PromiseLike<T>;
|
||||
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(
|
||||
onfulfilled: ((value: T) => T | PromiseLike<T>) | undefined | null,
|
||||
onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<T | TResult>;
|
||||
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult>(
|
||||
onfulfilled: (value: T) => TResult | PromiseLike<TResult>,
|
||||
onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): PromiseLike<TResult>;
|
||||
|
||||
/**
|
||||
* Attaches callbacks for the resolution and/or rejection of the Promise.
|
||||
* @param onfulfilled The callback to execute when the Promise is resolved.
|
||||
* @param onrejected The callback to execute when the Promise is rejected.
|
||||
* @returns A Promise for the completion of which ever callback is executed.
|
||||
*/
|
||||
then<TResult1, TResult2>(
|
||||
onfulfilled: (value: T) => TResult1 | PromiseLike<TResult1>,
|
||||
onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>;
|
||||
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
|
||||
}
|
||||
|
||||
interface ArrayLike<T> {
|
||||
|
||||
@@ -6,7 +6,7 @@ tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration1
|
||||
tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(10,23): error TS1055: Type 'typeof Thenable' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.
|
||||
Type 'Thenable' is not assignable to type 'PromiseLike<any>'.
|
||||
Types of property 'then' are incompatible.
|
||||
Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => any, onrejected?: (reason: any) => any): PromiseLike<any>; <TResult>(onfulfilled: (value: any) => any, onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<any>; <TResult>(onfulfilled: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult1, TResult2>(onfulfilled: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>; }'.
|
||||
Type '() => void' is not assignable to type '<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => PromiseLike<TResult1 | TResult2>'.
|
||||
Type 'void' is not assignable to type 'PromiseLike<any>'.
|
||||
tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(17,16): error TS1059: Return expression in async function does not have a valid callable 'then' member.
|
||||
tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration15_es5.ts(23,25): error TS1058: Operand for 'await' does not have a valid callable 'then' member.
|
||||
@@ -37,7 +37,7 @@ tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration1
|
||||
!!! error TS1055: Type 'typeof Thenable' is not a valid async function return type in ES5/ES3 because it does not refer to a Promise-compatible constructor value.
|
||||
!!! error TS1055: Type 'Thenable' is not assignable to type 'PromiseLike<any>'.
|
||||
!!! error TS1055: Types of property 'then' are incompatible.
|
||||
!!! error TS1055: Type '() => void' is not assignable to type '{ (onfulfilled?: (value: any) => any, onrejected?: (reason: any) => any): PromiseLike<any>; <TResult>(onfulfilled: (value: any) => any, onrejected: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<any>; <TResult>(onfulfilled: (value: any) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): PromiseLike<TResult>; <TResult1, TResult2>(onfulfilled: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): PromiseLike<TResult1 | TResult2>; }'.
|
||||
!!! error TS1055: Type '() => void' is not assignable to type '<TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => PromiseLike<TResult1 | TResult2>'.
|
||||
!!! error TS1055: Type 'void' is not assignable to type 'PromiseLike<any>'.
|
||||
async function fn7() { return; } // valid: Promise<void>
|
||||
async function fn8() { return 1; } // valid: Promise<number>
|
||||
|
||||
@@ -37,14 +37,14 @@ export class BrokenClass {
|
||||
>reject : Symbol(reject, Decl(file1.ts, 13, 34))
|
||||
|
||||
this.doStuff(order.id)
|
||||
>this.doStuff(order.id) .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>this.doStuff(order.id) .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>this.doStuff : Symbol(BrokenClass.doStuff, Decl(file1.ts, 27, 3))
|
||||
>this : Symbol(BrokenClass, Decl(file1.ts, 1, 39))
|
||||
>doStuff : Symbol(BrokenClass.doStuff, Decl(file1.ts, 27, 3))
|
||||
>order : Symbol(order, Decl(file1.ts, 12, 25))
|
||||
|
||||
.then((items) => {
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>items : Symbol(items, Decl(file1.ts, 15, 17))
|
||||
|
||||
order.items = items;
|
||||
@@ -60,7 +60,7 @@ export class BrokenClass {
|
||||
};
|
||||
|
||||
return Promise.all(result.map(populateItems))
|
||||
>Promise.all(result.map(populateItems)) .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>Promise.all(result.map(populateItems)) .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>Promise.all : Symbol(PromiseConstructor.all, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --))
|
||||
>Promise : Symbol(Promise, Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --))
|
||||
>all : Symbol(PromiseConstructor.all, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --))
|
||||
@@ -70,7 +70,7 @@ export class BrokenClass {
|
||||
>populateItems : Symbol(populateItems, Decl(file1.ts, 12, 7))
|
||||
|
||||
.then((orders: Array<MyModule.MyModel>) => {
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>orders : Symbol(orders, Decl(file1.ts, 23, 13))
|
||||
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
|
||||
>MyModule : Symbol(MyModule, Decl(file1.ts, 1, 6))
|
||||
|
||||
@@ -46,7 +46,7 @@ export class BrokenClass {
|
||||
|
||||
this.doStuff(order.id)
|
||||
>this.doStuff(order.id) .then((items) => { order.items = items; resolve(order); }) : Promise<void>
|
||||
>this.doStuff(order.id) .then : { (onfulfilled?: (value: void) => void | PromiseLike<void>, onrejected?: (reason: any) => void | PromiseLike<void>): Promise<void>; <TResult>(onfulfilled: (value: void) => void | PromiseLike<void>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<void | TResult>; <TResult>(onfulfilled: (value: void) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: void) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>this.doStuff(order.id) .then : <TResult1 = void, TResult2 = never>(onfulfilled?: (value: void) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>this.doStuff(order.id) : Promise<void>
|
||||
>this.doStuff : (id: number) => Promise<void>
|
||||
>this : this
|
||||
@@ -56,7 +56,7 @@ export class BrokenClass {
|
||||
>id : any
|
||||
|
||||
.then((items) => {
|
||||
>then : { (onfulfilled?: (value: void) => void | PromiseLike<void>, onrejected?: (reason: any) => void | PromiseLike<void>): Promise<void>; <TResult>(onfulfilled: (value: void) => void | PromiseLike<void>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<void | TResult>; <TResult>(onfulfilled: (value: void) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: void) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = void, TResult2 = never>(onfulfilled?: (value: void) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>(items) => { order.items = items; resolve(order); } : (items: void) => void
|
||||
>items : void
|
||||
|
||||
@@ -78,7 +78,7 @@ export class BrokenClass {
|
||||
|
||||
return Promise.all(result.map(populateItems))
|
||||
>Promise.all(result.map(populateItems)) .then((orders: Array<MyModule.MyModel>) => { resolve(orders); }) : Promise<void>
|
||||
>Promise.all(result.map(populateItems)) .then : { (onfulfilled?: (value: {}[]) => {}[] | PromiseLike<{}[]>, onrejected?: (reason: any) => {}[] | PromiseLike<{}[]>): Promise<{}[]>; <TResult>(onfulfilled: (value: {}[]) => {}[] | PromiseLike<{}[]>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{}[] | TResult>; <TResult>(onfulfilled: (value: {}[]) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}[]) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>Promise.all(result.map(populateItems)) .then : <TResult1 = {}[], TResult2 = never>(onfulfilled?: (value: {}[]) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>Promise.all(result.map(populateItems)) : Promise<{}[]>
|
||||
>Promise.all : { <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; <T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; <T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; <T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; <T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>; <T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>; <T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>]): Promise<[T1, T2, T3, T4]>; <T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>; <T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>; <T>(values: (T | PromiseLike<T>)[]): Promise<T[]>; <TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>; }
|
||||
>Promise : PromiseConstructor
|
||||
@@ -90,7 +90,7 @@ export class BrokenClass {
|
||||
>populateItems : (order: any) => Promise<{}>
|
||||
|
||||
.then((orders: Array<MyModule.MyModel>) => {
|
||||
>then : { (onfulfilled?: (value: {}[]) => {}[] | PromiseLike<{}[]>, onrejected?: (reason: any) => {}[] | PromiseLike<{}[]>): Promise<{}[]>; <TResult>(onfulfilled: (value: {}[]) => {}[] | PromiseLike<{}[]>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{}[] | TResult>; <TResult>(onfulfilled: (value: {}[]) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}[]) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = {}[], TResult2 = never>(onfulfilled?: (value: {}[]) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>(orders: Array<MyModule.MyModel>) => { resolve(orders); } : (orders: MyModule.MyModel[]) => void
|
||||
>orders : MyModule.MyModel[]
|
||||
>Array : T[]
|
||||
|
||||
@@ -121,9 +121,9 @@ declare var console: any;
|
||||
>console : Symbol(console, Decl(modularizeLibrary_NoErrorDuplicateLibOptions1.ts, 52, 11))
|
||||
|
||||
out().then(() => {
|
||||
>out().then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>out().then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>out : Symbol(out, Decl(modularizeLibrary_NoErrorDuplicateLibOptions1.ts, 45, 37))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
|
||||
console.log("Yea!");
|
||||
>console : Symbol(console, Decl(modularizeLibrary_NoErrorDuplicateLibOptions1.ts, 52, 11))
|
||||
|
||||
@@ -148,10 +148,10 @@ declare var console: any;
|
||||
|
||||
out().then(() => {
|
||||
>out().then(() => { console.log("Yea!");}) : Promise<void>
|
||||
>out().then : { (onfulfilled?: (value: {}) => {} | PromiseLike<{}>, onrejected?: (reason: any) => {} | PromiseLike<{}>): Promise<{}>; <TResult>(onfulfilled: (value: {}) => {} | PromiseLike<{}>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{} | TResult>; <TResult>(onfulfilled: (value: {}) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>out().then : <TResult1 = {}, TResult2 = never>(onfulfilled?: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>out() : Promise<{}>
|
||||
>out : () => Promise<{}>
|
||||
>then : { (onfulfilled?: (value: {}) => {} | PromiseLike<{}>, onrejected?: (reason: any) => {} | PromiseLike<{}>): Promise<{}>; <TResult>(onfulfilled: (value: {}) => {} | PromiseLike<{}>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{} | TResult>; <TResult>(onfulfilled: (value: {}) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = {}, TResult2 = never>(onfulfilled?: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>() => { console.log("Yea!");} : () => void
|
||||
|
||||
console.log("Yea!");
|
||||
|
||||
@@ -121,9 +121,9 @@ declare var console: any;
|
||||
>console : Symbol(console, Decl(modularizeLibrary_NoErrorDuplicateLibOptions2.ts, 52, 11))
|
||||
|
||||
out().then(() => {
|
||||
>out().then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>out().then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>out : Symbol(out, Decl(modularizeLibrary_NoErrorDuplicateLibOptions2.ts, 45, 37))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
|
||||
console.log("Yea!");
|
||||
>console : Symbol(console, Decl(modularizeLibrary_NoErrorDuplicateLibOptions2.ts, 52, 11))
|
||||
|
||||
@@ -148,10 +148,10 @@ declare var console: any;
|
||||
|
||||
out().then(() => {
|
||||
>out().then(() => { console.log("Yea!");}) : Promise<void>
|
||||
>out().then : { (onfulfilled?: (value: {}) => {} | PromiseLike<{}>, onrejected?: (reason: any) => {} | PromiseLike<{}>): Promise<{}>; <TResult>(onfulfilled: (value: {}) => {} | PromiseLike<{}>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{} | TResult>; <TResult>(onfulfilled: (value: {}) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>out().then : <TResult1 = {}, TResult2 = never>(onfulfilled?: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>out() : Promise<{}>
|
||||
>out : () => Promise<{}>
|
||||
>then : { (onfulfilled?: (value: {}) => {} | PromiseLike<{}>, onrejected?: (reason: any) => {} | PromiseLike<{}>): Promise<{}>; <TResult>(onfulfilled: (value: {}) => {} | PromiseLike<{}>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{} | TResult>; <TResult>(onfulfilled: (value: {}) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = {}, TResult2 = never>(onfulfilled?: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>() => { console.log("Yea!");} : () => void
|
||||
|
||||
console.log("Yea!");
|
||||
|
||||
@@ -121,9 +121,9 @@ declare var console: any;
|
||||
>console : Symbol(console, Decl(modularizeLibrary_TargetES5UsingES6Lib.ts, 52, 11))
|
||||
|
||||
out().then(() => {
|
||||
>out().then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>out().then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>out : Symbol(out, Decl(modularizeLibrary_TargetES5UsingES6Lib.ts, 45, 37))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
|
||||
console.log("Yea!");
|
||||
>console : Symbol(console, Decl(modularizeLibrary_TargetES5UsingES6Lib.ts, 52, 11))
|
||||
|
||||
@@ -148,10 +148,10 @@ declare var console: any;
|
||||
|
||||
out().then(() => {
|
||||
>out().then(() => { console.log("Yea!");}) : Promise<void>
|
||||
>out().then : { (onfulfilled?: (value: {}) => {} | PromiseLike<{}>, onrejected?: (reason: any) => {} | PromiseLike<{}>): Promise<{}>; <TResult>(onfulfilled: (value: {}) => {} | PromiseLike<{}>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{} | TResult>; <TResult>(onfulfilled: (value: {}) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>out().then : <TResult1 = {}, TResult2 = never>(onfulfilled?: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>out() : Promise<{}>
|
||||
>out : () => Promise<{}>
|
||||
>then : { (onfulfilled?: (value: {}) => {} | PromiseLike<{}>, onrejected?: (reason: any) => {} | PromiseLike<{}>): Promise<{}>; <TResult>(onfulfilled: (value: {}) => {} | PromiseLike<{}>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<{} | TResult>; <TResult>(onfulfilled: (value: {}) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = {}, TResult2 = never>(onfulfilled?: (value: {}) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>() => { console.log("Yea!");} : () => void
|
||||
|
||||
console.log("Yea!");
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
//// [promiseType.ts]
|
||||
declare var p: Promise<boolean>;
|
||||
|
||||
const a = p.then();
|
||||
const b = p.then(b => 1);
|
||||
const c = p.then(b => 1, e => 'error');
|
||||
const d = p.then(b => 1, e => { });
|
||||
const e = p.then(b => 1, e => { throw Error(); });
|
||||
const f = p.then(b => 1, e => Promise.reject(Error()));
|
||||
const g = p.catch(e => 'error');
|
||||
const h = p.catch(e => { });
|
||||
const i = p.catch(e => { throw Error(); });
|
||||
const j = p.catch(e => Promise.reject(Error()));
|
||||
declare var x: any;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -22,17 +12,15 @@ async function B() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NOTE: This reports a "No best comment type exists among return expressions." error, and is
|
||||
// ignored to get the types result for the test.
|
||||
// async function C() {
|
||||
// try {
|
||||
// const a = await p;
|
||||
// return 1;
|
||||
// }
|
||||
// catch (e) {
|
||||
// return 'error';
|
||||
// }
|
||||
// }
|
||||
async function C() {
|
||||
try {
|
||||
const a = await p;
|
||||
return 1;
|
||||
}
|
||||
catch (e) {
|
||||
return 'error';
|
||||
}
|
||||
}
|
||||
|
||||
async function D() {
|
||||
try {
|
||||
@@ -96,64 +84,140 @@ async function I() {
|
||||
// addresses github issue #4903:
|
||||
|
||||
const p00 = p.catch();
|
||||
const p01 = p.catch(undefined);
|
||||
const p07 = p.catch(null);
|
||||
const p02 = p.catch(() => 1);
|
||||
const p03 = p.catch(() => {});
|
||||
const p04 = p.catch(() => {throw 1});
|
||||
const p05 = p.catch(() => Promise.reject(1));
|
||||
const p06 = p.catch(() => Promise.resolve(1));
|
||||
const p01 = p.then();
|
||||
|
||||
const p10 = p.then();
|
||||
const p10 = p.catch(undefined);
|
||||
const p11 = p.catch(null);
|
||||
const p12 = p.catch(() => 1);
|
||||
const p13 = p.catch(() => x);
|
||||
const p14 = p.catch(() => undefined);
|
||||
const p15 = p.catch(() => null);
|
||||
const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(() => 1);
|
||||
const p22 = p.then(() => {});
|
||||
const p23 = p.then(() => {throw 1});
|
||||
const p24 = p.then(() => Promise.resolve(1));
|
||||
const p25 = p.then(() => Promise.reject(1));
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
const p23 = p.then(() => x);
|
||||
const p24 = p.then(() => undefined);
|
||||
const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, () => 1);
|
||||
const p32 = p.then(undefined, () => {});
|
||||
const p33 = p.then(undefined, () => {throw 1});
|
||||
const p34 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p35 = p.then(undefined, () => Promise.reject(1));
|
||||
const p31 = p.then(undefined, null);
|
||||
const p32 = p.then(undefined, () => 1);
|
||||
const p33 = p.then(undefined, () => x);
|
||||
const p34 = p.then(undefined, () => undefined);
|
||||
const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(() => "1", undefined);
|
||||
const p41 = p.then(() => "1", () => 1);
|
||||
const p42 = p.then(() => "1", () => {});
|
||||
const p43 = p.then(() => "1", () => {throw 1});
|
||||
const p44 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p45 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
const p42 = p.then(null, () => 1);
|
||||
const p43 = p.then(null, () => x);
|
||||
const p44 = p.then(null, () => undefined);
|
||||
const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => {}, undefined);
|
||||
const p51 = p.then(() => {}, () => 1);
|
||||
const p52 = p.then(() => {}, () => {});
|
||||
const p53 = p.then(() => {}, () => {throw 1});
|
||||
const p54 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p55 = p.then(() => {}, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
const p52 = p.then(() => "1", () => 1);
|
||||
const p53 = p.then(() => "1", () => x);
|
||||
const p54 = p.then(() => "1", () => undefined);
|
||||
const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => {throw 1}, undefined);
|
||||
const p61 = p.then(() => {throw 1}, () => 1);
|
||||
const p62 = p.then(() => {throw 1}, () => {});
|
||||
const p63 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const p64 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const p65 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
const p62 = p.then(() => x, () => 1);
|
||||
const p63 = p.then(() => x, () => x);
|
||||
const p64 = p.then(() => x, () => undefined);
|
||||
const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const p71 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const p72 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const p73 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const p74 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const p75 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
const p72 = p.then(() => undefined, () => 1);
|
||||
const p73 = p.then(() => undefined, () => x);
|
||||
const p74 = p.then(() => undefined, () => undefined);
|
||||
const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => Promise.reject(1), undefined);
|
||||
const p81 = p.then(() => Promise.reject(1), () => 1);
|
||||
const p82 = p.then(() => Promise.reject(1), () => {});
|
||||
const p83 = p.then(() => Promise.reject(1), () => {throw 1});
|
||||
const p84 = p.then(() => Promise.reject(1), () => Promise.resolve(1));
|
||||
const p85 = p.then(() => Promise.reject(1), () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
const p82 = p.then(() => null, () => 1);
|
||||
const p83 = p.then(() => null, () => x);
|
||||
const p84 = p.then(() => null, () => undefined);
|
||||
const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
const p91 = p.then(() => {}, null);
|
||||
const p92 = p.then(() => {}, () => 1);
|
||||
const p93 = p.then(() => {}, () => x);
|
||||
const p94 = p.then(() => {}, () => undefined);
|
||||
const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
const pa1 = p.then(() => {throw 1}, null);
|
||||
const pa2 = p.then(() => {throw 1}, () => 1);
|
||||
const pa3 = p.then(() => {throw 1}, () => x);
|
||||
const pa4 = p.then(() => {throw 1}, () => undefined);
|
||||
const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
const pb2 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const pb3 = p.then(() => Promise.resolve("1"), () => x);
|
||||
const pb4 = p.then(() => Promise.resolve("1"), () => undefined);
|
||||
const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
const pc2 = p.then(() => Promise.reject("1"), () => 1);
|
||||
const pc3 = p.then(() => Promise.reject("1"), () => x);
|
||||
const pc4 = p.then(() => Promise.reject("1"), () => undefined);
|
||||
const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
const pc6 = p.then(() => Promise.reject("1"), () => {});
|
||||
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
|
||||
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
|
||||
//// [promiseType.js]
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
@@ -164,16 +228,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
const a = p.then();
|
||||
const b = p.then(b => 1);
|
||||
const c = p.then(b => 1, e => 'error');
|
||||
const d = p.then(b => 1, e => { });
|
||||
const e = p.then(b => 1, e => { throw Error(); });
|
||||
const f = p.then(b => 1, e => Promise.reject(Error()));
|
||||
const g = p.catch(e => 'error');
|
||||
const h = p.catch(e => { });
|
||||
const i = p.catch(e => { throw Error(); });
|
||||
const j = p.catch(e => Promise.reject(Error()));
|
||||
function A() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const a = yield p;
|
||||
@@ -186,17 +240,17 @@ function B() {
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
// NOTE: This reports a "No best comment type exists among return expressions." error, and is
|
||||
// ignored to get the types result for the test.
|
||||
// async function C() {
|
||||
// try {
|
||||
// const a = await p;
|
||||
// return 1;
|
||||
// }
|
||||
// catch (e) {
|
||||
// return 'error';
|
||||
// }
|
||||
// }
|
||||
function C() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
const a = yield p;
|
||||
return 1;
|
||||
}
|
||||
catch (e) {
|
||||
return 'error';
|
||||
}
|
||||
});
|
||||
}
|
||||
function D() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
@@ -264,53 +318,124 @@ function I() {
|
||||
}
|
||||
// addresses github issue #4903:
|
||||
const p00 = p.catch();
|
||||
const p01 = p.catch(undefined);
|
||||
const p07 = p.catch(null);
|
||||
const p02 = p.catch(() => 1);
|
||||
const p03 = p.catch(() => { });
|
||||
const p04 = p.catch(() => { throw 1; });
|
||||
const p05 = p.catch(() => Promise.reject(1));
|
||||
const p06 = p.catch(() => Promise.resolve(1));
|
||||
const p10 = p.then();
|
||||
const p01 = p.then();
|
||||
const p10 = p.catch(undefined);
|
||||
const p11 = p.catch(null);
|
||||
const p12 = p.catch(() => 1);
|
||||
const p13 = p.catch(() => x);
|
||||
const p14 = p.catch(() => undefined);
|
||||
const p15 = p.catch(() => null);
|
||||
const p16 = p.catch(() => { });
|
||||
const p17 = p.catch(() => { throw 1; });
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(() => 1);
|
||||
const p22 = p.then(() => { });
|
||||
const p23 = p.then(() => { throw 1; });
|
||||
const p24 = p.then(() => Promise.resolve(1));
|
||||
const p25 = p.then(() => Promise.reject(1));
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
const p23 = p.then(() => x);
|
||||
const p24 = p.then(() => undefined);
|
||||
const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => { });
|
||||
const p27 = p.then(() => { throw 1; });
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, () => 1);
|
||||
const p32 = p.then(undefined, () => { });
|
||||
const p33 = p.then(undefined, () => { throw 1; });
|
||||
const p34 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p35 = p.then(undefined, () => Promise.reject(1));
|
||||
const p40 = p.then(() => "1", undefined);
|
||||
const p41 = p.then(() => "1", () => 1);
|
||||
const p42 = p.then(() => "1", () => { });
|
||||
const p43 = p.then(() => "1", () => { throw 1; });
|
||||
const p44 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p45 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p50 = p.then(() => { }, undefined);
|
||||
const p51 = p.then(() => { }, () => 1);
|
||||
const p52 = p.then(() => { }, () => { });
|
||||
const p53 = p.then(() => { }, () => { throw 1; });
|
||||
const p54 = p.then(() => { }, () => Promise.resolve(1));
|
||||
const p55 = p.then(() => { }, () => Promise.reject(1));
|
||||
const p60 = p.then(() => { throw 1; }, undefined);
|
||||
const p61 = p.then(() => { throw 1; }, () => 1);
|
||||
const p62 = p.then(() => { throw 1; }, () => { });
|
||||
const p63 = p.then(() => { throw 1; }, () => { throw 1; });
|
||||
const p64 = p.then(() => { throw 1; }, () => Promise.resolve(1));
|
||||
const p65 = p.then(() => { throw 1; }, () => Promise.reject(1));
|
||||
const p70 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const p71 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const p72 = p.then(() => Promise.resolve("1"), () => { });
|
||||
const p73 = p.then(() => Promise.resolve("1"), () => { throw 1; });
|
||||
const p74 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const p75 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const p80 = p.then(() => Promise.reject(1), undefined);
|
||||
const p81 = p.then(() => Promise.reject(1), () => 1);
|
||||
const p82 = p.then(() => Promise.reject(1), () => { });
|
||||
const p83 = p.then(() => Promise.reject(1), () => { throw 1; });
|
||||
const p84 = p.then(() => Promise.reject(1), () => Promise.resolve(1));
|
||||
const p85 = p.then(() => Promise.reject(1), () => Promise.reject(1));
|
||||
const p31 = p.then(undefined, null);
|
||||
const p32 = p.then(undefined, () => 1);
|
||||
const p33 = p.then(undefined, () => x);
|
||||
const p34 = p.then(undefined, () => undefined);
|
||||
const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => { });
|
||||
const p37 = p.then(undefined, () => { throw 1; });
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
const p42 = p.then(null, () => 1);
|
||||
const p43 = p.then(null, () => x);
|
||||
const p44 = p.then(null, () => undefined);
|
||||
const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => { });
|
||||
const p47 = p.then(null, () => { throw 1; });
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
const p52 = p.then(() => "1", () => 1);
|
||||
const p53 = p.then(() => "1", () => x);
|
||||
const p54 = p.then(() => "1", () => undefined);
|
||||
const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => { });
|
||||
const p57 = p.then(() => "1", () => { throw 1; });
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
const p62 = p.then(() => x, () => 1);
|
||||
const p63 = p.then(() => x, () => x);
|
||||
const p64 = p.then(() => x, () => undefined);
|
||||
const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => { });
|
||||
const p67 = p.then(() => x, () => { throw 1; });
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
const p72 = p.then(() => undefined, () => 1);
|
||||
const p73 = p.then(() => undefined, () => x);
|
||||
const p74 = p.then(() => undefined, () => undefined);
|
||||
const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => { });
|
||||
const p77 = p.then(() => undefined, () => { throw 1; });
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
const p82 = p.then(() => null, () => 1);
|
||||
const p83 = p.then(() => null, () => x);
|
||||
const p84 = p.then(() => null, () => undefined);
|
||||
const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => { });
|
||||
const p87 = p.then(() => null, () => { throw 1; });
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
const p90 = p.then(() => { }, undefined);
|
||||
const p91 = p.then(() => { }, null);
|
||||
const p92 = p.then(() => { }, () => 1);
|
||||
const p93 = p.then(() => { }, () => x);
|
||||
const p94 = p.then(() => { }, () => undefined);
|
||||
const p95 = p.then(() => { }, () => null);
|
||||
const p96 = p.then(() => { }, () => { });
|
||||
const p97 = p.then(() => { }, () => { throw 1; });
|
||||
const p98 = p.then(() => { }, () => Promise.resolve(1));
|
||||
const p99 = p.then(() => { }, () => Promise.reject(1));
|
||||
const pa0 = p.then(() => { throw 1; }, undefined);
|
||||
const pa1 = p.then(() => { throw 1; }, null);
|
||||
const pa2 = p.then(() => { throw 1; }, () => 1);
|
||||
const pa3 = p.then(() => { throw 1; }, () => x);
|
||||
const pa4 = p.then(() => { throw 1; }, () => undefined);
|
||||
const pa5 = p.then(() => { throw 1; }, () => null);
|
||||
const pa6 = p.then(() => { throw 1; }, () => { });
|
||||
const pa7 = p.then(() => { throw 1; }, () => { throw 1; });
|
||||
const pa8 = p.then(() => { throw 1; }, () => Promise.resolve(1));
|
||||
const pa9 = p.then(() => { throw 1; }, () => Promise.reject(1));
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
const pb2 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const pb3 = p.then(() => Promise.resolve("1"), () => x);
|
||||
const pb4 = p.then(() => Promise.resolve("1"), () => undefined);
|
||||
const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => { });
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => { throw 1; });
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
const pc2 = p.then(() => Promise.reject("1"), () => 1);
|
||||
const pc3 = p.then(() => Promise.reject("1"), () => x);
|
||||
const pc4 = p.then(() => Promise.reject("1"), () => undefined);
|
||||
const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
const pc6 = p.then(() => Promise.reject("1"), () => { });
|
||||
const pc7 = p.then(() => Promise.reject("1"), () => { throw 1; });
|
||||
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,16 +1,6 @@
|
||||
//// [promiseTypeStrictNull.ts]
|
||||
declare var p: Promise<boolean>;
|
||||
|
||||
const a = p.then();
|
||||
const b = p.then(b => 1);
|
||||
const c = p.then(b => 1, e => 'error');
|
||||
const d = p.then(b => 1, e => { });
|
||||
const e = p.then(b => 1, e => { throw Error(); });
|
||||
const f = p.then(b => 1, e => Promise.reject(Error()));
|
||||
const g = p.catch(e => 'error');
|
||||
const h = p.catch(e => { });
|
||||
const i = p.catch(e => { throw Error(); });
|
||||
const j = p.catch(e => Promise.reject(Error()));
|
||||
declare var x: any;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -22,17 +12,15 @@ async function B() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NOTE: This reports a "No best comment type exists among return expressions." error, and is
|
||||
// ignored to get the types result for the test.
|
||||
// async function C() {
|
||||
// try {
|
||||
// const a = await p;
|
||||
// return 1;
|
||||
// }
|
||||
// catch (e) {
|
||||
// return 'error';
|
||||
// }
|
||||
// }
|
||||
async function C() {
|
||||
try {
|
||||
const a = await p;
|
||||
return 1;
|
||||
}
|
||||
catch (e) {
|
||||
return 'error';
|
||||
}
|
||||
}
|
||||
|
||||
async function D() {
|
||||
try {
|
||||
@@ -96,64 +84,140 @@ async function I() {
|
||||
// addresses github issue #4903:
|
||||
|
||||
const p00 = p.catch();
|
||||
const p01 = p.catch(undefined);
|
||||
const p07 = p.catch(null);
|
||||
const p02 = p.catch(() => 1);
|
||||
const p03 = p.catch(() => {});
|
||||
const p04 = p.catch(() => {throw 1});
|
||||
const p05 = p.catch(() => Promise.reject(1));
|
||||
const p06 = p.catch(() => Promise.resolve(1));
|
||||
const p01 = p.then();
|
||||
|
||||
const p10 = p.then();
|
||||
const p10 = p.catch(undefined);
|
||||
const p11 = p.catch(null);
|
||||
const p12 = p.catch(() => 1);
|
||||
const p13 = p.catch(() => x);
|
||||
const p14 = p.catch(() => undefined);
|
||||
const p15 = p.catch(() => null);
|
||||
const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(() => 1);
|
||||
const p22 = p.then(() => {});
|
||||
const p23 = p.then(() => {throw 1});
|
||||
const p24 = p.then(() => Promise.resolve(1));
|
||||
const p25 = p.then(() => Promise.reject(1));
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
const p23 = p.then(() => x);
|
||||
const p24 = p.then(() => undefined);
|
||||
const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, () => 1);
|
||||
const p32 = p.then(undefined, () => {});
|
||||
const p33 = p.then(undefined, () => {throw 1});
|
||||
const p34 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p35 = p.then(undefined, () => Promise.reject(1));
|
||||
const p31 = p.then(undefined, null);
|
||||
const p32 = p.then(undefined, () => 1);
|
||||
const p33 = p.then(undefined, () => x);
|
||||
const p34 = p.then(undefined, () => undefined);
|
||||
const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(() => "1", undefined);
|
||||
const p41 = p.then(() => "1", () => 1);
|
||||
const p42 = p.then(() => "1", () => {});
|
||||
const p43 = p.then(() => "1", () => {throw 1});
|
||||
const p44 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p45 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
const p42 = p.then(null, () => 1);
|
||||
const p43 = p.then(null, () => x);
|
||||
const p44 = p.then(null, () => undefined);
|
||||
const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => {}, undefined);
|
||||
const p51 = p.then(() => {}, () => 1);
|
||||
const p52 = p.then(() => {}, () => {});
|
||||
const p53 = p.then(() => {}, () => {throw 1});
|
||||
const p54 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p55 = p.then(() => {}, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
const p52 = p.then(() => "1", () => 1);
|
||||
const p53 = p.then(() => "1", () => x);
|
||||
const p54 = p.then(() => "1", () => undefined);
|
||||
const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => {throw 1}, undefined);
|
||||
const p61 = p.then(() => {throw 1}, () => 1);
|
||||
const p62 = p.then(() => {throw 1}, () => {});
|
||||
const p63 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const p64 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const p65 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
const p62 = p.then(() => x, () => 1);
|
||||
const p63 = p.then(() => x, () => x);
|
||||
const p64 = p.then(() => x, () => undefined);
|
||||
const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const p71 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const p72 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const p73 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const p74 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const p75 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
const p72 = p.then(() => undefined, () => 1);
|
||||
const p73 = p.then(() => undefined, () => x);
|
||||
const p74 = p.then(() => undefined, () => undefined);
|
||||
const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => Promise.reject(1), undefined);
|
||||
const p81 = p.then(() => Promise.reject(1), () => 1);
|
||||
const p82 = p.then(() => Promise.reject(1), () => {});
|
||||
const p83 = p.then(() => Promise.reject(1), () => {throw 1});
|
||||
const p84 = p.then(() => Promise.reject(1), () => Promise.resolve(1));
|
||||
const p85 = p.then(() => Promise.reject(1), () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
const p82 = p.then(() => null, () => 1);
|
||||
const p83 = p.then(() => null, () => x);
|
||||
const p84 = p.then(() => null, () => undefined);
|
||||
const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
const p91 = p.then(() => {}, null);
|
||||
const p92 = p.then(() => {}, () => 1);
|
||||
const p93 = p.then(() => {}, () => x);
|
||||
const p94 = p.then(() => {}, () => undefined);
|
||||
const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
const pa1 = p.then(() => {throw 1}, null);
|
||||
const pa2 = p.then(() => {throw 1}, () => 1);
|
||||
const pa3 = p.then(() => {throw 1}, () => x);
|
||||
const pa4 = p.then(() => {throw 1}, () => undefined);
|
||||
const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
const pb2 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const pb3 = p.then(() => Promise.resolve("1"), () => x);
|
||||
const pb4 = p.then(() => Promise.resolve("1"), () => undefined);
|
||||
const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
const pc2 = p.then(() => Promise.reject("1"), () => 1);
|
||||
const pc3 = p.then(() => Promise.reject("1"), () => x);
|
||||
const pc4 = p.then(() => Promise.reject("1"), () => undefined);
|
||||
const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
const pc6 = p.then(() => Promise.reject("1"), () => {});
|
||||
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
|
||||
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
|
||||
//// [promiseTypeStrictNull.js]
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
@@ -164,16 +228,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
const a = p.then();
|
||||
const b = p.then(b => 1);
|
||||
const c = p.then(b => 1, e => 'error');
|
||||
const d = p.then(b => 1, e => { });
|
||||
const e = p.then(b => 1, e => { throw Error(); });
|
||||
const f = p.then(b => 1, e => Promise.reject(Error()));
|
||||
const g = p.catch(e => 'error');
|
||||
const h = p.catch(e => { });
|
||||
const i = p.catch(e => { throw Error(); });
|
||||
const j = p.catch(e => Promise.reject(Error()));
|
||||
function A() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const a = yield p;
|
||||
@@ -186,17 +240,17 @@ function B() {
|
||||
return 1;
|
||||
});
|
||||
}
|
||||
// NOTE: This reports a "No best comment type exists among return expressions." error, and is
|
||||
// ignored to get the types result for the test.
|
||||
// async function C() {
|
||||
// try {
|
||||
// const a = await p;
|
||||
// return 1;
|
||||
// }
|
||||
// catch (e) {
|
||||
// return 'error';
|
||||
// }
|
||||
// }
|
||||
function C() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
const a = yield p;
|
||||
return 1;
|
||||
}
|
||||
catch (e) {
|
||||
return 'error';
|
||||
}
|
||||
});
|
||||
}
|
||||
function D() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
@@ -264,53 +318,124 @@ function I() {
|
||||
}
|
||||
// addresses github issue #4903:
|
||||
const p00 = p.catch();
|
||||
const p01 = p.catch(undefined);
|
||||
const p07 = p.catch(null);
|
||||
const p02 = p.catch(() => 1);
|
||||
const p03 = p.catch(() => { });
|
||||
const p04 = p.catch(() => { throw 1; });
|
||||
const p05 = p.catch(() => Promise.reject(1));
|
||||
const p06 = p.catch(() => Promise.resolve(1));
|
||||
const p10 = p.then();
|
||||
const p01 = p.then();
|
||||
const p10 = p.catch(undefined);
|
||||
const p11 = p.catch(null);
|
||||
const p12 = p.catch(() => 1);
|
||||
const p13 = p.catch(() => x);
|
||||
const p14 = p.catch(() => undefined);
|
||||
const p15 = p.catch(() => null);
|
||||
const p16 = p.catch(() => { });
|
||||
const p17 = p.catch(() => { throw 1; });
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(() => 1);
|
||||
const p22 = p.then(() => { });
|
||||
const p23 = p.then(() => { throw 1; });
|
||||
const p24 = p.then(() => Promise.resolve(1));
|
||||
const p25 = p.then(() => Promise.reject(1));
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
const p23 = p.then(() => x);
|
||||
const p24 = p.then(() => undefined);
|
||||
const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => { });
|
||||
const p27 = p.then(() => { throw 1; });
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, () => 1);
|
||||
const p32 = p.then(undefined, () => { });
|
||||
const p33 = p.then(undefined, () => { throw 1; });
|
||||
const p34 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p35 = p.then(undefined, () => Promise.reject(1));
|
||||
const p40 = p.then(() => "1", undefined);
|
||||
const p41 = p.then(() => "1", () => 1);
|
||||
const p42 = p.then(() => "1", () => { });
|
||||
const p43 = p.then(() => "1", () => { throw 1; });
|
||||
const p44 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p45 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p50 = p.then(() => { }, undefined);
|
||||
const p51 = p.then(() => { }, () => 1);
|
||||
const p52 = p.then(() => { }, () => { });
|
||||
const p53 = p.then(() => { }, () => { throw 1; });
|
||||
const p54 = p.then(() => { }, () => Promise.resolve(1));
|
||||
const p55 = p.then(() => { }, () => Promise.reject(1));
|
||||
const p60 = p.then(() => { throw 1; }, undefined);
|
||||
const p61 = p.then(() => { throw 1; }, () => 1);
|
||||
const p62 = p.then(() => { throw 1; }, () => { });
|
||||
const p63 = p.then(() => { throw 1; }, () => { throw 1; });
|
||||
const p64 = p.then(() => { throw 1; }, () => Promise.resolve(1));
|
||||
const p65 = p.then(() => { throw 1; }, () => Promise.reject(1));
|
||||
const p70 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const p71 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const p72 = p.then(() => Promise.resolve("1"), () => { });
|
||||
const p73 = p.then(() => Promise.resolve("1"), () => { throw 1; });
|
||||
const p74 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const p75 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const p80 = p.then(() => Promise.reject(1), undefined);
|
||||
const p81 = p.then(() => Promise.reject(1), () => 1);
|
||||
const p82 = p.then(() => Promise.reject(1), () => { });
|
||||
const p83 = p.then(() => Promise.reject(1), () => { throw 1; });
|
||||
const p84 = p.then(() => Promise.reject(1), () => Promise.resolve(1));
|
||||
const p85 = p.then(() => Promise.reject(1), () => Promise.reject(1));
|
||||
const p31 = p.then(undefined, null);
|
||||
const p32 = p.then(undefined, () => 1);
|
||||
const p33 = p.then(undefined, () => x);
|
||||
const p34 = p.then(undefined, () => undefined);
|
||||
const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => { });
|
||||
const p37 = p.then(undefined, () => { throw 1; });
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
const p42 = p.then(null, () => 1);
|
||||
const p43 = p.then(null, () => x);
|
||||
const p44 = p.then(null, () => undefined);
|
||||
const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => { });
|
||||
const p47 = p.then(null, () => { throw 1; });
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
const p52 = p.then(() => "1", () => 1);
|
||||
const p53 = p.then(() => "1", () => x);
|
||||
const p54 = p.then(() => "1", () => undefined);
|
||||
const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => { });
|
||||
const p57 = p.then(() => "1", () => { throw 1; });
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
const p62 = p.then(() => x, () => 1);
|
||||
const p63 = p.then(() => x, () => x);
|
||||
const p64 = p.then(() => x, () => undefined);
|
||||
const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => { });
|
||||
const p67 = p.then(() => x, () => { throw 1; });
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
const p72 = p.then(() => undefined, () => 1);
|
||||
const p73 = p.then(() => undefined, () => x);
|
||||
const p74 = p.then(() => undefined, () => undefined);
|
||||
const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => { });
|
||||
const p77 = p.then(() => undefined, () => { throw 1; });
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
const p82 = p.then(() => null, () => 1);
|
||||
const p83 = p.then(() => null, () => x);
|
||||
const p84 = p.then(() => null, () => undefined);
|
||||
const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => { });
|
||||
const p87 = p.then(() => null, () => { throw 1; });
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
const p90 = p.then(() => { }, undefined);
|
||||
const p91 = p.then(() => { }, null);
|
||||
const p92 = p.then(() => { }, () => 1);
|
||||
const p93 = p.then(() => { }, () => x);
|
||||
const p94 = p.then(() => { }, () => undefined);
|
||||
const p95 = p.then(() => { }, () => null);
|
||||
const p96 = p.then(() => { }, () => { });
|
||||
const p97 = p.then(() => { }, () => { throw 1; });
|
||||
const p98 = p.then(() => { }, () => Promise.resolve(1));
|
||||
const p99 = p.then(() => { }, () => Promise.reject(1));
|
||||
const pa0 = p.then(() => { throw 1; }, undefined);
|
||||
const pa1 = p.then(() => { throw 1; }, null);
|
||||
const pa2 = p.then(() => { throw 1; }, () => 1);
|
||||
const pa3 = p.then(() => { throw 1; }, () => x);
|
||||
const pa4 = p.then(() => { throw 1; }, () => undefined);
|
||||
const pa5 = p.then(() => { throw 1; }, () => null);
|
||||
const pa6 = p.then(() => { throw 1; }, () => { });
|
||||
const pa7 = p.then(() => { throw 1; }, () => { throw 1; });
|
||||
const pa8 = p.then(() => { throw 1; }, () => Promise.resolve(1));
|
||||
const pa9 = p.then(() => { throw 1; }, () => Promise.reject(1));
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
const pb2 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const pb3 = p.then(() => Promise.resolve("1"), () => x);
|
||||
const pb4 = p.then(() => Promise.resolve("1"), () => undefined);
|
||||
const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => { });
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => { throw 1; });
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
const pc2 = p.then(() => Promise.reject("1"), () => 1);
|
||||
const pc3 = p.then(() => Promise.reject("1"), () => x);
|
||||
const pc4 = p.then(() => Promise.reject("1"), () => undefined);
|
||||
const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
const pc6 = p.then(() => Promise.reject("1"), () => { });
|
||||
const pc7 = p.then(() => Promise.reject("1"), () => { throw 1; });
|
||||
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -47,12 +47,12 @@ function f2(x: T1): T2 {
|
||||
|
||||
var x3 = f1()
|
||||
>x3 : Symbol(x3, Decl(promiseVoidErrorCallback.ts, 20, 3))
|
||||
>f1() .then(f2, (e: Error) => { throw e;}) .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>f1() .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>f1() .then(f2, (e: Error) => { throw e;}) .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>f1() .then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>f1 : Symbol(f1, Decl(promiseVoidErrorCallback.ts, 10, 1))
|
||||
|
||||
.then(f2, (e: Error) => {
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>f2 : Symbol(f2, Decl(promiseVoidErrorCallback.ts, 14, 1))
|
||||
>e : Symbol(e, Decl(promiseVoidErrorCallback.ts, 21, 15))
|
||||
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
|
||||
@@ -62,7 +62,7 @@ var x3 = f1()
|
||||
|
||||
})
|
||||
.then((x: T2) => {
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>then : Symbol(Promise.then, Decl(lib.es2015.promise.d.ts, --, --))
|
||||
>x : Symbol(x, Decl(promiseVoidErrorCallback.ts, 24, 11))
|
||||
>T2 : Symbol(T2, Decl(promiseVoidErrorCallback.ts, 2, 1))
|
||||
|
||||
|
||||
@@ -54,14 +54,14 @@ function f2(x: T1): T2 {
|
||||
var x3 = f1()
|
||||
>x3 : Promise<{ __t3: string; }>
|
||||
>f1() .then(f2, (e: Error) => { throw e;}) .then((x: T2) => { return { __t3: x.__t2 + "bar" };}) : Promise<{ __t3: string; }>
|
||||
>f1() .then(f2, (e: Error) => { throw e;}) .then : { (onfulfilled?: (value: T2) => T2 | PromiseLike<T2>, onrejected?: (reason: any) => T2 | PromiseLike<T2>): Promise<T2>; <TResult>(onfulfilled: (value: T2) => T2 | PromiseLike<T2>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T2 | TResult>; <TResult>(onfulfilled: (value: T2) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: T2) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>f1() .then(f2, (e: Error) => { throw e;}) .then : <TResult1 = T2, TResult2 = never>(onfulfilled?: (value: T2) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>f1() .then(f2, (e: Error) => { throw e;}) : Promise<T2>
|
||||
>f1() .then : { (onfulfilled?: (value: T1) => T1 | PromiseLike<T1>, onrejected?: (reason: any) => T1 | PromiseLike<T1>): Promise<T1>; <TResult>(onfulfilled: (value: T1) => T1 | PromiseLike<T1>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T1 | TResult>; <TResult>(onfulfilled: (value: T1) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: T1) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>f1() .then : <TResult1 = T1, TResult2 = never>(onfulfilled?: (value: T1) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>f1() : Promise<T1>
|
||||
>f1 : () => Promise<T1>
|
||||
|
||||
.then(f2, (e: Error) => {
|
||||
>then : { (onfulfilled?: (value: T1) => T1 | PromiseLike<T1>, onrejected?: (reason: any) => T1 | PromiseLike<T1>): Promise<T1>; <TResult>(onfulfilled: (value: T1) => T1 | PromiseLike<T1>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T1 | TResult>; <TResult>(onfulfilled: (value: T1) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: T1) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = T1, TResult2 = never>(onfulfilled?: (value: T1) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>f2 : (x: T1) => T2
|
||||
>(e: Error) => { throw e;} : (e: Error) => never
|
||||
>e : Error
|
||||
@@ -72,7 +72,7 @@ var x3 = f1()
|
||||
|
||||
})
|
||||
.then((x: T2) => {
|
||||
>then : { (onfulfilled?: (value: T2) => T2 | PromiseLike<T2>, onrejected?: (reason: any) => T2 | PromiseLike<T2>): Promise<T2>; <TResult>(onfulfilled: (value: T2) => T2 | PromiseLike<T2>, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Promise<T2 | TResult>; <TResult>(onfulfilled: (value: T2) => TResult | PromiseLike<TResult>, onrejected?: (reason: any) => TResult | PromiseLike<TResult>): Promise<TResult>; <TResult1, TResult2>(onfulfilled: (value: T2) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Promise<TResult1 | TResult2>; }
|
||||
>then : <TResult1 = T2, TResult2 = never>(onfulfilled?: (value: T2) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
|
||||
>(x: T2) => { return { __t3: x.__t2 + "bar" };} : (x: T2) => { __t3: string; }
|
||||
>x : T2
|
||||
>T2 : T2
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
// @target: es6
|
||||
declare var p: Promise<boolean>;
|
||||
|
||||
const a = p.then();
|
||||
const b = p.then(b => 1);
|
||||
const c = p.then(b => 1, e => 'error');
|
||||
const d = p.then(b => 1, e => { });
|
||||
const e = p.then(b => 1, e => { throw Error(); });
|
||||
const f = p.then(b => 1, e => Promise.reject(Error()));
|
||||
const g = p.catch(e => 'error');
|
||||
const h = p.catch(e => { });
|
||||
const i = p.catch(e => { throw Error(); });
|
||||
const j = p.catch(e => Promise.reject(Error()));
|
||||
declare var x: any;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -22,17 +12,15 @@ async function B() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NOTE: This reports a "No best comment type exists among return expressions." error, and is
|
||||
// ignored to get the types result for the test.
|
||||
// async function C() {
|
||||
// try {
|
||||
// const a = await p;
|
||||
// return 1;
|
||||
// }
|
||||
// catch (e) {
|
||||
// return 'error';
|
||||
// }
|
||||
// }
|
||||
async function C() {
|
||||
try {
|
||||
const a = await p;
|
||||
return 1;
|
||||
}
|
||||
catch (e) {
|
||||
return 'error';
|
||||
}
|
||||
}
|
||||
|
||||
async function D() {
|
||||
try {
|
||||
@@ -96,61 +84,136 @@ async function I() {
|
||||
// addresses github issue #4903:
|
||||
|
||||
const p00 = p.catch();
|
||||
const p01 = p.catch(undefined);
|
||||
const p07 = p.catch(null);
|
||||
const p02 = p.catch(() => 1);
|
||||
const p03 = p.catch(() => {});
|
||||
const p04 = p.catch(() => {throw 1});
|
||||
const p05 = p.catch(() => Promise.reject(1));
|
||||
const p06 = p.catch(() => Promise.resolve(1));
|
||||
const p01 = p.then();
|
||||
|
||||
const p10 = p.then();
|
||||
const p10 = p.catch(undefined);
|
||||
const p11 = p.catch(null);
|
||||
const p12 = p.catch(() => 1);
|
||||
const p13 = p.catch(() => x);
|
||||
const p14 = p.catch(() => undefined);
|
||||
const p15 = p.catch(() => null);
|
||||
const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(() => 1);
|
||||
const p22 = p.then(() => {});
|
||||
const p23 = p.then(() => {throw 1});
|
||||
const p24 = p.then(() => Promise.resolve(1));
|
||||
const p25 = p.then(() => Promise.reject(1));
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
const p23 = p.then(() => x);
|
||||
const p24 = p.then(() => undefined);
|
||||
const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, () => 1);
|
||||
const p32 = p.then(undefined, () => {});
|
||||
const p33 = p.then(undefined, () => {throw 1});
|
||||
const p34 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p35 = p.then(undefined, () => Promise.reject(1));
|
||||
const p31 = p.then(undefined, null);
|
||||
const p32 = p.then(undefined, () => 1);
|
||||
const p33 = p.then(undefined, () => x);
|
||||
const p34 = p.then(undefined, () => undefined);
|
||||
const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(() => "1", undefined);
|
||||
const p41 = p.then(() => "1", () => 1);
|
||||
const p42 = p.then(() => "1", () => {});
|
||||
const p43 = p.then(() => "1", () => {throw 1});
|
||||
const p44 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p45 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
const p42 = p.then(null, () => 1);
|
||||
const p43 = p.then(null, () => x);
|
||||
const p44 = p.then(null, () => undefined);
|
||||
const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => {}, undefined);
|
||||
const p51 = p.then(() => {}, () => 1);
|
||||
const p52 = p.then(() => {}, () => {});
|
||||
const p53 = p.then(() => {}, () => {throw 1});
|
||||
const p54 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p55 = p.then(() => {}, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
const p52 = p.then(() => "1", () => 1);
|
||||
const p53 = p.then(() => "1", () => x);
|
||||
const p54 = p.then(() => "1", () => undefined);
|
||||
const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => {throw 1}, undefined);
|
||||
const p61 = p.then(() => {throw 1}, () => 1);
|
||||
const p62 = p.then(() => {throw 1}, () => {});
|
||||
const p63 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const p64 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const p65 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
const p62 = p.then(() => x, () => 1);
|
||||
const p63 = p.then(() => x, () => x);
|
||||
const p64 = p.then(() => x, () => undefined);
|
||||
const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const p71 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const p72 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const p73 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const p74 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const p75 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
const p72 = p.then(() => undefined, () => 1);
|
||||
const p73 = p.then(() => undefined, () => x);
|
||||
const p74 = p.then(() => undefined, () => undefined);
|
||||
const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => Promise.reject(1), undefined);
|
||||
const p81 = p.then(() => Promise.reject(1), () => 1);
|
||||
const p82 = p.then(() => Promise.reject(1), () => {});
|
||||
const p83 = p.then(() => Promise.reject(1), () => {throw 1});
|
||||
const p84 = p.then(() => Promise.reject(1), () => Promise.resolve(1));
|
||||
const p85 = p.then(() => Promise.reject(1), () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
const p82 = p.then(() => null, () => 1);
|
||||
const p83 = p.then(() => null, () => x);
|
||||
const p84 = p.then(() => null, () => undefined);
|
||||
const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
const p91 = p.then(() => {}, null);
|
||||
const p92 = p.then(() => {}, () => 1);
|
||||
const p93 = p.then(() => {}, () => x);
|
||||
const p94 = p.then(() => {}, () => undefined);
|
||||
const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
const pa1 = p.then(() => {throw 1}, null);
|
||||
const pa2 = p.then(() => {throw 1}, () => 1);
|
||||
const pa3 = p.then(() => {throw 1}, () => x);
|
||||
const pa4 = p.then(() => {throw 1}, () => undefined);
|
||||
const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
const pb2 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const pb3 = p.then(() => Promise.resolve("1"), () => x);
|
||||
const pb4 = p.then(() => Promise.resolve("1"), () => undefined);
|
||||
const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
const pc2 = p.then(() => Promise.reject("1"), () => 1);
|
||||
const pc3 = p.then(() => Promise.reject("1"), () => x);
|
||||
const pc4 = p.then(() => Promise.reject("1"), () => undefined);
|
||||
const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
const pc6 = p.then(() => Promise.reject("1"), () => {});
|
||||
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
|
||||
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
@@ -1,17 +1,7 @@
|
||||
// @target: es6
|
||||
// @strictNullChecks: true
|
||||
declare var p: Promise<boolean>;
|
||||
|
||||
const a = p.then();
|
||||
const b = p.then(b => 1);
|
||||
const c = p.then(b => 1, e => 'error');
|
||||
const d = p.then(b => 1, e => { });
|
||||
const e = p.then(b => 1, e => { throw Error(); });
|
||||
const f = p.then(b => 1, e => Promise.reject(Error()));
|
||||
const g = p.catch(e => 'error');
|
||||
const h = p.catch(e => { });
|
||||
const i = p.catch(e => { throw Error(); });
|
||||
const j = p.catch(e => Promise.reject(Error()));
|
||||
declare var x: any;
|
||||
|
||||
async function A() {
|
||||
const a = await p;
|
||||
@@ -23,17 +13,15 @@ async function B() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
// NOTE: This reports a "No best comment type exists among return expressions." error, and is
|
||||
// ignored to get the types result for the test.
|
||||
// async function C() {
|
||||
// try {
|
||||
// const a = await p;
|
||||
// return 1;
|
||||
// }
|
||||
// catch (e) {
|
||||
// return 'error';
|
||||
// }
|
||||
// }
|
||||
async function C() {
|
||||
try {
|
||||
const a = await p;
|
||||
return 1;
|
||||
}
|
||||
catch (e) {
|
||||
return 'error';
|
||||
}
|
||||
}
|
||||
|
||||
async function D() {
|
||||
try {
|
||||
@@ -97,61 +85,136 @@ async function I() {
|
||||
// addresses github issue #4903:
|
||||
|
||||
const p00 = p.catch();
|
||||
const p01 = p.catch(undefined);
|
||||
const p07 = p.catch(null);
|
||||
const p02 = p.catch(() => 1);
|
||||
const p03 = p.catch(() => {});
|
||||
const p04 = p.catch(() => {throw 1});
|
||||
const p05 = p.catch(() => Promise.reject(1));
|
||||
const p06 = p.catch(() => Promise.resolve(1));
|
||||
const p01 = p.then();
|
||||
|
||||
const p10 = p.then();
|
||||
const p10 = p.catch(undefined);
|
||||
const p11 = p.catch(null);
|
||||
const p12 = p.catch(() => 1);
|
||||
const p13 = p.catch(() => x);
|
||||
const p14 = p.catch(() => undefined);
|
||||
const p15 = p.catch(() => null);
|
||||
const p16 = p.catch(() => {});
|
||||
const p17 = p.catch(() => {throw 1});
|
||||
const p18 = p.catch(() => Promise.reject(1));
|
||||
const p19 = p.catch(() => Promise.resolve(1));
|
||||
|
||||
const p20 = p.then(undefined);
|
||||
const p21 = p.then(() => 1);
|
||||
const p22 = p.then(() => {});
|
||||
const p23 = p.then(() => {throw 1});
|
||||
const p24 = p.then(() => Promise.resolve(1));
|
||||
const p25 = p.then(() => Promise.reject(1));
|
||||
const p21 = p.then(null);
|
||||
const p22 = p.then(() => 1);
|
||||
const p23 = p.then(() => x);
|
||||
const p24 = p.then(() => undefined);
|
||||
const p25 = p.then(() => null);
|
||||
const p26 = p.then(() => {});
|
||||
const p27 = p.then(() => {throw 1});
|
||||
const p28 = p.then(() => Promise.resolve(1));
|
||||
const p29 = p.then(() => Promise.reject(1));
|
||||
|
||||
const p30 = p.then(undefined, undefined);
|
||||
const p31 = p.then(undefined, () => 1);
|
||||
const p32 = p.then(undefined, () => {});
|
||||
const p33 = p.then(undefined, () => {throw 1});
|
||||
const p34 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p35 = p.then(undefined, () => Promise.reject(1));
|
||||
const p31 = p.then(undefined, null);
|
||||
const p32 = p.then(undefined, () => 1);
|
||||
const p33 = p.then(undefined, () => x);
|
||||
const p34 = p.then(undefined, () => undefined);
|
||||
const p35 = p.then(undefined, () => null);
|
||||
const p36 = p.then(undefined, () => {});
|
||||
const p37 = p.then(undefined, () => {throw 1});
|
||||
const p38 = p.then(undefined, () => Promise.resolve(1));
|
||||
const p39 = p.then(undefined, () => Promise.reject(1));
|
||||
|
||||
const p40 = p.then(() => "1", undefined);
|
||||
const p41 = p.then(() => "1", () => 1);
|
||||
const p42 = p.then(() => "1", () => {});
|
||||
const p43 = p.then(() => "1", () => {throw 1});
|
||||
const p44 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p45 = p.then(() => "1", () => Promise.reject(1));
|
||||
const p40 = p.then(null, undefined);
|
||||
const p41 = p.then(null, null);
|
||||
const p42 = p.then(null, () => 1);
|
||||
const p43 = p.then(null, () => x);
|
||||
const p44 = p.then(null, () => undefined);
|
||||
const p45 = p.then(null, () => null);
|
||||
const p46 = p.then(null, () => {});
|
||||
const p47 = p.then(null, () => {throw 1});
|
||||
const p48 = p.then(null, () => Promise.resolve(1));
|
||||
const p49 = p.then(null, () => Promise.reject(1));
|
||||
|
||||
const p50 = p.then(() => {}, undefined);
|
||||
const p51 = p.then(() => {}, () => 1);
|
||||
const p52 = p.then(() => {}, () => {});
|
||||
const p53 = p.then(() => {}, () => {throw 1});
|
||||
const p54 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p55 = p.then(() => {}, () => Promise.reject(1));
|
||||
const p50 = p.then(() => "1", undefined);
|
||||
const p51 = p.then(() => "1", null);
|
||||
const p52 = p.then(() => "1", () => 1);
|
||||
const p53 = p.then(() => "1", () => x);
|
||||
const p54 = p.then(() => "1", () => undefined);
|
||||
const p55 = p.then(() => "1", () => null);
|
||||
const p56 = p.then(() => "1", () => {});
|
||||
const p57 = p.then(() => "1", () => {throw 1});
|
||||
const p58 = p.then(() => "1", () => Promise.resolve(1));
|
||||
const p59 = p.then(() => "1", () => Promise.reject(1));
|
||||
|
||||
const p60 = p.then(() => {throw 1}, undefined);
|
||||
const p61 = p.then(() => {throw 1}, () => 1);
|
||||
const p62 = p.then(() => {throw 1}, () => {});
|
||||
const p63 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const p64 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const p65 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
const p60 = p.then(() => x, undefined);
|
||||
const p61 = p.then(() => x, null);
|
||||
const p62 = p.then(() => x, () => 1);
|
||||
const p63 = p.then(() => x, () => x);
|
||||
const p64 = p.then(() => x, () => undefined);
|
||||
const p65 = p.then(() => x, () => null);
|
||||
const p66 = p.then(() => x, () => {});
|
||||
const p67 = p.then(() => x, () => {throw 1});
|
||||
const p68 = p.then(() => x, () => Promise.resolve(1));
|
||||
const p69 = p.then(() => x, () => Promise.reject(1));
|
||||
|
||||
const p70 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const p71 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const p72 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const p73 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const p74 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const p75 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
const p70 = p.then(() => undefined, undefined);
|
||||
const p71 = p.then(() => undefined, null);
|
||||
const p72 = p.then(() => undefined, () => 1);
|
||||
const p73 = p.then(() => undefined, () => x);
|
||||
const p74 = p.then(() => undefined, () => undefined);
|
||||
const p75 = p.then(() => undefined, () => null);
|
||||
const p76 = p.then(() => undefined, () => {});
|
||||
const p77 = p.then(() => undefined, () => {throw 1});
|
||||
const p78 = p.then(() => undefined, () => Promise.resolve(1));
|
||||
const p79 = p.then(() => undefined, () => Promise.reject(1));
|
||||
|
||||
const p80 = p.then(() => Promise.reject(1), undefined);
|
||||
const p81 = p.then(() => Promise.reject(1), () => 1);
|
||||
const p82 = p.then(() => Promise.reject(1), () => {});
|
||||
const p83 = p.then(() => Promise.reject(1), () => {throw 1});
|
||||
const p84 = p.then(() => Promise.reject(1), () => Promise.resolve(1));
|
||||
const p85 = p.then(() => Promise.reject(1), () => Promise.reject(1));
|
||||
const p80 = p.then(() => null, undefined);
|
||||
const p81 = p.then(() => null, null);
|
||||
const p82 = p.then(() => null, () => 1);
|
||||
const p83 = p.then(() => null, () => x);
|
||||
const p84 = p.then(() => null, () => undefined);
|
||||
const p85 = p.then(() => null, () => null);
|
||||
const p86 = p.then(() => null, () => {});
|
||||
const p87 = p.then(() => null, () => {throw 1});
|
||||
const p88 = p.then(() => null, () => Promise.resolve(1));
|
||||
const p89 = p.then(() => null, () => Promise.reject(1));
|
||||
|
||||
const p90 = p.then(() => {}, undefined);
|
||||
const p91 = p.then(() => {}, null);
|
||||
const p92 = p.then(() => {}, () => 1);
|
||||
const p93 = p.then(() => {}, () => x);
|
||||
const p94 = p.then(() => {}, () => undefined);
|
||||
const p95 = p.then(() => {}, () => null);
|
||||
const p96 = p.then(() => {}, () => {});
|
||||
const p97 = p.then(() => {}, () => {throw 1});
|
||||
const p98 = p.then(() => {}, () => Promise.resolve(1));
|
||||
const p99 = p.then(() => {}, () => Promise.reject(1));
|
||||
|
||||
const pa0 = p.then(() => {throw 1}, undefined);
|
||||
const pa1 = p.then(() => {throw 1}, null);
|
||||
const pa2 = p.then(() => {throw 1}, () => 1);
|
||||
const pa3 = p.then(() => {throw 1}, () => x);
|
||||
const pa4 = p.then(() => {throw 1}, () => undefined);
|
||||
const pa5 = p.then(() => {throw 1}, () => null);
|
||||
const pa6 = p.then(() => {throw 1}, () => {});
|
||||
const pa7 = p.then(() => {throw 1}, () => {throw 1});
|
||||
const pa8 = p.then(() => {throw 1}, () => Promise.resolve(1));
|
||||
const pa9 = p.then(() => {throw 1}, () => Promise.reject(1));
|
||||
|
||||
const pb0 = p.then(() => Promise.resolve("1"), undefined);
|
||||
const pb1 = p.then(() => Promise.resolve("1"), null);
|
||||
const pb2 = p.then(() => Promise.resolve("1"), () => 1);
|
||||
const pb3 = p.then(() => Promise.resolve("1"), () => x);
|
||||
const pb4 = p.then(() => Promise.resolve("1"), () => undefined);
|
||||
const pb5 = p.then(() => Promise.resolve("1"), () => null);
|
||||
const pb6 = p.then(() => Promise.resolve("1"), () => {});
|
||||
const pb7 = p.then(() => Promise.resolve("1"), () => {throw 1});
|
||||
const pb8 = p.then(() => Promise.resolve("1"), () => Promise.resolve(1));
|
||||
const pb9 = p.then(() => Promise.resolve("1"), () => Promise.reject(1));
|
||||
|
||||
const pc0 = p.then(() => Promise.reject("1"), undefined);
|
||||
const pc1 = p.then(() => Promise.reject("1"), null);
|
||||
const pc2 = p.then(() => Promise.reject("1"), () => 1);
|
||||
const pc3 = p.then(() => Promise.reject("1"), () => x);
|
||||
const pc4 = p.then(() => Promise.reject("1"), () => undefined);
|
||||
const pc5 = p.then(() => Promise.reject("1"), () => null);
|
||||
const pc6 = p.then(() => Promise.reject("1"), () => {});
|
||||
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
|
||||
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
|
||||
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
|
||||
|
||||
Reference in New Issue
Block a user