@@ -14,7 +14,7 @@ public class Bar {
14
14
public init ( ) { }
15
15
}
16
16
17
- public struct Resilient {
17
+ public struct ResilientStructSPIMembers {
18
18
public init ( ) { }
19
19
20
20
@_spi ( Foo) public func method( _: Bar ) { }
@@ -28,7 +28,7 @@ public struct Resilient {
28
28
@_spi ( Foo) @Wrapper public var wrappedProperty2 = Bar ( )
29
29
}
30
30
31
- @frozen public struct Good {
31
+ @frozen public struct FrozenStructSPIMembers {
32
32
public init ( ) { }
33
33
34
34
@_spi ( Foo) public func method( _: Bar ) { }
@@ -55,7 +55,7 @@ public struct Resilient {
55
55
// expected-error@-1 {{stored property 'wrappedProperty2' cannot be declared '@_spi' in a '@frozen' struct}}
56
56
}
57
57
58
- @frozen public struct Bad {
58
+ @frozen public struct FrozenStructPublicMembers {
59
59
public init ( ) { }
60
60
61
61
public func method( _: Bar ) { } // expected-error {{cannot use class 'Bar' here; it is SPI}}
@@ -83,7 +83,7 @@ public struct Resilient {
83
83
// expected-error@-3 {{initializer 'init()' cannot be used in a property initializer in a '@frozen' type because it is SPI}}
84
84
}
85
85
86
- @frozen public struct BadPrivate {
86
+ @frozen public struct FrozenStructPrivateMembers {
87
87
private init ( ) { }
88
88
89
89
private func method( _: Bar ) { }
@@ -110,3 +110,24 @@ public struct Resilient {
110
110
// expected-error@-2 {{class 'Bar' cannot be used in a property initializer in a '@frozen' type because it is SPI}}
111
111
// expected-error@-3 {{initializer 'init()' cannot be used in a property initializer in a '@frozen' type because it is SPI}}
112
112
}
113
+
114
+ public enum ResilientEnum {
115
+ @_spi ( S)
116
+ case okSpiCase
117
+
118
+ @_spi ( S)
119
+ case okSpiCaseWithPayload( _: Int )
120
+ }
121
+
122
+ @frozen
123
+ public enum FrozenEnum {
124
+ case okCase
125
+
126
+ @_spi ( S) // expected-error {{enum case 'spiCase' cannot be declared '@_spi' in a '@frozen' enum}}
127
+ case spiCase
128
+
129
+ case okCaseWithPayload( _: Int )
130
+
131
+ @_spi ( S) // expected-error {{enum case 'spiCaseWithPayload' cannot be declared '@_spi' in a '@frozen' enum}}
132
+ case spiCaseWithPayload( _: Int )
133
+ }
0 commit comments