Skip to content

Commit 340b85f

Browse files
committed
add reflect_Optional_Any.swift
Authored by Tim Kientzle @tbkka
1 parent 1e58387 commit 340b85f

File tree

1 file changed

+291
-0
lines changed

1 file changed

+291
-0
lines changed
Lines changed: 291 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,291 @@
1+
// validation-test/Reflection/reflect_Optional_Any.swift
2+
3+
// RUN: %empty-directory(%t)
4+
// RUN: %target-build-swift -g -lswiftSwiftReflectionTest %s -o %t/reflect_Optional_Any
5+
// RUN: %target-codesign %t/reflect_Optional_Any
6+
7+
// RUN: %target-run %target-swift-reflection-test %t/reflect_Optional_Any | %FileCheck %s --check-prefix=CHECK-%target-ptrsize
8+
9+
// REQUIRES: reflection_test_support
10+
// REQUIRES: executable_test
11+
// UNSUPPORTED: use_os_stdlib
12+
13+
import SwiftReflectionTest
14+
15+
struct TwentyFourByteStruct {
16+
let a: Int64
17+
let b: Int64
18+
let c: Int64
19+
}
20+
21+
// ================================================================
22+
23+
let optionalAnyNonNil: Any? = TwentyFourByteStruct(a: 7, b: 8, c: 9)
24+
reflect(enum: optionalAnyNonNil)
25+
26+
// CHECK-64: Reflecting an enum.
27+
// CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
28+
// CHECK-64: Type reference:
29+
// CHECK-64: (bound_generic_enum Swift.Optional
30+
// CHECK-64: (protocol_composition))
31+
32+
// CHECK-64: Type info:
33+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483646 bitwise_takable=1
34+
// CHECK-64: (case name=some index=0 offset=0
35+
// CHECK-64: (opaque_existential size=32 alignment=8 stride=32 num_extra_inhabitants=2147483647 bitwise_takable=1
36+
// CHECK-64: (field name=metadata offset=24
37+
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))
38+
// CHECK-64: (case name=none index=1))
39+
40+
// CHECK-64: Mangled name: $sypSg
41+
// CHECK-64: Demangled name: Swift.Optional<Any>
42+
43+
// CHECK-64: Enum value:
44+
// CHECK-64: (enum_value name=some index=0
45+
// CHECK-64: (protocol_composition)
46+
// CHECK-64: )
47+
48+
// CHECK-32: Reflecting an object.
49+
// CHECK-32: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
50+
// CHECK-32: Type reference:
51+
// CHECK-32: (class reflect_Enum_SingleCaseIntPayload.ClassWithSingleCaseIntPayloadEnum)
52+
53+
// CHECK-32: Type info:
54+
// CHECK-32: (single_payload_enum size=16 alignment=8 stride=16 num_extra_inhabitants=4094 bitwise_takable=1
55+
// CHECK-32: (case name=some index=0 offset=0
56+
// CHECK-32: (opaque_existential size=16 alignment=8 stride=16 num_extra_inhabitants=4095 bitwise_takable=1
57+
// CHECK-32: (field name=metadata offset=12
58+
// CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1))))
59+
// CHECK-32: (case name=none index=1))
60+
61+
// CHECK-32: Mangled name: $sypSg
62+
// CHECK-32: Demangled name: Swift.Optional<Any>
63+
64+
// CHECK-32: Enum value:
65+
// CHECK-32: (enum_value name=some index=0
66+
// CHECK-32: (protocol_composition)
67+
// CHECK-32: )
68+
69+
// ================================================================
70+
71+
let optionalAnyNil: Any? = nil
72+
reflect(enum: optionalAnyNil)
73+
74+
// CHECK-64: Reflecting an enum.
75+
// CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
76+
// CHECK-64: Type reference:
77+
// CHECK-64: (bound_generic_enum Swift.Optional
78+
// CHECK-64: (protocol_composition))
79+
80+
// CHECK-64: Type info:
81+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483646 bitwise_takable=1
82+
// CHECK-64: (case name=some index=0 offset=0
83+
// CHECK-64: (opaque_existential size=32 alignment=8 stride=32 num_extra_inhabitants=2147483647 bitwise_takable=1
84+
// CHECK-64: (field name=metadata offset=24
85+
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))
86+
// CHECK-64: (case name=none index=1))
87+
88+
// CHECK-64: Mangled name: $sypSg
89+
// CHECK-64: Demangled name: Swift.Optional<Any>
90+
91+
// CHECK-64: Enum value:
92+
// CHECK-64: (enum_value name=none index=1)
93+
94+
95+
// CHECK-32: Reflecting an object.
96+
// CHECK-32: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
97+
// CHECK-32: Type reference:
98+
// CHECK-32: (class reflect_Enum_SingleCaseIntPayload.ClassWithSingleCaseIntPayloadEnum)
99+
100+
// CHECK-32: Type info:
101+
// CHECK-32: (single_payload_enum size=16 alignment=8 stride=16 num_extra_inhabitants=4094 bitwise_takable=1
102+
// CHECK-32: (case name=some index=0 offset=0
103+
// CHECK-32: (opaque_existential size=16 alignment=8 stride=16 num_extra_inhabitants=4095 bitwise_takable=1
104+
// CHECK-32: (field name=metadata offset=12
105+
// CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1))))
106+
// CHECK-32: (case name=none index=1))
107+
108+
// CHECK-32: Mangled name: $sypSg
109+
// CHECK-32: Demangled name: Swift.Optional<Any>
110+
111+
// CHECK-32: Enum value:
112+
// CHECK-32: (enum_value name=none index=1)
113+
114+
// ================================================================
115+
116+
let optionalOptionalAnyNil: Any?? = nil
117+
reflect(enum: optionalOptionalAnyNil)
118+
119+
// CHECK-64: Reflecting an enum.
120+
// CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
121+
// CHECK-64: Type reference:
122+
// CHECK-64: (bound_generic_enum Swift.Optional
123+
// CHECK-64: (bound_generic_enum Swift.Optional
124+
// CHECK-64: (protocol_composition)))
125+
126+
// CHECK-64: Type info:
127+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483645 bitwise_takable=1
128+
// CHECK-64: (case name=some index=0 offset=0
129+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483646 bitwise_takable=1
130+
// CHECK-64: (case name=some index=0 offset=0
131+
// CHECK-64: (opaque_existential size=32 alignment=8 stride=32 num_extra_inhabitants=2147483647 bitwise_takable=1
132+
// CHECK-64: (field name=metadata offset=24
133+
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))
134+
// CHECK-64: (case name=none index=1)))
135+
// CHECK-64: (case name=none index=1))
136+
137+
// CHECK-64: Mangled name: $sypSgSg
138+
// CHECK-64: Demangled name: Swift.Optional<Swift.Optional<Any>>
139+
140+
// CHECK-64: Enum value:
141+
// CHECK-64: (enum_value name=none index=1)
142+
143+
// CHECK-32: Reflecting an object.
144+
// CHECK-32: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
145+
// CHECK-32: Type reference:
146+
// CHECK-32: (bound_generic_enum Swift.Optional
147+
// CHECK-32: (bound_generic_enum Swift.Optional
148+
// CHECK-32: (protocol_composition)))
149+
150+
// CHECK-32: Type info:
151+
// CHECK-32: (single_payload_enum size=16 alignment=4 stride=16 num_extra_inhabitants=4093 bitwise_takable=1
152+
// CHECK-32: (case name=some index=0 offset=0
153+
// CHECK-32: (single_payload_enum size=16 alignment=4 stride=16 num_extra_inhabitants=4094 bitwise_takable=1
154+
// CHECK-32: (case name=some index=0 offset=0
155+
// CHECK-32: (opaque_existential size=16 alignment=4 stride=16 num_extra_inhabitants=4095 bitwise_takable=1
156+
// CHECK-32: (field name=metadata offset=12
157+
// CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1))))
158+
// CHECK-32: (case name=none index=1)))
159+
// CHECK-32: (case name=none index=1))
160+
161+
// CHECK-32: Mangled name: $sypSgSg
162+
// CHECK-32: Demangled name: Swift.Optional<Swift.Optional<Any>>
163+
164+
// CHECK-32: Enum value:
165+
// CHECK-32: (enum_value name=none index=1)
166+
167+
// ================================================================
168+
169+
let optionalOptionalAnySomeNil: Any?? = .some(nil)
170+
reflect(enum: optionalOptionalAnySomeNil)
171+
172+
// CHECK-64: Reflecting an enum.
173+
// CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
174+
// CHECK-64: Type reference:
175+
// CHECK-64: (bound_generic_enum Swift.Optional
176+
// CHECK-64: (bound_generic_enum Swift.Optional
177+
// CHECK-64: (protocol_composition)))
178+
179+
// CHECK-64: Type info:
180+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483645 bitwise_takable=1
181+
// CHECK-64: (case name=some index=0 offset=0
182+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483646 bitwise_takable=1
183+
// CHECK-64: (case name=some index=0 offset=0
184+
// CHECK-64: (opaque_existential size=32 alignment=8 stride=32 num_extra_inhabitants=2147483647 bitwise_takable=1
185+
// CHECK-64: (field name=metadata offset=24
186+
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))
187+
// CHECK-64: (case name=none index=1)))
188+
// CHECK-64: (case name=none index=1))
189+
190+
// CHECK-64: Mangled name: $sypSgSg
191+
// CHECK-64: Demangled name: Swift.Optional<Swift.Optional<Any>>
192+
193+
// CHECK-64: Enum value:
194+
// CHECK-64: (enum_value name=some index=0
195+
// CHECK-64: (bound_generic_enum Swift.Optional
196+
// CHECK-64: (protocol_composition))
197+
// CHECK-64: )
198+
199+
// CHECK-32: Reflecting an object.
200+
// CHECK-32: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
201+
// CHECK-32: Type reference:
202+
// CHECK-32: (bound_generic_enum Swift.Optional
203+
// CHECK-32: (bound_generic_enum Swift.Optional
204+
// CHECK-32: (protocol_composition)))
205+
206+
// CHECK-32: Type info:
207+
// CHECK-32: (single_payload_enum size=16 alignment=4 stride=16 num_extra_inhabitants=4093 bitwise_takable=1
208+
// CHECK-32: (case name=some index=0 offset=0
209+
// CHECK-32: (single_payload_enum size=16 alignment=4 stride=16 num_extra_inhabitants=4094 bitwise_takable=1
210+
// CHECK-32: (case name=some index=0 offset=0
211+
// CHECK-32: (opaque_existential size=16 alignment=4 stride=16 num_extra_inhabitants=4095 bitwise_takable=1
212+
// CHECK-32: (field name=metadata offset=12
213+
// CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1))))
214+
// CHECK-32: (case name=none index=1)))
215+
// CHECK-32: (case name=none index=1))
216+
217+
// CHECK-32: Mangled name: $sypSgSg
218+
// CHECK-32: Demangled name: Swift.Optional<Swift.Optional<Any>>
219+
220+
// CHECK-32: Enum value:
221+
// CHECK-32: (enum_value name=some index=0
222+
// CHECK-32: (bound_generic_enum Swift.Optional
223+
// CHECK-32: (protocol_composition))
224+
// CHECK-32: )
225+
226+
// ================================================================
227+
228+
let optionalOptionalAnyNonNil: Any?? = .some(.some(7))
229+
reflect(enum: optionalOptionalAnyNonNil)
230+
231+
// CHECK-64: Reflecting an enum.
232+
// CHECK-64: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
233+
// CHECK-64: Type reference:
234+
// CHECK-64: (bound_generic_enum Swift.Optional
235+
// CHECK-64: (bound_generic_enum Swift.Optional
236+
// CHECK-64: (protocol_composition)))
237+
238+
// CHECK-64: Type info:
239+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483645 bitwise_takable=1
240+
// CHECK-64: (case name=some index=0 offset=0
241+
// CHECK-64: (single_payload_enum size=32 alignment=8 stride=32 num_extra_inhabitants=2147483646 bitwise_takable=1
242+
// CHECK-64: (case name=some index=0 offset=0
243+
// CHECK-64: (opaque_existential size=32 alignment=8 stride=32 num_extra_inhabitants=2147483647 bitwise_takable=1
244+
// CHECK-64: (field name=metadata offset=24
245+
// CHECK-64: (builtin size=8 alignment=8 stride=8 num_extra_inhabitants=2147483647 bitwise_takable=1))))
246+
// CHECK-64: (case name=none index=1)))
247+
// CHECK-64: (case name=none index=1))
248+
249+
// CHECK-64: Mangled name: $sypSgSg
250+
// CHECK-64: Demangled name: Swift.Optional<Swift.Optional<Any>>
251+
252+
// CHECK-64: Enum value:
253+
// CHECK-64: (enum_value name=some index=0
254+
// CHECK-64: (bound_generic_enum Swift.Optional
255+
// CHECK-64: (protocol_composition))
256+
// CHECK-64: )
257+
258+
// CHECK-32: Reflecting an object.
259+
// CHECK-32: Instance pointer in child address space: 0x{{[0-9a-fA-F]+}}
260+
// CHECK-32: Type reference:
261+
// CHECK-32: (bound_generic_enum Swift.Optional
262+
// CHECK-32: (bound_generic_enum Swift.Optional
263+
// CHECK-32: (protocol_composition)))
264+
265+
// CHECK-32: Type info:
266+
// CHECK-32: (single_payload_enum size=16 alignment=4 stride=16 num_extra_inhabitants=4093 bitwise_takable=1
267+
// CHECK-32: (case name=some index=0 offset=0
268+
// CHECK-32: (single_payload_enum size=16 alignment=4 stride=16 num_extra_inhabitants=4094 bitwise_takable=1
269+
// CHECK-32: (case name=some index=0 offset=0
270+
// CHECK-32: (opaque_existential size=16 alignment=4 stride=16 num_extra_inhabitants=4095 bitwise_takable=1
271+
// CHECK-32: (field name=metadata offset=12
272+
// CHECK-32: (builtin size=4 alignment=4 stride=4 num_extra_inhabitants=4095 bitwise_takable=1))))
273+
// CHECK-32: (case name=none index=1)))
274+
// CHECK-32: (case name=none index=1))
275+
276+
// CHECK-32: Mangled name: $sypSgSg
277+
// CHECK-32: Demangled name: Swift.Optional<Swift.Optional<Any>>
278+
279+
// CHECK-32: Enum value:
280+
// CHECK-32: (enum_value name=some index=0
281+
// CHECK-32: (bound_generic_enum Swift.Optional
282+
// CHECK-32: (protocol_composition))
283+
// CHECK-32: )
284+
285+
// ================================================================
286+
287+
doneReflecting()
288+
289+
// CHECK-64: Done.
290+
291+
// CHECK-32: Done.

0 commit comments

Comments
 (0)