@@ -15,9 +15,15 @@ struct Available51Wrapper<T> {
15
15
var wrappedValue : T
16
16
}
17
17
18
+ @available ( * , deprecated)
19
+ @propertyWrapper
20
+ struct DeprecatedWrapper < T> {
21
+ var wrappedValue : T
22
+ }
23
+
18
24
@available ( * , unavailable)
19
25
@propertyWrapper
20
- struct UnavailableWrapper < T> { // expected-note 6 {{'UnavailableWrapper' has been explicitly marked unavailable here}}
26
+ struct UnavailableWrapper < T> { // expected-note 8 {{'UnavailableWrapper' has been explicitly marked unavailable here}}
21
27
var wrappedValue : T
22
28
}
23
29
@@ -26,7 +32,7 @@ struct WrappedValueUnavailableOnMacOS<T> {
26
32
init ( wrappedValue: T ) { fatalError ( ) }
27
33
28
34
@available ( macOS, unavailable)
29
- var wrappedValue : T { // expected-note 6 {{'wrappedValue' has been explicitly marked unavailable here}}
35
+ var wrappedValue : T { // expected-note 9 {{'wrappedValue' has been explicitly marked unavailable here}}
30
36
get { fatalError ( ) }
31
37
set { fatalError ( ) }
32
38
}
@@ -49,7 +55,10 @@ struct AlwaysAvailableStruct { // expected-note 3 {{add @available attribute to
49
55
50
56
@Available51Wrapper var available51Explicit : S // expected-error {{'Available51Wrapper' is only available in macOS 51 or newer}}
51
57
@Available51Wrapper var available51Inferred = S ( ) // expected-error {{'Available51Wrapper' is only available in macOS 51 or newer}}
52
-
58
+
59
+ @DeprecatedWrapper var deprecatedExplicit : S // expected-warning {{'DeprecatedWrapper' is deprecated}}
60
+ @DeprecatedWrapper var deprecatedInferred = S ( ) // expected-warning {{'DeprecatedWrapper' is deprecated}}
61
+
53
62
@UnavailableWrapper var unavailableExplicit : S // expected-error {{'UnavailableWrapper' is unavailable}}
54
63
@UnavailableWrapper var unavailableInferred = S ( ) // expected-error {{'UnavailableWrapper' is unavailable}}
55
64
@@ -64,7 +73,10 @@ struct Available51Struct {
64
73
65
74
@Available51Wrapper var available51Explicit : S
66
75
@Available51Wrapper var available51Inferred = S ( )
67
-
76
+
77
+ @DeprecatedWrapper var deprecatedExplicit : S // expected-warning {{'DeprecatedWrapper' is deprecated}}
78
+ @DeprecatedWrapper var deprecatedInferred = S ( ) // expected-warning {{'DeprecatedWrapper' is deprecated}}
79
+
68
80
@UnavailableWrapper var unavailableExplicit : S // expected-error {{'UnavailableWrapper' is unavailable}}
69
81
@UnavailableWrapper var unavailableInferred = S ( ) // expected-error {{'UnavailableWrapper' is unavailable}}
70
82
@@ -80,6 +92,9 @@ struct UnavailableStruct {
80
92
@Available51Wrapper var available51Explicit : S
81
93
@Available51Wrapper var available51Inferred = S ( )
82
94
95
+ @DeprecatedWrapper var deprecatedExplicit : S
96
+ @DeprecatedWrapper var deprecatedInferred = S ( )
97
+
83
98
@UnavailableWrapper var unavailableExplicit : S
84
99
@UnavailableWrapper var unavailableInferred = S ( )
85
100
@@ -95,44 +110,79 @@ struct UnavailableOnMacOSStruct {
95
110
@Available51Wrapper var available51Explicit : S
96
111
@Available51Wrapper var available51Inferred = S ( )
97
112
113
+ @DeprecatedWrapper var deprecatedExplicit : S
114
+ @DeprecatedWrapper var deprecatedInferred = S ( )
115
+
98
116
@UnavailableWrapper var unavailableExplicit : S
99
117
@UnavailableWrapper var unavailableInferred = S ( )
100
118
101
119
@WrappedValueUnavailableOnMacOS var unavailableWrappedValue : S
102
120
@WrappedValueAvailable51 var wrappedValueAavailable51 : S // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
103
121
}
104
122
105
- func alwaysAvailableFunc( // expected-note 2 {{add @available attribute to enclosing global function}}
123
+ func alwaysAvailableFunc( // expected-note 4 {{add @available attribute to enclosing global function}}
106
124
@AlwaysAvailableWrapper _ alwaysAvailable: S ,
107
125
@Available51Wrapper _ available51: S , // expected-error {{'Available51Wrapper' is only available in macOS 51 or newer}}
126
+ @DeprecatedWrapper _ deprecated: S , // expected-warning {{'DeprecatedWrapper' is deprecated}}
108
127
@UnavailableWrapper _ unavailable: S , // expected-error {{'UnavailableWrapper' is unavailable}}
109
128
@WrappedValueUnavailableOnMacOS _ unavailableWrappedValue: S , // expected-error {{'wrappedValue' is unavailable in macOS}}
110
129
@WrappedValueAvailable51 _ wrappedValueAavailable51: S // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
111
- ) { }
130
+ ) {
131
+ @AlwaysAvailableWrapper var alwaysAvailableLocal = S ( )
132
+ @Available51Wrapper var available51Local = S ( ) // expected-error {{'Available51Wrapper' is only available in macOS 51 or newer}}
133
+ @DeprecatedWrapper var deprecatedLocal = S ( ) // expected-warning {{'DeprecatedWrapper' is deprecated}}
134
+ @UnavailableWrapper var unavailableLocal = S ( ) // expected-error {{'UnavailableWrapper' is unavailable}}
135
+ @WrappedValueUnavailableOnMacOS var unavailableWrappedValueLocal = S ( ) // expected-error {{'wrappedValue' is unavailable}}
136
+ @WrappedValueAvailable51 var wrappedValueAavailable51 = S ( ) // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
137
+ }
112
138
113
139
@available ( macOS 51 , * )
114
140
func available51Func(
115
141
@AlwaysAvailableWrapper _ alwaysAvailable: S ,
116
142
@Available51Wrapper _ available51: S ,
143
+ @DeprecatedWrapper _ deprecated: S , // expected-warning {{'DeprecatedWrapper' is deprecated}}
117
144
@UnavailableWrapper _ unavailable: S , // expected-error {{'UnavailableWrapper' is unavailable}}
118
145
@WrappedValueUnavailableOnMacOS _ unavailableWrappedValue: S , // expected-error {{'wrappedValue' is unavailable in macOS}}
119
146
@WrappedValueAvailable51 _ wrappedValueAavailable51: S
120
- ) { }
147
+ ) {
148
+ @AlwaysAvailableWrapper var alwaysAvailableLocal = S ( )
149
+ @Available51Wrapper var available51Local = S ( )
150
+ @DeprecatedWrapper var deprecatedLocal = S ( ) // expected-warning {{'DeprecatedWrapper' is deprecated}}
151
+ @UnavailableWrapper var unavailableLocal = S ( ) // expected-error {{'UnavailableWrapper' is unavailable}}
152
+ @WrappedValueUnavailableOnMacOS var unavailableWrappedValueLocal = S ( ) // expected-error {{'wrappedValue' is unavailable}}
153
+ @WrappedValueAvailable51 var wrappedValueAavailable51 = S ( )
154
+ }
121
155
122
156
@available ( * , unavailable)
123
157
func unavailableFunc(
124
158
@AlwaysAvailableWrapper _ alwaysAvailable: S ,
125
159
@Available51Wrapper _ available51: S ,
160
+ @DeprecatedWrapper _ deprecated: S ,
126
161
@UnavailableWrapper _ unavailable: S ,
127
162
@WrappedValueUnavailableOnMacOS _ unavailableWrappedValue: S , // expected-error {{'wrappedValue' is unavailable in macOS}}
128
163
@WrappedValueAvailable51 _ wrappedValueAavailable51: S // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
129
- ) { }
164
+ ) {
165
+ @AlwaysAvailableWrapper var alwaysAvailableLocal = S ( )
166
+ @Available51Wrapper var available51Local = S ( )
167
+ @DeprecatedWrapper var deprecatedLocal = S ( )
168
+ @UnavailableWrapper var unavailableLocal = S ( )
169
+ @WrappedValueUnavailableOnMacOS var unavailableWrappedValueLocal = S ( ) // expected-error {{'wrappedValue' is unavailable}}
170
+ @WrappedValueAvailable51 var wrappedValueAavailable51 = S ( ) // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
171
+ }
130
172
131
173
@available ( macOS, unavailable)
132
174
func unavailableOnMacOSFunc(
133
175
@AlwaysAvailableWrapper _ alwaysAvailable: S ,
134
176
@Available51Wrapper _ available51: S ,
177
+ @DeprecatedWrapper _ deprecated: S ,
135
178
@UnavailableWrapper _ unavailable: S ,
136
179
@WrappedValueUnavailableOnMacOS _ unavailableWrappedValue: S ,
137
180
@WrappedValueAvailable51 _ wrappedValueAavailable51: S // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
138
- ) { }
181
+ ) {
182
+ @AlwaysAvailableWrapper var alwaysAvailableLocal = S ( )
183
+ @Available51Wrapper var available51Local = S ( )
184
+ @DeprecatedWrapper var deprecatedLocal = S ( )
185
+ @UnavailableWrapper var unavailableLocal = S ( )
186
+ @WrappedValueUnavailableOnMacOS var unavailableWrappedValueLocal = S ( )
187
+ @WrappedValueAvailable51 var wrappedValueAavailable51 = S ( ) // expected-error {{'wrappedValue' is only available in macOS 51 or newer}}
188
+ }
0 commit comments