Skip to content

Commit a5f0fd1

Browse files
committed
Add tests
1 parent 977d799 commit a5f0fd1

8 files changed

+70
-0
lines changed

tests/baselines/reference/asyncFunctionReturnType.js

+14
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ async function fGenericIndexedTypeForPromiseOfKProp<TObj extends Obj, K extends
7474
async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K]> {
7575
return Promise.resolve<TObj[K]>(obj[key]);
7676
}
77+
78+
// #27711
79+
80+
async function fGeneric<T>(x: T) {
81+
return x;
82+
}
83+
const expected: Promise<string> = fGeneric(undefined as Promise<string>);
7784

7885

7986
//// [asyncFunctionReturnType.js]
@@ -173,3 +180,10 @@ function fGenericIndexedTypeForExplicitPromiseOfKProp(obj, key) {
173180
return Promise.resolve(obj[key]);
174181
});
175182
}
183+
// #27711
184+
function fGeneric(x) {
185+
return __awaiter(this, void 0, void 0, function* () {
186+
return x;
187+
});
188+
}
189+
const expected = fGeneric(undefined);

tests/baselines/reference/asyncFunctionReturnType.symbols

+18
Original file line numberDiff line numberDiff line change
@@ -287,3 +287,21 @@ async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K
287287
>key : Symbol(key, Decl(asyncFunctionReturnType.ts, 72, 110))
288288
}
289289

290+
// #27711
291+
292+
async function fGeneric<T>(x: T) {
293+
>fGeneric : Symbol(fGeneric, Decl(asyncFunctionReturnType.ts, 74, 1))
294+
>T : Symbol(T, Decl(asyncFunctionReturnType.ts, 78, 24))
295+
>x : Symbol(x, Decl(asyncFunctionReturnType.ts, 78, 27))
296+
>T : Symbol(T, Decl(asyncFunctionReturnType.ts, 78, 24))
297+
298+
return x;
299+
>x : Symbol(x, Decl(asyncFunctionReturnType.ts, 78, 27))
300+
}
301+
const expected: Promise<string> = fGeneric(undefined as Promise<string>);
302+
>expected : Symbol(expected, Decl(asyncFunctionReturnType.ts, 81, 5))
303+
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
304+
>fGeneric : Symbol(fGeneric, Decl(asyncFunctionReturnType.ts, 74, 1))
305+
>undefined : Symbol(undefined)
306+
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
307+

tests/baselines/reference/asyncFunctionReturnType.types

+16
Original file line numberDiff line numberDiff line change
@@ -221,3 +221,19 @@ async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K
221221
>key : K
222222
}
223223

224+
// #27711
225+
226+
async function fGeneric<T>(x: T) {
227+
>fGeneric : <T>(x: T) => Promise<Awaited<T>>
228+
>x : T
229+
230+
return x;
231+
>x : T
232+
}
233+
const expected: Promise<string> = fGeneric(undefined as Promise<string>);
234+
>expected : Promise<string>
235+
>fGeneric(undefined as Promise<string>) : Promise<string>
236+
>fGeneric : <T>(x: T) => Promise<Awaited<T>>
237+
>undefined as Promise<string> : Promise<string>
238+
>undefined : undefined
239+

tests/baselines/reference/promiseType.js

+3
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,8 @@ const pc6 = p.then(() => Promise.reject("1"), () => {});
217217
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
218218
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
219219
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
220+
221+
const expected: undefined = undefined as Awaited<undefined>;
220222

221223

222224
//// [promiseType.js]
@@ -440,3 +442,4 @@ const pc6 = p.then(() => Promise.reject("1"), () => { });
440442
const pc7 = p.then(() => Promise.reject("1"), () => { throw 1; });
441443
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
442444
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
445+
const expected = undefined;

tests/baselines/reference/promiseType.symbols

+5
Original file line numberDiff line numberDiff line change
@@ -1089,3 +1089,8 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
10891089
>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
10901090
>reject : Symbol(PromiseConstructor.reject, Decl(lib.es2015.promise.d.ts, --, --))
10911091

1092+
const expected: undefined = undefined as Awaited<undefined>;
1093+
>expected : Symbol(expected, Decl(promiseType.ts, 219, 5))
1094+
>undefined : Symbol(undefined)
1095+
>Awaited : Symbol(Awaited, Decl(lib.es5.d.ts, --, --))
1096+

tests/baselines/reference/promiseType.types

+5
Original file line numberDiff line numberDiff line change
@@ -1583,3 +1583,8 @@ const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
15831583
>reject : <T = never>(reason?: any) => Promise<T>
15841584
>1 : 1
15851585

1586+
const expected: undefined = undefined as Awaited<undefined>;
1587+
>expected : undefined
1588+
>undefined as Awaited<undefined> : undefined
1589+
>undefined : undefined
1590+

tests/cases/compiler/asyncFunctionReturnType.ts

+7
Original file line numberDiff line numberDiff line change
@@ -74,3 +74,10 @@ async function fGenericIndexedTypeForPromiseOfKProp<TObj extends Obj, K extends
7474
async function fGenericIndexedTypeForExplicitPromiseOfKProp<TObj extends Obj, K extends keyof TObj>(obj: TObj, key: K): Promise<TObj[K]> {
7575
return Promise.resolve<TObj[K]>(obj[key]);
7676
}
77+
78+
// #27711
79+
80+
async function fGeneric<T>(x: T) {
81+
return x;
82+
}
83+
const expected: Promise<string> = fGeneric(undefined as Promise<string>);

tests/cases/compiler/promiseType.ts

+2
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,5 @@ const pc6 = p.then(() => Promise.reject("1"), () => {});
217217
const pc7 = p.then(() => Promise.reject("1"), () => {throw 1});
218218
const pc8 = p.then(() => Promise.reject("1"), () => Promise.resolve(1));
219219
const pc9 = p.then(() => Promise.reject("1"), () => Promise.reject(1));
220+
221+
const expected: undefined = undefined as Awaited<undefined>;

0 commit comments

Comments
 (0)