@@ -238,67 +238,155 @@ function f4<T extends any[]>(t: T) {
238
238
>x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 55, 12))
239
239
}
240
240
241
+ declare function f5<T extends any[], U>(f: (...args: T) => U): (...args: T) => U;
242
+ >f5 : Symbol(f5, Decl(restTuplesFromContextualTypes.ts, 56, 1))
243
+ >T : Symbol(T, Decl(restTuplesFromContextualTypes.ts, 58, 20))
244
+ >U : Symbol(U, Decl(restTuplesFromContextualTypes.ts, 58, 36))
245
+ >f : Symbol(f, Decl(restTuplesFromContextualTypes.ts, 58, 40))
246
+ >args : Symbol(args, Decl(restTuplesFromContextualTypes.ts, 58, 44))
247
+ >T : Symbol(T, Decl(restTuplesFromContextualTypes.ts, 58, 20))
248
+ >U : Symbol(U, Decl(restTuplesFromContextualTypes.ts, 58, 36))
249
+ >args : Symbol(args, Decl(restTuplesFromContextualTypes.ts, 58, 64))
250
+ >T : Symbol(T, Decl(restTuplesFromContextualTypes.ts, 58, 20))
251
+ >U : Symbol(U, Decl(restTuplesFromContextualTypes.ts, 58, 36))
252
+
253
+ let g0 = f5(() => "hello");
254
+ >g0 : Symbol(g0, Decl(restTuplesFromContextualTypes.ts, 60, 3))
255
+ >f5 : Symbol(f5, Decl(restTuplesFromContextualTypes.ts, 56, 1))
256
+
257
+ let g1 = f5((x, y) => 42);
258
+ >g1 : Symbol(g1, Decl(restTuplesFromContextualTypes.ts, 61, 3))
259
+ >f5 : Symbol(f5, Decl(restTuplesFromContextualTypes.ts, 56, 1))
260
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 61, 13))
261
+ >y : Symbol(y, Decl(restTuplesFromContextualTypes.ts, 61, 15))
262
+
263
+ let g2 = f5((x: number, y) => 42);
264
+ >g2 : Symbol(g2, Decl(restTuplesFromContextualTypes.ts, 62, 3))
265
+ >f5 : Symbol(f5, Decl(restTuplesFromContextualTypes.ts, 56, 1))
266
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 62, 13))
267
+ >y : Symbol(y, Decl(restTuplesFromContextualTypes.ts, 62, 23))
268
+
269
+ let g3 = f5((x: number, y: number) => x + y);
270
+ >g3 : Symbol(g3, Decl(restTuplesFromContextualTypes.ts, 63, 3))
271
+ >f5 : Symbol(f5, Decl(restTuplesFromContextualTypes.ts, 56, 1))
272
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 63, 13))
273
+ >y : Symbol(y, Decl(restTuplesFromContextualTypes.ts, 63, 23))
274
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 63, 13))
275
+ >y : Symbol(y, Decl(restTuplesFromContextualTypes.ts, 63, 23))
276
+
277
+ let g4 = f5((...args) => true);
278
+ >g4 : Symbol(g4, Decl(restTuplesFromContextualTypes.ts, 64, 3))
279
+ >f5 : Symbol(f5, Decl(restTuplesFromContextualTypes.ts, 56, 1))
280
+ >args : Symbol(args, Decl(restTuplesFromContextualTypes.ts, 64, 13))
281
+
282
+ declare function pipe<A extends any[], B, C>(f: (...args: A) => B, g: (x: B) => C): (...args: A) => C;
283
+ >pipe : Symbol(pipe, Decl(restTuplesFromContextualTypes.ts, 64, 31))
284
+ >A : Symbol(A, Decl(restTuplesFromContextualTypes.ts, 66, 22))
285
+ >B : Symbol(B, Decl(restTuplesFromContextualTypes.ts, 66, 38))
286
+ >C : Symbol(C, Decl(restTuplesFromContextualTypes.ts, 66, 41))
287
+ >f : Symbol(f, Decl(restTuplesFromContextualTypes.ts, 66, 45))
288
+ >args : Symbol(args, Decl(restTuplesFromContextualTypes.ts, 66, 49))
289
+ >A : Symbol(A, Decl(restTuplesFromContextualTypes.ts, 66, 22))
290
+ >B : Symbol(B, Decl(restTuplesFromContextualTypes.ts, 66, 38))
291
+ >g : Symbol(g, Decl(restTuplesFromContextualTypes.ts, 66, 66))
292
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 66, 71))
293
+ >B : Symbol(B, Decl(restTuplesFromContextualTypes.ts, 66, 38))
294
+ >C : Symbol(C, Decl(restTuplesFromContextualTypes.ts, 66, 41))
295
+ >args : Symbol(args, Decl(restTuplesFromContextualTypes.ts, 66, 85))
296
+ >A : Symbol(A, Decl(restTuplesFromContextualTypes.ts, 66, 22))
297
+ >C : Symbol(C, Decl(restTuplesFromContextualTypes.ts, 66, 41))
298
+
299
+ let g5 = pipe(() => true, b => 42);
300
+ >g5 : Symbol(g5, Decl(restTuplesFromContextualTypes.ts, 68, 3))
301
+ >pipe : Symbol(pipe, Decl(restTuplesFromContextualTypes.ts, 64, 31))
302
+ >b : Symbol(b, Decl(restTuplesFromContextualTypes.ts, 68, 25))
303
+
304
+ let g6 = pipe(x => "hello", s => s.length);
305
+ >g6 : Symbol(g6, Decl(restTuplesFromContextualTypes.ts, 69, 3))
306
+ >pipe : Symbol(pipe, Decl(restTuplesFromContextualTypes.ts, 64, 31))
307
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 69, 14))
308
+ >s : Symbol(s, Decl(restTuplesFromContextualTypes.ts, 69, 27))
309
+ >s.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
310
+ >s : Symbol(s, Decl(restTuplesFromContextualTypes.ts, 69, 27))
311
+ >length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
312
+
313
+ let g7 = pipe((x, y) => 42, x => "" + x);
314
+ >g7 : Symbol(g7, Decl(restTuplesFromContextualTypes.ts, 70, 3))
315
+ >pipe : Symbol(pipe, Decl(restTuplesFromContextualTypes.ts, 64, 31))
316
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 70, 15))
317
+ >y : Symbol(y, Decl(restTuplesFromContextualTypes.ts, 70, 17))
318
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 70, 27))
319
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 70, 27))
320
+
321
+ let g8 = pipe((x: number, y: string) => 42, x => "" + x);
322
+ >g8 : Symbol(g8, Decl(restTuplesFromContextualTypes.ts, 71, 3))
323
+ >pipe : Symbol(pipe, Decl(restTuplesFromContextualTypes.ts, 64, 31))
324
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 71, 15))
325
+ >y : Symbol(y, Decl(restTuplesFromContextualTypes.ts, 71, 25))
326
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 71, 43))
327
+ >x : Symbol(x, Decl(restTuplesFromContextualTypes.ts, 71, 43))
328
+
241
329
// Repro from #25288
242
330
243
331
declare var tuple: [number, string];
244
- >tuple : Symbol(tuple, Decl(restTuplesFromContextualTypes.ts, 60 , 11))
332
+ >tuple : Symbol(tuple, Decl(restTuplesFromContextualTypes.ts, 75 , 11))
245
333
246
334
(function foo(a, b){}(...tuple));
247
- >foo : Symbol(foo, Decl(restTuplesFromContextualTypes.ts, 61 , 1))
248
- >a : Symbol(a, Decl(restTuplesFromContextualTypes.ts, 61 , 14))
249
- >b : Symbol(b, Decl(restTuplesFromContextualTypes.ts, 61 , 16))
250
- >tuple : Symbol(tuple, Decl(restTuplesFromContextualTypes.ts, 60 , 11))
335
+ >foo : Symbol(foo, Decl(restTuplesFromContextualTypes.ts, 76 , 1))
336
+ >a : Symbol(a, Decl(restTuplesFromContextualTypes.ts, 76 , 14))
337
+ >b : Symbol(b, Decl(restTuplesFromContextualTypes.ts, 76 , 16))
338
+ >tuple : Symbol(tuple, Decl(restTuplesFromContextualTypes.ts, 75 , 11))
251
339
252
340
// Repro from #25289
253
341
254
342
declare function take(cb: (a: number, b: string) => void): void;
255
- >take : Symbol(take, Decl(restTuplesFromContextualTypes.ts, 61 , 33))
256
- >cb : Symbol(cb, Decl(restTuplesFromContextualTypes.ts, 65 , 22))
257
- >a : Symbol(a, Decl(restTuplesFromContextualTypes.ts, 65 , 27))
258
- >b : Symbol(b, Decl(restTuplesFromContextualTypes.ts, 65 , 37))
343
+ >take : Symbol(take, Decl(restTuplesFromContextualTypes.ts, 76 , 33))
344
+ >cb : Symbol(cb, Decl(restTuplesFromContextualTypes.ts, 80 , 22))
345
+ >a : Symbol(a, Decl(restTuplesFromContextualTypes.ts, 80 , 27))
346
+ >b : Symbol(b, Decl(restTuplesFromContextualTypes.ts, 80 , 37))
259
347
260
348
(function foo(...rest){}(1, ''));
261
- >foo : Symbol(foo, Decl(restTuplesFromContextualTypes.ts, 67 , 1))
262
- >rest : Symbol(rest, Decl(restTuplesFromContextualTypes.ts, 67 , 14))
349
+ >foo : Symbol(foo, Decl(restTuplesFromContextualTypes.ts, 82 , 1))
350
+ >rest : Symbol(rest, Decl(restTuplesFromContextualTypes.ts, 82 , 14))
263
351
264
352
take(function(...rest){});
265
- >take : Symbol(take, Decl(restTuplesFromContextualTypes.ts, 61 , 33))
266
- >rest : Symbol(rest, Decl(restTuplesFromContextualTypes.ts, 68 , 14))
353
+ >take : Symbol(take, Decl(restTuplesFromContextualTypes.ts, 76 , 33))
354
+ >rest : Symbol(rest, Decl(restTuplesFromContextualTypes.ts, 83 , 14))
267
355
268
356
// Repro from #29833
269
357
270
358
type ArgsUnion = [number, string] | [number, Error];
271
- >ArgsUnion : Symbol(ArgsUnion, Decl(restTuplesFromContextualTypes.ts, 68 , 26))
359
+ >ArgsUnion : Symbol(ArgsUnion, Decl(restTuplesFromContextualTypes.ts, 83 , 26))
272
360
>Error : Symbol(Error, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
273
361
274
362
type TupleUnionFunc = (...params: ArgsUnion) => number;
275
- >TupleUnionFunc : Symbol(TupleUnionFunc, Decl(restTuplesFromContextualTypes.ts, 72 , 52))
276
- >params : Symbol(params, Decl(restTuplesFromContextualTypes.ts, 73 , 23))
277
- >ArgsUnion : Symbol(ArgsUnion, Decl(restTuplesFromContextualTypes.ts, 68 , 26))
363
+ >TupleUnionFunc : Symbol(TupleUnionFunc, Decl(restTuplesFromContextualTypes.ts, 87 , 52))
364
+ >params : Symbol(params, Decl(restTuplesFromContextualTypes.ts, 88 , 23))
365
+ >ArgsUnion : Symbol(ArgsUnion, Decl(restTuplesFromContextualTypes.ts, 83 , 26))
278
366
279
367
const funcUnionTupleNoRest: TupleUnionFunc = (num, strOrErr) => {
280
- >funcUnionTupleNoRest : Symbol(funcUnionTupleNoRest, Decl(restTuplesFromContextualTypes.ts, 75 , 5))
281
- >TupleUnionFunc : Symbol(TupleUnionFunc, Decl(restTuplesFromContextualTypes.ts, 72 , 52))
282
- >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 75 , 46))
283
- >strOrErr : Symbol(strOrErr, Decl(restTuplesFromContextualTypes.ts, 75 , 50))
368
+ >funcUnionTupleNoRest : Symbol(funcUnionTupleNoRest, Decl(restTuplesFromContextualTypes.ts, 90 , 5))
369
+ >TupleUnionFunc : Symbol(TupleUnionFunc, Decl(restTuplesFromContextualTypes.ts, 87 , 52))
370
+ >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 90 , 46))
371
+ >strOrErr : Symbol(strOrErr, Decl(restTuplesFromContextualTypes.ts, 90 , 50))
284
372
285
373
return num;
286
- >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 75 , 46))
374
+ >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 90 , 46))
287
375
288
376
};
289
377
290
378
const funcUnionTupleRest: TupleUnionFunc = (...params) => {
291
- >funcUnionTupleRest : Symbol(funcUnionTupleRest, Decl(restTuplesFromContextualTypes.ts, 79 , 5))
292
- >TupleUnionFunc : Symbol(TupleUnionFunc, Decl(restTuplesFromContextualTypes.ts, 72 , 52))
293
- >params : Symbol(params, Decl(restTuplesFromContextualTypes.ts, 79 , 44))
379
+ >funcUnionTupleRest : Symbol(funcUnionTupleRest, Decl(restTuplesFromContextualTypes.ts, 94 , 5))
380
+ >TupleUnionFunc : Symbol(TupleUnionFunc, Decl(restTuplesFromContextualTypes.ts, 87 , 52))
381
+ >params : Symbol(params, Decl(restTuplesFromContextualTypes.ts, 94 , 44))
294
382
295
383
const [num, strOrErr] = params;
296
- >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 80 , 9))
297
- >strOrErr : Symbol(strOrErr, Decl(restTuplesFromContextualTypes.ts, 80 , 13))
298
- >params : Symbol(params, Decl(restTuplesFromContextualTypes.ts, 79 , 44))
384
+ >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 95 , 9))
385
+ >strOrErr : Symbol(strOrErr, Decl(restTuplesFromContextualTypes.ts, 95 , 13))
386
+ >params : Symbol(params, Decl(restTuplesFromContextualTypes.ts, 94 , 44))
299
387
300
388
return num;
301
- >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 80 , 9))
389
+ >num : Symbol(num, Decl(restTuplesFromContextualTypes.ts, 95 , 9))
302
390
303
391
};
304
392
0 commit comments