@@ -218,6 +218,44 @@ class SubClassOverridingPotentiallyUnavailableMethod : ClassWithPotentiallyUnava
218
218
}
219
219
}
220
220
221
+ protocol BaseProto {
222
+ associatedtype A
223
+
224
+ var property : A { get set } // expected-note {{overridden declaration is here}}
225
+
226
+ @available ( OSX 10 . 51 , * )
227
+ var newProperty : A { get set } // expected-note {{overridden declaration is here}}
228
+
229
+ func method( ) // expected-note {{overridden declaration is here}}
230
+ }
231
+
232
+ protocol RefinesBaseProto_AsAvailableOverrides : BaseProto {
233
+ var property : A { get set }
234
+
235
+ @available ( OSX 10 . 51 , * )
236
+ var newProperty : A { get set }
237
+
238
+ func method( )
239
+ }
240
+
241
+ protocol RefinesBaseProto_LessAvailableOverrides : BaseProto {
242
+ @available ( OSX 10 . 52 , * )
243
+ var property : A { get set } // expected-error {{overriding 'property' must be as available as declaration it overrides}}
244
+
245
+ @available ( OSX 10 . 52 , * )
246
+ var newProperty : A { get set } // expected-error {{overriding 'newProperty' must be as available as declaration it overrides}}
247
+
248
+ @available ( OSX 10 . 52 , * )
249
+ func method( ) // expected-error {{overriding 'method' must be as available as declaration it overrides}}
250
+ }
251
+
252
+ @available ( OSX 10 . 52 , * )
253
+ protocol RefinesBaseProto_LessAvailable : BaseProto {
254
+ var property : A { get set }
255
+ var newProperty : A { get set }
256
+ func method( )
257
+ }
258
+
221
259
class ClassWithPotentiallyUnavailableOverloadedMethod {
222
260
@available ( OSX, introduced: 10.9 )
223
261
func overloadedMethod( ) { }
0 commit comments