Skip to content

Commit e579c09

Browse files
committed
Improve test: nested object literal with intersection
1 parent 45f70d5 commit e579c09

4 files changed

Lines changed: 82 additions & 29 deletions

File tree

tests/baselines/reference/intersectionTypeMembers.js

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,19 @@ var s = f("hello");
2828
var n = f(42);
2929

3030
interface D {
31-
nested: {d: string;};
31+
nested: { doublyNested: { d: string; }, different: { e: number } };
3232
}
3333
interface E {
34-
nested: { e: string; };
34+
nested: { doublyNested: { f: string; }, other: {g: number } };
3535
}
3636
const de: D & E = {
3737
nested: {
38-
d: 'yes',
39-
e: 'no'
38+
doublyNested: {
39+
d: 'yes',
40+
f: 'no'
41+
},
42+
different: { e: 12 },
43+
other: { g: 101 }
4044
}
4145
}
4246

@@ -57,7 +61,11 @@ var s = f("hello");
5761
var n = f(42);
5862
var de = {
5963
nested: {
60-
d: 'yes',
61-
e: 'no'
64+
doublyNested: {
65+
d: 'yes',
66+
f: 'no'
67+
},
68+
different: { e: 12 },
69+
other: { g: 101 }
6270
}
6371
};

tests/baselines/reference/intersectionTypeMembers.symbols

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -101,16 +101,22 @@ var n = f(42);
101101
interface D {
102102
>D : Symbol(D, Decl(intersectionTypeMembers.ts, 26, 14))
103103

104-
nested: {d: string;};
104+
nested: { doublyNested: { d: string; }, different: { e: number } };
105105
>nested : Symbol(D.nested, Decl(intersectionTypeMembers.ts, 28, 13))
106-
>d : Symbol(d, Decl(intersectionTypeMembers.ts, 29, 13))
106+
>doublyNested : Symbol(doublyNested, Decl(intersectionTypeMembers.ts, 29, 13))
107+
>d : Symbol(d, Decl(intersectionTypeMembers.ts, 29, 29))
108+
>different : Symbol(different, Decl(intersectionTypeMembers.ts, 29, 43))
109+
>e : Symbol(e, Decl(intersectionTypeMembers.ts, 29, 56))
107110
}
108111
interface E {
109112
>E : Symbol(E, Decl(intersectionTypeMembers.ts, 30, 1))
110113

111-
nested: { e: string; };
114+
nested: { doublyNested: { f: string; }, other: {g: number } };
112115
>nested : Symbol(E.nested, Decl(intersectionTypeMembers.ts, 31, 13))
113-
>e : Symbol(e, Decl(intersectionTypeMembers.ts, 32, 13))
116+
>doublyNested : Symbol(doublyNested, Decl(intersectionTypeMembers.ts, 32, 13))
117+
>f : Symbol(f, Decl(intersectionTypeMembers.ts, 32, 29))
118+
>other : Symbol(other, Decl(intersectionTypeMembers.ts, 32, 43))
119+
>g : Symbol(g, Decl(intersectionTypeMembers.ts, 32, 52))
114120
}
115121
const de: D & E = {
116122
>de : Symbol(de, Decl(intersectionTypeMembers.ts, 34, 5))
@@ -120,11 +126,23 @@ const de: D & E = {
120126
nested: {
121127
>nested : Symbol(nested, Decl(intersectionTypeMembers.ts, 34, 19))
122128

123-
d: 'yes',
124-
>d : Symbol(d, Decl(intersectionTypeMembers.ts, 35, 13))
129+
doublyNested: {
130+
>doublyNested : Symbol(doublyNested, Decl(intersectionTypeMembers.ts, 35, 13))
125131

126-
e: 'no'
127-
>e : Symbol(e, Decl(intersectionTypeMembers.ts, 36, 17))
132+
d: 'yes',
133+
>d : Symbol(d, Decl(intersectionTypeMembers.ts, 36, 23))
134+
135+
f: 'no'
136+
>f : Symbol(f, Decl(intersectionTypeMembers.ts, 37, 21))
137+
138+
},
139+
different: { e: 12 },
140+
>different : Symbol(different, Decl(intersectionTypeMembers.ts, 39, 10))
141+
>e : Symbol(e, Decl(intersectionTypeMembers.ts, 40, 20))
142+
143+
other: { g: 101 }
144+
>other : Symbol(other, Decl(intersectionTypeMembers.ts, 40, 29))
145+
>g : Symbol(g, Decl(intersectionTypeMembers.ts, 41, 16))
128146
}
129147
}
130148

tests/baselines/reference/intersectionTypeMembers.types

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -117,34 +117,57 @@ var n = f(42);
117117
interface D {
118118
>D : D
119119

120-
nested: {d: string;};
121-
>nested : { d: string; }
120+
nested: { doublyNested: { d: string; }, different: { e: number } };
121+
>nested : { doublyNested: { d: string; }; different: { e: number; }; }
122+
>doublyNested : { d: string; }
122123
>d : string
124+
>different : { e: number; }
125+
>e : number
123126
}
124127
interface E {
125128
>E : E
126129

127-
nested: { e: string; };
128-
>nested : { e: string; }
129-
>e : string
130+
nested: { doublyNested: { f: string; }, other: {g: number } };
131+
>nested : { doublyNested: { f: string; }; other: { g: number; }; }
132+
>doublyNested : { f: string; }
133+
>f : string
134+
>other : { g: number; }
135+
>g : number
130136
}
131137
const de: D & E = {
132138
>de : D & E
133139
>D : D
134140
>E : E
135-
>{ nested: { d: 'yes', e: 'no' }} : { nested: { d: string; e: string; }; }
141+
>{ nested: { doublyNested: { d: 'yes', f: 'no' }, different: { e: 12 }, other: { g: 101 } }} : { nested: { doublyNested: { d: string; f: string; }; different: { e: number; }; other: { g: number; }; }; }
136142

137143
nested: {
138-
>nested : { d: string; e: string; }
139-
>{ d: 'yes', e: 'no' } : { d: string; e: string; }
144+
>nested : { doublyNested: { d: string; f: string; }; different: { e: number; }; other: { g: number; }; }
145+
>{ doublyNested: { d: 'yes', f: 'no' }, different: { e: 12 }, other: { g: 101 } } : { doublyNested: { d: string; f: string; }; different: { e: number; }; other: { g: number; }; }
140146

141-
d: 'yes',
147+
doublyNested: {
148+
>doublyNested : { d: string; f: string; }
149+
>{ d: 'yes', f: 'no' } : { d: string; f: string; }
150+
151+
d: 'yes',
142152
>d : string
143153
>'yes' : string
144154

145-
e: 'no'
146-
>e : string
155+
f: 'no'
156+
>f : string
147157
>'no' : string
158+
159+
},
160+
different: { e: 12 },
161+
>different : { e: number; }
162+
>{ e: 12 } : { e: number; }
163+
>e : number
164+
>12 : number
165+
166+
other: { g: 101 }
167+
>other : { g: number; }
168+
>{ g: 101 } : { g: number; }
169+
>g : number
170+
>101 : number
148171
}
149172
}
150173

tests/cases/conformance/types/intersection/intersectionTypeMembers.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,18 @@ var s = f("hello");
2727
var n = f(42);
2828

2929
interface D {
30-
nested: {d: string;};
30+
nested: { doublyNested: { d: string; }, different: { e: number } };
3131
}
3232
interface E {
33-
nested: { e: string; };
33+
nested: { doublyNested: { f: string; }, other: {g: number } };
3434
}
3535
const de: D & E = {
3636
nested: {
37-
d: 'yes',
38-
e: 'no'
37+
doublyNested: {
38+
d: 'yes',
39+
f: 'no'
40+
},
41+
different: { e: 12 },
42+
other: { g: 101 }
3943
}
4044
}

0 commit comments

Comments
 (0)