|
| 1 | +=== tests/cases/conformance/types/spread/spreadDuplicate.ts === |
| 2 | +// Repro from #44438 |
| 3 | + |
| 4 | +declare let a: { a: string }; |
| 5 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 2, 11)) |
| 6 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 2, 16)) |
| 7 | + |
| 8 | +declare let b: { a?: string }; |
| 9 | +>b : Symbol(b, Decl(spreadDuplicate.ts, 3, 11)) |
| 10 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 3, 16)) |
| 11 | + |
| 12 | +declare let c: { a: string | undefined }; |
| 13 | +>c : Symbol(c, Decl(spreadDuplicate.ts, 4, 11)) |
| 14 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 4, 16)) |
| 15 | + |
| 16 | +declare let d: { a?: string | undefined }; |
| 17 | +>d : Symbol(d, Decl(spreadDuplicate.ts, 5, 11)) |
| 18 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 5, 16)) |
| 19 | + |
| 20 | +declare let t: boolean; |
| 21 | +>t : Symbol(t, Decl(spreadDuplicate.ts, 7, 11)) |
| 22 | + |
| 23 | +let a1 = { a: 123, ...a }; // string (Error) |
| 24 | +>a1 : Symbol(a1, Decl(spreadDuplicate.ts, 9, 3)) |
| 25 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 9, 10)) |
| 26 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 2, 11)) |
| 27 | + |
| 28 | +let b1 = { a: 123, ...b }; // string | number |
| 29 | +>b1 : Symbol(b1, Decl(spreadDuplicate.ts, 10, 3)) |
| 30 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 10, 10)) |
| 31 | +>b : Symbol(b, Decl(spreadDuplicate.ts, 3, 11)) |
| 32 | + |
| 33 | +let c1 = { a: 123, ...c }; // string | undefined (Error) |
| 34 | +>c1 : Symbol(c1, Decl(spreadDuplicate.ts, 11, 3)) |
| 35 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 11, 10)) |
| 36 | +>c : Symbol(c, Decl(spreadDuplicate.ts, 4, 11)) |
| 37 | + |
| 38 | +let d1 = { a: 123, ...d }; // string | number |
| 39 | +>d1 : Symbol(d1, Decl(spreadDuplicate.ts, 12, 3)) |
| 40 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 12, 10)) |
| 41 | +>d : Symbol(d, Decl(spreadDuplicate.ts, 5, 11)) |
| 42 | + |
| 43 | +let a2 = { a: 123, ...(t ? a : {}) }; // string | number |
| 44 | +>a2 : Symbol(a2, Decl(spreadDuplicate.ts, 14, 3)) |
| 45 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 14, 10)) |
| 46 | +>t : Symbol(t, Decl(spreadDuplicate.ts, 7, 11)) |
| 47 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 2, 11)) |
| 48 | + |
| 49 | +let b2 = { a: 123, ...(t ? b : {}) }; // string | number |
| 50 | +>b2 : Symbol(b2, Decl(spreadDuplicate.ts, 15, 3)) |
| 51 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 15, 10)) |
| 52 | +>t : Symbol(t, Decl(spreadDuplicate.ts, 7, 11)) |
| 53 | +>b : Symbol(b, Decl(spreadDuplicate.ts, 3, 11)) |
| 54 | + |
| 55 | +let c2 = { a: 123, ...(t ? c : {}) }; // string | number |
| 56 | +>c2 : Symbol(c2, Decl(spreadDuplicate.ts, 16, 3)) |
| 57 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 16, 10)) |
| 58 | +>t : Symbol(t, Decl(spreadDuplicate.ts, 7, 11)) |
| 59 | +>c : Symbol(c, Decl(spreadDuplicate.ts, 4, 11)) |
| 60 | + |
| 61 | +let d2 = { a: 123, ...(t ? d : {}) }; // string | number |
| 62 | +>d2 : Symbol(d2, Decl(spreadDuplicate.ts, 17, 3)) |
| 63 | +>a : Symbol(a, Decl(spreadDuplicate.ts, 17, 10)) |
| 64 | +>t : Symbol(t, Decl(spreadDuplicate.ts, 7, 11)) |
| 65 | +>d : Symbol(d, Decl(spreadDuplicate.ts, 5, 11)) |
| 66 | + |
0 commit comments