@@ -84,12 +84,12 @@ const f01c04 = f01<number>(1);
8484>f01 : <T, U = T>(a?: T, b?: U) => [T, U]
8585>1 : 1
8686
87- const f01c05 = f01<number>(1, "a" );
88- >f01c05 : [number, string ]
89- >f01<number>(1, "a" ) : [number, string ]
87+ const f01c05 = f01<number>(1, 2 );
88+ >f01c05 : [number, number ]
89+ >f01<number>(1, 2 ) : [number, number ]
9090>f01 : <T, U = T>(a?: T, b?: U) => [T, U]
9191>1 : 1
92- >"a" : "a"
92+ >2 : 2
9393
9494const f01c06 = f01<number, string>();
9595>f01c06 : [number, string]
@@ -150,12 +150,12 @@ const f02c04 = f02<number>(1);
150150>f02 : <T extends number, U = T>(a?: T, b?: U) => [T, U]
151151>1 : 1
152152
153- const f02c05 = f02<number>(1, "a" );
154- >f02c05 : [number, string ]
155- >f02<number>(1, "a" ) : [number, string ]
153+ const f02c05 = f02<number>(1, 2 );
154+ >f02c05 : [number, number ]
155+ >f02<number>(1, 2 ) : [number, number ]
156156>f02 : <T extends number, U = T>(a?: T, b?: U) => [T, U]
157157>1 : 1
158- >"a" : "a"
158+ >2 : 2
159159
160160const f02c06 = f02<number, string>();
161161>f02c06 : [number, string]
@@ -285,8 +285,8 @@ const f04c04 = f04<number>(1);
285285>1 : 1
286286
287287const f04c05 = f04<number>(1, 2);
288- >f04c05 : [number, number]
289- >f04<number>(1, 2) : [number, number]
288+ >f04c05 : [number, number | { a: number; } ]
289+ >f04<number>(1, 2) : [number, number | { a: number; } ]
290290>f04 : <T, U = T | { a: number; }>(a?: T, b?: U) => [T, U]
291291>1 : 1
292292>2 : 2
@@ -309,12 +309,12 @@ const f04c08 = f04<number, number>(1, 2);
309309>1 : 1
310310>2 : 2
311311
312- declare function f05<T, U = T & { a : number }>(a?: T, b?: U): [T, U];
313- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
312+ declare function f05<T, U = T & { b : number }>(a?: T, b?: U): [T, U];
313+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
314314>T : T
315315>U : U
316316>T : T
317- >a : number
317+ >b : number
318318>a : T
319319>T : T
320320>b : U
@@ -323,56 +323,63 @@ declare function f05<T, U = T & { a: number }>(a?: T, b?: U): [T, U];
323323>U : U
324324
325325const f05c00 = f05();
326- >f05c00 : [{}, {} & { a : number; }]
327- >f05() : [{}, {} & { a : number; }]
328- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
326+ >f05c00 : [{}, {} & { b : number; }]
327+ >f05() : [{}, {} & { b : number; }]
328+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
329329
330330const f05c01 = f05(1);
331- >f05c01 : [number, number & { a : number; }]
332- >f05(1) : [number, number & { a : number; }]
333- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
331+ >f05c01 : [number, number & { b : number; }]
332+ >f05(1) : [number, number & { b : number; }]
333+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
334334>1 : 1
335335
336336const f05c02 = f05(1, 1);
337337>f05c02 : [number, number]
338338>f05(1, 1) : [number, number]
339- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
339+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
340340>1 : 1
341341>1 : 1
342342
343343const f05c03 = f05<number>();
344- >f05c03 : [number, number & { a : number; }]
345- >f05<number>() : [number, number & { a : number; }]
346- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
344+ >f05c03 : [number, number & { b : number; }]
345+ >f05<number>() : [number, number & { b : number; }]
346+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
347347
348348const f05c04 = f05<number>(1);
349- >f05c04 : [number, number & { a : number; }]
350- >f05<number>(1) : [number, number & { a : number; }]
351- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
349+ >f05c04 : [number, number & { b : number; }]
350+ >f05<number>(1) : [number, number & { b : number; }]
351+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
352352>1 : 1
353353
354- const f05c05 = f05<number>(1, 2);
355- >f05c05 : [number, number]
356- >f05<number>(1, 2) : [number, number]
357- >f05 : <T, U = T & { a: number; }>(a?: T, b?: U) => [T, U]
354+ const f05c05 = f05<{ a: number }>({ a: 1 }, { a: 2, b: 3});
355+ >f05c05 : [{ a: number; }, { a: number; } & { b: number; }]
356+ >f05<{ a: number }>({ a: 1 }, { a: 2, b: 3}) : [{ a: number; }, { a: number; } & { b: number; }]
357+ >f05 : <T, U = T & { b: number; }>(a?: T, b?: U) => [T, U]
358+ >a : number
359+ >{ a: 1 } : { a: number; }
360+ >a : number
358361>1 : 1
362+ >{ a: 2, b: 3} : { a: number; b: number; }
363+ >a : number
359364>2 : 2
365+ >b : number
366+ >3 : 3
360367
361368const f05c06 = f05<number, number>();
362369>f05c06 : [number, number]
363370>f05<number, number>() : [number, number]
364- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
371+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
365372
366373const f05c07 = f05<number, number>(1);
367374>f05c07 : [number, number]
368375>f05<number, number>(1) : [number, number]
369- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
376+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
370377>1 : 1
371378
372379const f05c08 = f05<number, number>(1, 2);
373380>f05c08 : [number, number]
374381>f05<number, number>(1, 2) : [number, number]
375- >f05 : <T, U = T & { a : number; }>(a?: T, b?: U) => [T, U]
382+ >f05 : <T, U = T & { b : number; }>(a?: T, b?: U) => [T, U]
376383>1 : 1
377384>2 : 2
378385
0 commit comments