Skip to content

Commit 1577f94

Browse files
committed
Accept new baselines
1 parent 2ed627a commit 1577f94

11 files changed

+288
-331
lines changed

tests/baselines/reference/objectSpread.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,20 @@ let shortCutted: { a: number, b: string } = { ...o, a }
121121
let spreadNonPrimitive = { ...<object>{}};
122122

123123
// generic spreads
124+
125+
function f<T, U>(t: T, u: U) {
126+
return { ...t, ...u, id: 'id' };
127+
}
128+
129+
let exclusive: { id: string, a: number, b: string, c: string, d: boolean } =
130+
f({ a: 1, b: 'yes' }, { c: 'no', d: false })
131+
let overlap: { id: string, a: number, b: string } =
132+
f({ a: 1 }, { a: 2, b: 'extra' })
133+
let overlapConflict: { id:string, a: string } =
134+
f({ a: 1 }, { a: 'mismatch' })
135+
let overwriteId: { id: string, a: number, c: number, d: string } =
136+
f({ a: 1, id: true }, { c: 1, d: 'no' })
137+
124138
function genericSpread<T, U>(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) {
125139
let x01 = { ...t };
126140
let x02 = { ...t, ...t };
@@ -236,6 +250,13 @@ var shortCutted = __assign({}, o, { a: a });
236250
// non primitive
237251
var spreadNonPrimitive = __assign({}, {});
238252
// generic spreads
253+
function f(t, u) {
254+
return __assign({}, t, u, { id: 'id' });
255+
}
256+
var exclusive = f({ a: 1, b: 'yes' }, { c: 'no', d: false });
257+
var overlap = f({ a: 1 }, { a: 2, b: 'extra' });
258+
var overlapConflict = f({ a: 1 }, { a: 'mismatch' });
259+
var overwriteId = f({ a: 1, id: true }, { c: 1, d: 'no' });
239260
function genericSpread(t, u, v, w, obj) {
240261
var x01 = __assign({}, t);
241262
var x02 = __assign({}, t, t);

tests/baselines/reference/objectSpread.symbols

Lines changed: 143 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -453,116 +453,183 @@ let spreadNonPrimitive = { ...<object>{}};
453453
>spreadNonPrimitive : Symbol(spreadNonPrimitive, Decl(objectSpread.ts, 119, 3))
454454

455455
// 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+
456523
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))
472539

473540
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))
476543

477544
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))
481548

482549
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))
486553

487554
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))
491558

492559
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))
497564

498565
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))
503570

504571
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))
511578

512579
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))
519586

520587
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))
527594

528595
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))
531598

532599
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))
536603

537604
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))
540607

541608
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))
545612

546613
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))
550617

551618
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))
555622

556623
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))
561628

562629
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))
567634
}
568635

tests/baselines/reference/objectSpread.types

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,96 @@ let spreadNonPrimitive = { ...<object>{}};
579579
>{} : {}
580580

581581
// generic spreads
582+
583+
function f<T, U>(t: T, u: U) {
584+
>f : <T, U>(t: T, u: U) => T & U & { id: string; }
585+
>t : T
586+
>u : U
587+
588+
return { ...t, ...u, id: 'id' };
589+
>{ ...t, ...u, id: 'id' } : T & U & { id: string; }
590+
>t : T
591+
>u : U
592+
>id : string
593+
>'id' : "id"
594+
}
595+
596+
let exclusive: { id: string, a: number, b: string, c: string, d: boolean } =
597+
>exclusive : { id: string; a: number; b: string; c: string; d: boolean; }
598+
>id : string
599+
>a : number
600+
>b : string
601+
>c : string
602+
>d : boolean
603+
604+
f({ a: 1, b: 'yes' }, { c: 'no', d: false })
605+
>f({ a: 1, b: 'yes' }, { c: 'no', d: false }) : { a: number; b: string; } & { c: string; d: boolean; } & { id: string; }
606+
>f : <T, U>(t: T, u: U) => T & U & { id: string; }
607+
>{ a: 1, b: 'yes' } : { a: number; b: string; }
608+
>a : number
609+
>1 : 1
610+
>b : string
611+
>'yes' : "yes"
612+
>{ c: 'no', d: false } : { c: string; d: false; }
613+
>c : string
614+
>'no' : "no"
615+
>d : false
616+
>false : false
617+
618+
let overlap: { id: string, a: number, b: string } =
619+
>overlap : { id: string; a: number; b: string; }
620+
>id : string
621+
>a : number
622+
>b : string
623+
624+
f({ a: 1 }, { a: 2, b: 'extra' })
625+
>f({ a: 1 }, { a: 2, b: 'extra' }) : { a: number; } & { a: number; b: string; } & { id: string; }
626+
>f : <T, U>(t: T, u: U) => T & U & { id: string; }
627+
>{ a: 1 } : { a: number; }
628+
>a : number
629+
>1 : 1
630+
>{ a: 2, b: 'extra' } : { a: number; b: string; }
631+
>a : number
632+
>2 : 2
633+
>b : string
634+
>'extra' : "extra"
635+
636+
let overlapConflict: { id:string, a: string } =
637+
>overlapConflict : { id: string; a: string; }
638+
>id : string
639+
>a : string
640+
641+
f({ a: 1 }, { a: 'mismatch' })
642+
>f({ a: 1 }, { a: 'mismatch' }) : { a: number; } & { a: string; } & { id: string; }
643+
>f : <T, U>(t: T, u: U) => T & U & { id: string; }
644+
>{ a: 1 } : { a: number; }
645+
>a : number
646+
>1 : 1
647+
>{ a: 'mismatch' } : { a: string; }
648+
>a : string
649+
>'mismatch' : "mismatch"
650+
651+
let overwriteId: { id: string, a: number, c: number, d: string } =
652+
>overwriteId : { id: string; a: number; c: number; d: string; }
653+
>id : string
654+
>a : number
655+
>c : number
656+
>d : string
657+
658+
f({ a: 1, id: true }, { c: 1, d: 'no' })
659+
>f({ a: 1, id: true }, { c: 1, d: 'no' }) : { a: number; id: boolean; } & { c: number; d: string; } & { id: string; }
660+
>f : <T, U>(t: T, u: U) => T & U & { id: string; }
661+
>{ a: 1, id: true } : { a: number; id: true; }
662+
>a : number
663+
>1 : 1
664+
>id : true
665+
>true : true
666+
>{ c: 1, d: 'no' } : { c: number; d: string; }
667+
>c : number
668+
>1 : 1
669+
>d : string
670+
>'no' : "no"
671+
582672
function genericSpread<T, U>(t: T, u: U, v: T | U, w: T | { s: string }, obj: { x: number }) {
583673
>genericSpread : <T, U>(t: T, u: U, v: T | U, w: T | { s: string; }, obj: { x: number; }) => void
584674
>t : T

0 commit comments

Comments
 (0)