@@ -453,116 +453,183 @@ let spreadNonPrimitive = { ...<object>{}};
453
453
>spreadNonPrimitive : Symbol(spreadNonPrimitive, Decl(objectSpread.ts, 119, 3))
454
454
455
455
// generic spreads
456
+
457
+ function f<T, U>(t: T, u: U) {
458
+ >f : Symbol(f, Decl(objectSpread.ts, 119, 42))
459
+ >T : Symbol(T, Decl(objectSpread.ts, 123, 11))
460
+ >U : Symbol(U, Decl(objectSpread.ts, 123, 13))
461
+ >t : Symbol(t, Decl(objectSpread.ts, 123, 17))
462
+ >T : Symbol(T, Decl(objectSpread.ts, 123, 11))
463
+ >u : Symbol(u, Decl(objectSpread.ts, 123, 22))
464
+ >U : Symbol(U, Decl(objectSpread.ts, 123, 13))
465
+
466
+ return { ...t, ...u, id: 'id' };
467
+ >t : Symbol(t, Decl(objectSpread.ts, 123, 17))
468
+ >u : Symbol(u, Decl(objectSpread.ts, 123, 22))
469
+ >id : Symbol(id, Decl(objectSpread.ts, 124, 24))
470
+ }
471
+
472
+ let exclusive: { id: string, a: number, b: string, c: string, d: boolean } =
473
+ >exclusive : Symbol(exclusive, Decl(objectSpread.ts, 127, 3))
474
+ >id : Symbol(id, Decl(objectSpread.ts, 127, 16))
475
+ >a : Symbol(a, Decl(objectSpread.ts, 127, 28))
476
+ >b : Symbol(b, Decl(objectSpread.ts, 127, 39))
477
+ >c : Symbol(c, Decl(objectSpread.ts, 127, 50))
478
+ >d : Symbol(d, Decl(objectSpread.ts, 127, 61))
479
+
480
+ f({ a: 1, b: 'yes' }, { c: 'no', d: false })
481
+ >f : Symbol(f, Decl(objectSpread.ts, 119, 42))
482
+ >a : Symbol(a, Decl(objectSpread.ts, 128, 7))
483
+ >b : Symbol(b, Decl(objectSpread.ts, 128, 13))
484
+ >c : Symbol(c, Decl(objectSpread.ts, 128, 27))
485
+ >d : Symbol(d, Decl(objectSpread.ts, 128, 36))
486
+
487
+ let overlap: { id: string, a: number, b: string } =
488
+ >overlap : Symbol(overlap, Decl(objectSpread.ts, 129, 3))
489
+ >id : Symbol(id, Decl(objectSpread.ts, 129, 14))
490
+ >a : Symbol(a, Decl(objectSpread.ts, 129, 26))
491
+ >b : Symbol(b, Decl(objectSpread.ts, 129, 37))
492
+
493
+ f({ a: 1 }, { a: 2, b: 'extra' })
494
+ >f : Symbol(f, Decl(objectSpread.ts, 119, 42))
495
+ >a : Symbol(a, Decl(objectSpread.ts, 130, 7))
496
+ >a : Symbol(a, Decl(objectSpread.ts, 130, 17))
497
+ >b : Symbol(b, Decl(objectSpread.ts, 130, 23))
498
+
499
+ let overlapConflict: { id:string, a: string } =
500
+ >overlapConflict : Symbol(overlapConflict, Decl(objectSpread.ts, 131, 3))
501
+ >id : Symbol(id, Decl(objectSpread.ts, 131, 22))
502
+ >a : Symbol(a, Decl(objectSpread.ts, 131, 33))
503
+
504
+ f({ a: 1 }, { a: 'mismatch' })
505
+ >f : Symbol(f, Decl(objectSpread.ts, 119, 42))
506
+ >a : Symbol(a, Decl(objectSpread.ts, 132, 7))
507
+ >a : Symbol(a, Decl(objectSpread.ts, 132, 17))
508
+
509
+ let overwriteId: { id: string, a: number, c: number, d: string } =
510
+ >overwriteId : Symbol(overwriteId, Decl(objectSpread.ts, 133, 3))
511
+ >id : Symbol(id, Decl(objectSpread.ts, 133, 18))
512
+ >a : Symbol(a, Decl(objectSpread.ts, 133, 30))
513
+ >c : Symbol(c, Decl(objectSpread.ts, 133, 41))
514
+ >d : Symbol(d, Decl(objectSpread.ts, 133, 52))
515
+
516
+ f({ a: 1, id: true }, { c: 1, d: 'no' })
517
+ >f : Symbol(f, Decl(objectSpread.ts, 119, 42))
518
+ >a : Symbol(a, Decl(objectSpread.ts, 134, 7))
519
+ >id : Symbol(id, Decl(objectSpread.ts, 134, 13))
520
+ >c : Symbol(c, Decl(objectSpread.ts, 134, 27))
521
+ >d : Symbol(d, Decl(objectSpread.ts, 134, 33))
522
+
456
523
function genericSpread<T, U>(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) {
457
- >genericSpread : Symbol(genericSpread, Decl(objectSpread.ts, 119, 42 ))
458
- >T : Symbol(T, Decl(objectSpread.ts, 122 , 23))
459
- >U : Symbol(U, Decl(objectSpread.ts, 122 , 25))
460
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
461
- >T : Symbol(T, Decl(objectSpread.ts, 122 , 23))
462
- >u : Symbol(u, Decl(objectSpread.ts, 122 , 34))
463
- >U : Symbol(U, Decl(objectSpread.ts, 122 , 25))
464
- >v : Symbol(v, Decl(objectSpread.ts, 122 , 40))
465
- >T : Symbol(T, Decl(objectSpread.ts, 122 , 23))
466
- >U : Symbol(U, Decl(objectSpread.ts, 122 , 25))
467
- >w : Symbol(w, Decl(objectSpread.ts, 122 , 50))
468
- >T : Symbol(T, Decl(objectSpread.ts, 122 , 23))
469
- >s : Symbol(s, Decl(objectSpread.ts, 122 , 59))
470
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
471
- >x : Symbol(x, Decl(objectSpread.ts, 122 , 79))
524
+ >genericSpread : Symbol(genericSpread, Decl(objectSpread.ts, 134, 44 ))
525
+ >T : Symbol(T, Decl(objectSpread.ts, 136 , 23))
526
+ >U : Symbol(U, Decl(objectSpread.ts, 136 , 25))
527
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
528
+ >T : Symbol(T, Decl(objectSpread.ts, 136 , 23))
529
+ >u : Symbol(u, Decl(objectSpread.ts, 136 , 34))
530
+ >U : Symbol(U, Decl(objectSpread.ts, 136 , 25))
531
+ >v : Symbol(v, Decl(objectSpread.ts, 136 , 40))
532
+ >T : Symbol(T, Decl(objectSpread.ts, 136 , 23))
533
+ >U : Symbol(U, Decl(objectSpread.ts, 136 , 25))
534
+ >w : Symbol(w, Decl(objectSpread.ts, 136 , 50))
535
+ >T : Symbol(T, Decl(objectSpread.ts, 136 , 23))
536
+ >s : Symbol(s, Decl(objectSpread.ts, 136 , 59))
537
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
538
+ >x : Symbol(x, Decl(objectSpread.ts, 136 , 79))
472
539
473
540
let x01 = { ...t };
474
- >x01 : Symbol(x01, Decl(objectSpread.ts, 123 , 7))
475
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
541
+ >x01 : Symbol(x01, Decl(objectSpread.ts, 137 , 7))
542
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
476
543
477
544
let x02 = { ...t, ...t };
478
- >x02 : Symbol(x02, Decl(objectSpread.ts, 124 , 7))
479
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
480
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
545
+ >x02 : Symbol(x02, Decl(objectSpread.ts, 138 , 7))
546
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
547
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
481
548
482
549
let x03 = { ...t, ...u };
483
- >x03 : Symbol(x03, Decl(objectSpread.ts, 125 , 7))
484
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
485
- >u : Symbol(u, Decl(objectSpread.ts, 122 , 34))
550
+ >x03 : Symbol(x03, Decl(objectSpread.ts, 139 , 7))
551
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
552
+ >u : Symbol(u, Decl(objectSpread.ts, 136 , 34))
486
553
487
554
let x04 = { ...u, ...t };
488
- >x04 : Symbol(x04, Decl(objectSpread.ts, 126 , 7))
489
- >u : Symbol(u, Decl(objectSpread.ts, 122 , 34))
490
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
555
+ >x04 : Symbol(x04, Decl(objectSpread.ts, 140 , 7))
556
+ >u : Symbol(u, Decl(objectSpread.ts, 136 , 34))
557
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
491
558
492
559
let x05 = { a: 5, b: 'hi', ...t };
493
- >x05 : Symbol(x05, Decl(objectSpread.ts, 127 , 7))
494
- >a : Symbol(a, Decl(objectSpread.ts, 127 , 15))
495
- >b : Symbol(b, Decl(objectSpread.ts, 127 , 21))
496
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
560
+ >x05 : Symbol(x05, Decl(objectSpread.ts, 141 , 7))
561
+ >a : Symbol(a, Decl(objectSpread.ts, 141 , 15))
562
+ >b : Symbol(b, Decl(objectSpread.ts, 141 , 21))
563
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
497
564
498
565
let x06 = { ...t, a: 5, b: 'hi' };
499
- >x06 : Symbol(x06, Decl(objectSpread.ts, 128 , 7))
500
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
501
- >a : Symbol(a, Decl(objectSpread.ts, 128 , 21))
502
- >b : Symbol(b, Decl(objectSpread.ts, 128 , 27))
566
+ >x06 : Symbol(x06, Decl(objectSpread.ts, 142 , 7))
567
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
568
+ >a : Symbol(a, Decl(objectSpread.ts, 142 , 21))
569
+ >b : Symbol(b, Decl(objectSpread.ts, 142 , 27))
503
570
504
571
let x07 = { a: 5, b: 'hi', ...t, c: true, ...obj };
505
- >x07 : Symbol(x07, Decl(objectSpread.ts, 129 , 7))
506
- >a : Symbol(a, Decl(objectSpread.ts, 129 , 15))
507
- >b : Symbol(b, Decl(objectSpread.ts, 129 , 21))
508
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
509
- >c : Symbol(c, Decl(objectSpread.ts, 129 , 36))
510
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
572
+ >x07 : Symbol(x07, Decl(objectSpread.ts, 143 , 7))
573
+ >a : Symbol(a, Decl(objectSpread.ts, 143 , 15))
574
+ >b : Symbol(b, Decl(objectSpread.ts, 143 , 21))
575
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
576
+ >c : Symbol(c, Decl(objectSpread.ts, 143 , 36))
577
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
511
578
512
579
let x09 = { a: 5, ...t, b: 'hi', c: true, ...obj };
513
- >x09 : Symbol(x09, Decl(objectSpread.ts, 130 , 7))
514
- >a : Symbol(a, Decl(objectSpread.ts, 130 , 15))
515
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
516
- >b : Symbol(b, Decl(objectSpread.ts, 130 , 27))
517
- >c : Symbol(c, Decl(objectSpread.ts, 130 , 36))
518
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
580
+ >x09 : Symbol(x09, Decl(objectSpread.ts, 144 , 7))
581
+ >a : Symbol(a, Decl(objectSpread.ts, 144 , 15))
582
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
583
+ >b : Symbol(b, Decl(objectSpread.ts, 144 , 27))
584
+ >c : Symbol(c, Decl(objectSpread.ts, 144 , 36))
585
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
519
586
520
587
let x10 = { a: 5, ...t, b: 'hi', ...u, ...obj };
521
- >x10 : Symbol(x10, Decl(objectSpread.ts, 131 , 7))
522
- >a : Symbol(a, Decl(objectSpread.ts, 131 , 15))
523
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
524
- >b : Symbol(b, Decl(objectSpread.ts, 131 , 27))
525
- >u : Symbol(u, Decl(objectSpread.ts, 122 , 34))
526
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
588
+ >x10 : Symbol(x10, Decl(objectSpread.ts, 145 , 7))
589
+ >a : Symbol(a, Decl(objectSpread.ts, 145 , 15))
590
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
591
+ >b : Symbol(b, Decl(objectSpread.ts, 145 , 27))
592
+ >u : Symbol(u, Decl(objectSpread.ts, 136 , 34))
593
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
527
594
528
595
let x11 = { ...v };
529
- >x11 : Symbol(x11, Decl(objectSpread.ts, 132 , 7))
530
- >v : Symbol(v, Decl(objectSpread.ts, 122 , 40))
596
+ >x11 : Symbol(x11, Decl(objectSpread.ts, 146 , 7))
597
+ >v : Symbol(v, Decl(objectSpread.ts, 136 , 40))
531
598
532
599
let x12 = { ...v, ...obj };
533
- >x12 : Symbol(x12, Decl(objectSpread.ts, 133 , 7))
534
- >v : Symbol(v, Decl(objectSpread.ts, 122 , 40))
535
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
600
+ >x12 : Symbol(x12, Decl(objectSpread.ts, 147 , 7))
601
+ >v : Symbol(v, Decl(objectSpread.ts, 136 , 40))
602
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
536
603
537
604
let x13 = { ...w };
538
- >x13 : Symbol(x13, Decl(objectSpread.ts, 134 , 7))
539
- >w : Symbol(w, Decl(objectSpread.ts, 122 , 50))
605
+ >x13 : Symbol(x13, Decl(objectSpread.ts, 148 , 7))
606
+ >w : Symbol(w, Decl(objectSpread.ts, 136 , 50))
540
607
541
608
let x14 = { ...w, ...obj };
542
- >x14 : Symbol(x14, Decl(objectSpread.ts, 135 , 7))
543
- >w : Symbol(w, Decl(objectSpread.ts, 122 , 50))
544
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
609
+ >x14 : Symbol(x14, Decl(objectSpread.ts, 149 , 7))
610
+ >w : Symbol(w, Decl(objectSpread.ts, 136 , 50))
611
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
545
612
546
613
let x15 = { ...t, ...v };
547
- >x15 : Symbol(x15, Decl(objectSpread.ts, 136 , 7))
548
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
549
- >v : Symbol(v, Decl(objectSpread.ts, 122 , 40))
614
+ >x15 : Symbol(x15, Decl(objectSpread.ts, 150 , 7))
615
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
616
+ >v : Symbol(v, Decl(objectSpread.ts, 136 , 40))
550
617
551
618
let x16 = { ...t, ...w };
552
- >x16 : Symbol(x16, Decl(objectSpread.ts, 137 , 7))
553
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
554
- >w : Symbol(w, Decl(objectSpread.ts, 122 , 50))
619
+ >x16 : Symbol(x16, Decl(objectSpread.ts, 151 , 7))
620
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
621
+ >w : Symbol(w, Decl(objectSpread.ts, 136 , 50))
555
622
556
623
let x17 = { ...t, ...w, ...obj };
557
- >x17 : Symbol(x17, Decl(objectSpread.ts, 138 , 7))
558
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
559
- >w : Symbol(w, Decl(objectSpread.ts, 122 , 50))
560
- >obj : Symbol(obj, Decl(objectSpread.ts, 122 , 72))
624
+ >x17 : Symbol(x17, Decl(objectSpread.ts, 152 , 7))
625
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
626
+ >w : Symbol(w, Decl(objectSpread.ts, 136 , 50))
627
+ >obj : Symbol(obj, Decl(objectSpread.ts, 136 , 72))
561
628
562
629
let x18 = { ...t, ...v, ...w };
563
- >x18 : Symbol(x18, Decl(objectSpread.ts, 139 , 7))
564
- >t : Symbol(t, Decl(objectSpread.ts, 122 , 29))
565
- >v : Symbol(v, Decl(objectSpread.ts, 122 , 40))
566
- >w : Symbol(w, Decl(objectSpread.ts, 122 , 50))
630
+ >x18 : Symbol(x18, Decl(objectSpread.ts, 153 , 7))
631
+ >t : Symbol(t, Decl(objectSpread.ts, 136 , 29))
632
+ >v : Symbol(v, Decl(objectSpread.ts, 136 , 40))
633
+ >w : Symbol(w, Decl(objectSpread.ts, 136 , 50))
567
634
}
568
635
0 commit comments