Skip to content

Commit 8da561c

Browse files
committed
More tests!
1 parent ed2e6b6 commit 8da561c

File tree

1 file changed

+120
-1
lines changed

1 file changed

+120
-1
lines changed

validation-test/Reflection/reflect_nested_generic.swift

Lines changed: 120 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ struct Outer2 {
9393
}
9494
}
9595

96-
reflect(enum: Outer2.E<S1>.Inner.F<S2>.b)
96+
reflect(enum: Outer2.E<S1>.Inner.F<S2>.u(S2()))
9797

9898
//CHECK: Reflecting an enum.
9999
//CHECK-NEXT: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
@@ -115,9 +115,128 @@ reflect(enum: Outer2.E<S1>.Inner.F<S2>.b)
115115
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S1V_AA2S2VG
116116
//CHECK-NEXT: Demangled name: reflect_nested_generic.Outer2.E<reflect_nested_generic.S1>.F<reflect_nested_generic.S2>
117117

118+
//CHECK: Enum value:
119+
//CHECK-NEXT: (enum_value name=u index=0
120+
//CHECK-NEXT: (struct reflect_nested_generic.S2)
121+
//CHECK-NEXT: )
122+
123+
reflect(enum: Outer2.E<S1>.Inner.F<S2>.b)
124+
125+
//CHECK: Reflecting an enum.
126+
//CHECK: Type info:
127+
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S1V_AA2S2VG
128+
118129
//CHECK: Enum value:
119130
//CHECK-NEXT: (enum_value name=b index=2)
120131

132+
reflect(enum: Outer2.E<S1>.Inner.F<S2>.b as Outer2.E<S1>.Inner.F<S2>??)
133+
134+
//CHECK: Reflecting an enum.
135+
//CHECK: Type info:
136+
//CHECK-NEXT: (single_payload_enum size=3 alignment=1 stride=3 num_extra_inhabitants=0 bitwise_takable=1
137+
//CHECK-NEXT: (case name=some index=0 offset=0
138+
//CHECK-NEXT: (single_payload_enum size=2 alignment=1 stride=2 num_extra_inhabitants=0 bitwise_takable=1
139+
//CHECK-NEXT: (case name=some index=0 offset=0
140+
//CHECK-NEXT: (single_payload_enum size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1
141+
//CHECK-NEXT: (case name=u index=0 offset=0
142+
//CHECK-NEXT: (struct size=0 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1))
143+
//CHECK-NEXT: (case name=a index=1)
144+
//CHECK-NEXT: (case name=b index=2)))
145+
//CHECK-NEXT: (case name=none index=1)))
146+
//CHECK-NEXT: (case name=none index=1))
147+
148+
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S1V_AA2S2VGSgSg
149+
//CHECK-NEXT: Demangled name: Swift.Optional<Swift.Optional<reflect_nested_generic.Outer2.E<reflect_nested_generic.S1>.F<reflect_nested_generic.S2>>>
150+
151+
//CHECK: Enum value:
152+
//CHECK-NEXT: (enum_value name=some index=0
153+
//CHECK-NEXT: (bound_generic_enum Swift.Optional
154+
//CHECK-NEXT: (bound_generic_enum reflect_nested_generic.Outer2.E.Inner.F
155+
//CHECK-NEXT: (struct reflect_nested_generic.S2)
156+
//CHECK-NEXT: (bound_generic_enum reflect_nested_generic.Outer2.E
157+
//CHECK-NEXT: (struct reflect_nested_generic.S1))))
158+
//CHECK-NEXT: )
159+
160+
reflect(enum: Outer2.E<S1>.Inner.F<S2>??.none)
161+
162+
//CHECK: Reflecting an enum.
163+
//CHECK: Type info:
164+
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S1V_AA2S2VGSgSg
165+
//CHECK: Demangled name: Swift.Optional<Swift.Optional<reflect_nested_generic.Outer2.E<reflect_nested_generic.S1>.F<reflect_nested_generic.S2>>>
166+
167+
//CHECK: Enum value:
168+
//CHECK-NEXT: (enum_value name=none index=1)
169+
170+
struct S3: P { var a: UInt8 = 0 }
171+
172+
reflect(enum: Outer2.E<S2>.Inner.F<S3>.u(S3()))
173+
174+
//CHECK: Reflecting an enum.
175+
//CHECK-NEXT: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
176+
177+
//CHECK: Type reference:
178+
//CHECK-NEXT: (bound_generic_enum reflect_nested_generic.Outer2.E.Inner.F
179+
//CHECK-NEXT: (struct reflect_nested_generic.S3)
180+
//CHECK-NEXT: (bound_generic_enum reflect_nested_generic.Outer2.E
181+
//CHECK-NEXT: (struct reflect_nested_generic.S2)))
182+
183+
//CHECK: Type info:
184+
//CHECK-NEXT: (single_payload_enum size=2 alignment=1 stride=2 num_extra_inhabitants=0 bitwise_takable=1
185+
//CHECK-NEXT: (case name=u index=0 offset=0
186+
//CHECK-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1
187+
//CHECK-NEXT: (field name=a offset=0
188+
//CHECK-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1
189+
//CHECK-NEXT: (field name=_value offset=0
190+
//CHECK-NEXT: (builtin size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1))))))
191+
//CHECK-NEXT: (case name=a index=1)
192+
//CHECK-NEXT: (case name=b index=2))
193+
194+
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S2V_AA2S3VG
195+
//CHECK-NEXT: Demangled name: reflect_nested_generic.Outer2.E<reflect_nested_generic.S2>.F<reflect_nested_generic.S3>
196+
197+
//CHECK: Enum value:
198+
//CHECK-NEXT: (enum_value name=u index=0
199+
//CHECK-NEXT: (struct reflect_nested_generic.S3)
200+
//CHECK-NEXT: )
201+
202+
203+
reflect(enum: Outer2.E<S2>.Inner.F<S3>.b)
204+
205+
//CHECK: Reflecting an enum.
206+
//CHECK: Type reference:
207+
//CHECK: Type info:
208+
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S2V_AA2S3VG
209+
210+
//CHECK: Enum value:
211+
//CHECK-NEXT: (enum_value name=b index=2)
212+
213+
reflect(enum: Outer2.E<S2>.Inner.F<S3>??.none)
214+
215+
//CHECK: Reflecting an enum.
216+
//CHECK: Type reference:
217+
//CHECK: Type info:
218+
//CHECK-NEXT: (single_payload_enum size=4 alignment=1 stride=4 num_extra_inhabitants=0 bitwise_takable=1
219+
//CHECK-NEXT: (case name=some index=0 offset=0
220+
//CHECK-NEXT: (single_payload_enum size=3 alignment=1 stride=3 num_extra_inhabitants=0 bitwise_takable=1
221+
//CHECK-NEXT: (case name=some index=0 offset=0
222+
//CHECK-NEXT: (single_payload_enum size=2 alignment=1 stride=2 num_extra_inhabitants=0 bitwise_takable=1
223+
//CHECK-NEXT: (case name=u index=0 offset=0
224+
//CHECK-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1
225+
//CHECK-NEXT: (field name=a offset=0
226+
//CHECK-NEXT: (struct size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1
227+
//CHECK-NEXT: (field name=_value offset=0
228+
//CHECK-NEXT: (builtin size=1 alignment=1 stride=1 num_extra_inhabitants=0 bitwise_takable=1))))))
229+
//CHECK-NEXT: (case name=a index=1)
230+
//CHECK-NEXT: (case name=b index=2)))
231+
//CHECK-NEXT: (case name=none index=1)))
232+
//CHECK-NEXT: (case name=none index=1))
233+
234+
//CHECK: Mangled name: $s22reflect_nested_generic6Outer2V1EO1FOy_AA2S2V_AA2S3VGSgSg
235+
//CHECK: Demangled name: Swift.Optional<Swift.Optional<reflect_nested_generic.Outer2.E<reflect_nested_generic.S2>.F<reflect_nested_generic.S3>>>
236+
237+
//CHECK: Enum value:
238+
//CHECK-NEXT: (enum_value name=none index=1)
239+
121240
reflect(enum: Outer2.E<S1>.Inner.F<S2>.Innerer?.none)
122241

123242
//CHECK: Reflecting an enum.

0 commit comments

Comments
 (0)