10
10
// UNSUPPORTED: use_os_stdlib
11
11
// UNSUPPORTED: asan
12
12
13
- // This is broken on ARM64_32, disable it temporarily until we can fix it. rdar://137351613
14
- // UNSUPPORTED: CPU=arm64_32
15
-
16
13
import SwiftReflectionTest
17
14
18
15
protocol P : AnyObject {
@@ -24,7 +21,8 @@ class C : P {
24
21
init ( ) { a = 0 ; b = 0 ; }
25
22
}
26
23
27
- // MemoryLayout<B>.size == 8
24
+ // On 64-bit: MemoryLayout<B>.size == 8
25
+ // On 32-bit: MemoryLayout<B>.size == 4
28
26
enum B {
29
27
case a( C )
30
28
case b( C )
@@ -44,8 +42,8 @@ reflect(enumValue: B.b(C()))
44
42
// CHECKALL-NEXT: (enum reflect_Enum_values10.B)
45
43
// CHECKALL-NEXT: Value: .b(_)
46
44
47
- // MemoryLayout<Q>.size == 16
48
- // MemoryLayout<P>.size == 16
45
+ // On 64-bit: MemoryLayout<Q>.size == MemoryLayout<P >.size == 16
46
+ // On 32-bit: MemoryLayout<Q>.size == MemoryLayout< P>.size == 8
49
47
enum Q {
50
48
case a( P )
51
49
case b( P )
@@ -65,6 +63,114 @@ reflect(enumValue: Q.b(C()))
65
63
// CHECKALL-NEXT: (enum reflect_Enum_values10.Q)
66
64
// CHECKALL-NEXT: Value: .b(_)
67
65
66
+ enum B1 {
67
+ case a( C )
68
+ case b
69
+ }
70
+
71
+ reflect ( enumValue: B1 . a ( C ( ) ) )
72
+
73
+ // CHECKALL: Reflecting an enum value.
74
+ // CHECKALL-NEXT: Type reference:
75
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.B1)
76
+ // CHECKALL-NEXT: Value: .a(_)
77
+
78
+ reflect ( enumValue: B1 . b)
79
+
80
+ // CHECKALL: Reflecting an enum value.
81
+ // CHECKALL-NEXT: Type reference:
82
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.B1)
83
+ // CHECKALL-NEXT: Value: .b
84
+
85
+ enum Q1 {
86
+ case a( P )
87
+ case b
88
+ }
89
+
90
+ reflect ( enumValue: Q1 . a ( C ( ) ) )
91
+
92
+ // CHECKALL: Reflecting an enum value.
93
+ // CHECKALL-NEXT: Type reference:
94
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q1)
95
+ // CHECKALL-NEXT: Value: .a(_)
96
+
97
+ reflect ( enumValue: Q1 . b)
98
+
99
+ // CHECKALL: Reflecting an enum value.
100
+ // CHECKALL-NEXT: Type reference:
101
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q1)
102
+ // CHECKALL-NEXT: Value: .b
103
+
104
+ enum B2 {
105
+ case a( C )
106
+ case b( C )
107
+ case c( C )
108
+ case d( C )
109
+ case e( C )
110
+ }
111
+
112
+ reflect ( enumValue: B2 . a ( C ( ) ) )
113
+
114
+ // CHECKALL: Reflecting an enum value.
115
+ // CHECKALL-NEXT: Type reference:
116
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.B2)
117
+ // CHECKALL-NEXT: Value: .a(_)
118
+
119
+ reflect ( enumValue: B2 . e ( C ( ) ) )
120
+
121
+ // CHECKALL: Reflecting an enum value.
122
+ // CHECKALL-NEXT: Type reference:
123
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.B2)
124
+ // CHECKALL-NEXT: Value: .e(_)
125
+
126
+ // On 64-bit: MemoryLayout<Q>.size == MemoryLayout<P>.size == 16
127
+ // On 32-bit: MemoryLayout<Q>.size == MemoryLayout<P>.size == 8
128
+ enum Q2 {
129
+ case a( P )
130
+ case b( P )
131
+ case c( P )
132
+ case d( P )
133
+ case e( P )
134
+ }
135
+
136
+ reflect ( enumValue: Q2 . a ( C ( ) ) )
137
+
138
+ // CHECKALL: Reflecting an enum value.
139
+ // CHECKALL-NEXT: Type reference:
140
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q2)
141
+ // CHECKALL-NEXT: Value: .a(_)
142
+
143
+ reflect ( enumValue: Q2 . e ( C ( ) ) )
144
+
145
+ // CHECKALL: Reflecting an enum value.
146
+ // CHECKALL-NEXT: Type reference:
147
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q2)
148
+ // CHECKALL-NEXT: Value: .e(_)
149
+
150
+ reflect ( enumValue: Optional< Q2> . some( . a( C ( ) ) ) )
151
+
152
+ // CHECKALL: Reflecting an enum value.
153
+ // CHECKALL-NEXT: Type reference:
154
+ // CHECKALL-NEXT: (bound_generic_enum Swift.Optional
155
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q2))
156
+ // CHECKALL-NEXT: Value: .some(.a(_))
157
+
158
+ reflect ( enumValue: Optional< Q2> . some( . e( C ( ) ) ) )
159
+
160
+ // CHECKALL: Reflecting an enum value.
161
+ // CHECKALL-NEXT: Type reference:
162
+ // CHECKALL-NEXT: (bound_generic_enum Swift.Optional
163
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q2))
164
+ // CHECKALL-NEXT: Value: .some(.e(_))
165
+
166
+ reflect ( enumValue: Optional< Q2> . none)
167
+
168
+ // CHECKALL: Reflecting an enum value.
169
+ // CHECKALL-NEXT: Type reference:
170
+ // CHECKALL-NEXT: (bound_generic_enum Swift.Optional
171
+ // CHECKALL-NEXT: (enum reflect_Enum_values10.Q2))
172
+ // CHECKALL-NEXT: Value: .none
173
+
68
174
doneReflecting ( )
69
175
70
176
// CHECKALL: Done.
0 commit comments