TypeScript/tests/baselines/reference/types.asyncGenerators.es2018.1.types

443 lines
16 KiB
Plaintext

=== tests/cases/conformance/types/asyncGenerators/types.asyncGenerators.es2018.1.ts ===
async function * inferReturnType1() {
>inferReturnType1 : () => AsyncGenerator<never, void, unknown>
}
async function * inferReturnType2() {
>inferReturnType2 : () => AsyncGenerator<any, void, unknown>
yield;
>yield : any
}
async function * inferReturnType3() {
>inferReturnType3 : () => AsyncGenerator<number, void, unknown>
yield 1;
>yield 1 : any
>1 : 1
}
async function * inferReturnType4() {
>inferReturnType4 : () => AsyncGenerator<number, void, unknown>
yield Promise.resolve(1);
>yield Promise.resolve(1) : any
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * inferReturnType5() {
>inferReturnType5 : () => AsyncGenerator<number, void, unknown>
yield 1;
>yield 1 : any
>1 : 1
yield Promise.resolve(2);
>yield Promise.resolve(2) : any
>Promise.resolve(2) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>2 : 2
}
async function * inferReturnType6() {
>inferReturnType6 : () => AsyncGenerator<number, void, undefined>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
}
async function * inferReturnType7() {
>inferReturnType7 : () => AsyncGenerator<number, void, undefined>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * inferReturnType8() {
>inferReturnType8 : () => AsyncGenerator<number, void, unknown>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, unknown>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, unknown>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, unknown>
>yield 1 : any
>1 : 1
}
const assignability1: () => AsyncIterableIterator<number> = async function * () {
>assignability1 : () => AsyncIterableIterator<number>
>async function * () { yield 1;} : () => AsyncGenerator<number, void, undefined>
yield 1;
>yield 1 : undefined
>1 : 1
};
const assignability2: () => AsyncIterableIterator<number> = async function * () {
>assignability2 : () => AsyncIterableIterator<number>
>async function * () { yield Promise.resolve(1);} : () => AsyncGenerator<number, void, undefined>
yield Promise.resolve(1);
>yield Promise.resolve(1) : undefined
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
};
const assignability3: () => AsyncIterableIterator<number> = async function * () {
>assignability3 : () => AsyncIterableIterator<number>
>async function * () { yield* [1, 2];} : () => AsyncGenerator<number, void, undefined>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
};
const assignability4: () => AsyncIterableIterator<number> = async function * () {
>assignability4 : () => AsyncIterableIterator<number>
>async function * () { yield* [Promise.resolve(1)];} : () => AsyncGenerator<number, void, undefined>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
};
const assignability5: () => AsyncIterableIterator<number> = async function * () {
>assignability5 : () => AsyncIterableIterator<number>
>async function * () { yield* (async function * () { yield 1; })();} : () => AsyncGenerator<number, void, undefined>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, undefined>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, undefined>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, undefined>
>yield 1 : undefined
>1 : 1
};
const assignability6: () => AsyncIterable<number> = async function * () {
>assignability6 : () => AsyncIterable<number>
>async function * () { yield 1;} : () => AsyncGenerator<number, void, undefined>
yield 1;
>yield 1 : undefined
>1 : 1
};
const assignability7: () => AsyncIterable<number> = async function * () {
>assignability7 : () => AsyncIterable<number>
>async function * () { yield Promise.resolve(1);} : () => AsyncGenerator<number, void, undefined>
yield Promise.resolve(1);
>yield Promise.resolve(1) : undefined
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
};
const assignability8: () => AsyncIterable<number> = async function * () {
>assignability8 : () => AsyncIterable<number>
>async function * () { yield* [1, 2];} : () => AsyncGenerator<number, void, undefined>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
};
const assignability9: () => AsyncIterable<number> = async function * () {
>assignability9 : () => AsyncIterable<number>
>async function * () { yield* [Promise.resolve(1)];} : () => AsyncGenerator<number, void, undefined>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
};
const assignability10: () => AsyncIterable<number> = async function * () {
>assignability10 : () => AsyncIterable<number>
>async function * () { yield* (async function * () { yield 1; })();} : () => AsyncGenerator<number, void, undefined>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, undefined>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, undefined>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, undefined>
>yield 1 : undefined
>1 : 1
};
const assignability11: () => AsyncIterator<number> = async function * () {
>assignability11 : () => AsyncIterator<number>
>async function * () { yield 1;} : () => AsyncGenerator<number, void, undefined>
yield 1;
>yield 1 : undefined
>1 : 1
};
const assignability12: () => AsyncIterator<number> = async function * () {
>assignability12 : () => AsyncIterator<number>
>async function * () { yield Promise.resolve(1);} : () => AsyncGenerator<number, void, undefined>
yield Promise.resolve(1);
>yield Promise.resolve(1) : undefined
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
};
const assignability13: () => AsyncIterator<number> = async function * () {
>assignability13 : () => AsyncIterator<number>
>async function * () { yield* [1, 2];} : () => AsyncGenerator<number, void, undefined>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
};
const assignability14: () => AsyncIterator<number> = async function * () {
>assignability14 : () => AsyncIterator<number>
>async function * () { yield* [Promise.resolve(1)];} : () => AsyncGenerator<number, void, undefined>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
};
const assignability15: () => AsyncIterator<number> = async function * () {
>assignability15 : () => AsyncIterator<number>
>async function * () { yield* (async function * () { yield 1; })();} : () => AsyncGenerator<number, void, undefined>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, undefined>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, undefined>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, undefined>
>yield 1 : undefined
>1 : 1
};
async function * explicitReturnType1(): AsyncIterableIterator<number> {
>explicitReturnType1 : () => AsyncIterableIterator<number>
yield 1;
>yield 1 : undefined
>1 : 1
}
async function * explicitReturnType2(): AsyncIterableIterator<number> {
>explicitReturnType2 : () => AsyncIterableIterator<number>
yield Promise.resolve(1);
>yield Promise.resolve(1) : undefined
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * explicitReturnType3(): AsyncIterableIterator<number> {
>explicitReturnType3 : () => AsyncIterableIterator<number>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
}
async function * explicitReturnType4(): AsyncIterableIterator<number> {
>explicitReturnType4 : () => AsyncIterableIterator<number>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * explicitReturnType5(): AsyncIterableIterator<number> {
>explicitReturnType5 : () => AsyncIterableIterator<number>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, undefined>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, undefined>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, undefined>
>yield 1 : undefined
>1 : 1
}
async function * explicitReturnType6(): AsyncIterable<number> {
>explicitReturnType6 : () => AsyncIterable<number>
yield 1;
>yield 1 : undefined
>1 : 1
}
async function * explicitReturnType7(): AsyncIterable<number> {
>explicitReturnType7 : () => AsyncIterable<number>
yield Promise.resolve(1);
>yield Promise.resolve(1) : undefined
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * explicitReturnType8(): AsyncIterable<number> {
>explicitReturnType8 : () => AsyncIterable<number>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
}
async function * explicitReturnType9(): AsyncIterable<number> {
>explicitReturnType9 : () => AsyncIterable<number>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * explicitReturnType10(): AsyncIterable<number> {
>explicitReturnType10 : () => AsyncIterable<number>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, undefined>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, undefined>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, undefined>
>yield 1 : undefined
>1 : 1
}
async function * explicitReturnType11(): AsyncIterator<number> {
>explicitReturnType11 : () => AsyncIterator<number>
yield 1;
>yield 1 : undefined
>1 : 1
}
async function * explicitReturnType12(): AsyncIterator<number> {
>explicitReturnType12 : () => AsyncIterator<number>
yield Promise.resolve(1);
>yield Promise.resolve(1) : undefined
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * explicitReturnType13(): AsyncIterator<number> {
>explicitReturnType13 : () => AsyncIterator<number>
yield* [1, 2];
>yield* [1, 2] : any
>[1, 2] : number[]
>1 : 1
>2 : 2
}
async function * explicitReturnType14(): AsyncIterator<number> {
>explicitReturnType14 : () => AsyncIterator<number>
yield* [Promise.resolve(1)];
>yield* [Promise.resolve(1)] : any
>[Promise.resolve(1)] : Promise<number>[]
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * explicitReturnType15(): AsyncIterator<number> {
>explicitReturnType15 : () => AsyncIterator<number>
yield* (async function * () { yield 1; })();
>yield* (async function * () { yield 1; })() : void
>(async function * () { yield 1; })() : AsyncGenerator<number, void, undefined>
>(async function * () { yield 1; }) : () => AsyncGenerator<number, void, undefined>
>async function * () { yield 1; } : () => AsyncGenerator<number, void, undefined>
>yield 1 : undefined
>1 : 1
}
async function * explicitReturnType16(): {} {
>explicitReturnType16 : () => {}
yield 1;
>yield 1 : any
>1 : 1
}
async function * awaitedType1() {
>awaitedType1 : () => AsyncGenerator<never, void, unknown>
const x = await 1;
>x : 1
>await 1 : 1
>1 : 1
}
async function * awaitedType2() {
>awaitedType2 : () => AsyncGenerator<never, void, unknown>
const x = await Promise.resolve(1);
>x : number
>await Promise.resolve(1) : number
>Promise.resolve(1) : Promise<number>
>Promise.resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>Promise : PromiseConstructor
>resolve : { (): Promise<void>; <T>(value: T | PromiseLike<T>): Promise<T>; }
>1 : 1
}
async function * nextType1(): { next(...args: [] | [number | PromiseLike<number>]): any } {
>nextType1 : () => { next(...args: [] | [number | PromiseLike<number>]): any; }
>next : (...args: [] | [number | PromiseLike<number>]) => any
>args : [] | [number | PromiseLike<number>]
const x = yield; // `number | PromiseLike<number>` (should not await TNext)
>x : number | PromiseLike<number>
>yield : number | PromiseLike<number>
}