-
Notifications
You must be signed in to change notification settings - Fork 10.4k
/
Copy pathswitch_enum_objc.h
29 lines (24 loc) · 992 Bytes
/
switch_enum_objc.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Even though these are marked "closed", Swift shouldn't trust it.
enum Alpha {
AlphaA __attribute__((swift_name("a"))),
AlphaB __attribute__((swift_name("b"))),
AlphaC __attribute__((swift_name("c"))),
AlphaD __attribute__((swift_name("d"))),
AlphaE __attribute__((swift_name("e")))
} __attribute__((enum_extensibility(closed)));
enum Coin {
CoinHeads,
CoinTails
} __attribute__((enum_extensibility(closed)));
// Swift should preserve branches matching the unavailable elements in clang
// enums since there are not strong compiler protections preventing these values
// from being instantiated at runtime.
enum Dimension {
DimensionX __attribute__((swift_name("x"))),
DimensionY __attribute__((swift_name("y"))),
DimensionZ __attribute__((swift_name("z"))) __attribute__((unavailable)),
} __attribute__((enum_extensibility(open)));
enum UnfairCoin {
UnfairCoinHeads,
UnfairCoinTails __attribute__((unavailable)),
} __attribute__((enum_extensibility(closed)));