@@ -29,3 +29,121 @@ public enum Medium {
29
29
public indirect enum IndirectApproach {
30
30
case Angle( Double )
31
31
}
32
+
33
+ // Specific enum implementations for executable tests
34
+ public enum ResilientEmptyEnum {
35
+ case X
36
+ }
37
+
38
+ public enum ResilientSingletonEnum {
39
+ case X( AnyObject )
40
+ }
41
+
42
+ public enum ResilientSingletonGenericEnum < T> {
43
+ case X( T )
44
+ }
45
+
46
+ public enum ResilientNoPayloadEnum {
47
+ case A
48
+ case B
49
+ case C
50
+ }
51
+
52
+ public enum ResilientSinglePayloadEnum {
53
+ case A
54
+ case B
55
+ case C
56
+ case X( AnyObject )
57
+ }
58
+
59
+ public enum ResilientSinglePayloadGenericEnum < T> {
60
+ case A
61
+ case B
62
+ case C
63
+ case X( T )
64
+ }
65
+
66
+ public class ArtClass {
67
+ public init ( ) { }
68
+ }
69
+
70
+ public enum ResilientMultiPayloadEnum {
71
+ case A
72
+ case B
73
+ case C
74
+ case X( Int )
75
+ case Y( Int )
76
+ }
77
+
78
+ public func makeResilientMultiPayloadEnum( n: Int , i: Int )
79
+ -> ResilientMultiPayloadEnum {
80
+ switch i {
81
+ case 0 :
82
+ return . A
83
+ case 1 :
84
+ return . B
85
+ case 2 :
86
+ return . C
87
+ case 3 :
88
+ return . X( n)
89
+ case 4 :
90
+ return . Y( n)
91
+ default :
92
+ while true { }
93
+ }
94
+ }
95
+
96
+ public enum ResilientMultiPayloadEnumSpareBits {
97
+ case A
98
+ case B
99
+ case C
100
+ case X( ArtClass )
101
+ case Y( ArtClass )
102
+ }
103
+
104
+ public func makeResilientMultiPayloadEnumSpareBits( o: ArtClass , i: Int )
105
+ -> ResilientMultiPayloadEnumSpareBits {
106
+ switch i {
107
+ case 0 :
108
+ return . A
109
+ case 1 :
110
+ return . B
111
+ case 2 :
112
+ return . C
113
+ case 3 :
114
+ return . X( o)
115
+ case 4 :
116
+ return . Y( o)
117
+ default :
118
+ while true { }
119
+ }
120
+ }
121
+
122
+ public typealias SevenSpareBits = ( Bool , Int8 , Int8 , Int8 , Int8 , Int8 , Int8 , Int8 )
123
+
124
+ public enum ResilientMultiPayloadEnumSpareBitsAndExtraBits {
125
+ // On 64-bit little endian, 7 spare bits at the LSB end
126
+ case P1( SevenSpareBits )
127
+ // On 64-bit, 8 spare bits at the MSB end and 3 at the LSB end
128
+ case P2( ArtClass )
129
+ case P3( ArtClass )
130
+ case P4( ArtClass )
131
+ case P5( ArtClass )
132
+ case P6( ArtClass )
133
+ case P7( ArtClass )
134
+ case P8( ArtClass )
135
+ }
136
+
137
+ public enum ResilientMultiPayloadGenericEnum < T> {
138
+ case A
139
+ case B
140
+ case C
141
+ case X( T )
142
+ case Y( T )
143
+ }
144
+
145
+ public enum ResilientIndirectEnum {
146
+ case Base
147
+ indirect case A( ResilientIndirectEnum )
148
+ indirect case B( ResilientIndirectEnum , ResilientIndirectEnum )
149
+ }
0 commit comments