Skip to content

Commit 0afb206

Browse files
authored
Merge pull request #79899 from tshortli/more-unavailability-tests
Tests: Add more coverage of unavailable decls in unavailable contexts
2 parents 733dd86 + 7c47d0a commit 0afb206

File tree

1 file changed

+63
-5
lines changed

1 file changed

+63
-5
lines changed

test/attr/attr_availability_transitive_osx_appext.swift

+63-5
Original file line numberDiff line numberDiff line change
@@ -190,10 +190,10 @@ struct ExtendMe {}
190190

191191
@available(*, unavailable)
192192
extension ExtendMe {
193-
func never_available_extension_available_method() {} // expected-note {{has been explicitly marked unavailable here}}
193+
func never_available_extension_available_method() {} // expected-note 3 {{has been explicitly marked unavailable here}}
194194

195195
@available(OSX 99, *)
196-
func never_available_extension_osx_future_method() {} // expected-note {{has been explicitly marked unavailable here}}
196+
func never_available_extension_osx_future_method() {} // expected-note 3 {{has been explicitly marked unavailable here}}
197197

198198
func never_available_extension_available_method(
199199
_: NeverAvailable,
@@ -241,10 +241,19 @@ extension ExtendMe {
241241

242242
@available(OSX, unavailable)
243243
extension ExtendMe {
244-
func osx_extension_available_method() {} // expected-note {{has been explicitly marked unavailable here}}
244+
func osx_extension_available_method() {} // expected-note 2 {{has been explicitly marked unavailable here}}
245245

246246
@available(OSX 99, *)
247-
func osx_extension_osx_future_method() {} // expected-note {{has been explicitly marked unavailable here}}
247+
func osx_extension_osx_future_method() {} // expected-note 2 {{has been explicitly marked unavailable here}}
248+
249+
@available(*, unavailable)
250+
func osx_extension_never_available_method() {} // expected-note 3 {{'osx_extension_never_available_method()' has been explicitly marked unavailable here}}
251+
252+
@available(OSX, unavailable)
253+
func osx_extension_osx_method() {} // expected-note 2 {{'osx_extension_osx_method()' has been explicitly marked unavailable here}}
254+
255+
@available(OSXApplicationExtension, unavailable)
256+
func osx_extension_osx_app_extension_method() {} // expected-note 2 {{'osx_extension_osx_app_extension_method()' has been explicitly marked unavailable here}}
248257

249258
func osx_extension_available_method(
250259
_: NeverAvailable,
@@ -297,6 +306,15 @@ extension ExtendMe {
297306
@available(OSX 99, *)
298307
func osx_app_extension_extension_osx_future_method() {} // expected-note {{'osx_app_extension_extension_osx_future_method()'}}
299308

309+
@available(*, unavailable)
310+
func osx_app_extension_extension_never_available_method() {} // expected-note 3 {{'osx_app_extension_extension_never_available_method()' has been explicitly marked unavailable here}}
311+
312+
@available(OSX, unavailable)
313+
func osx_app_extension_extension_osx_method() {} // expected-note 2 {{'osx_app_extension_extension_osx_method()' has been explicitly marked unavailable here}}
314+
315+
@available(OSXApplicationExtension, unavailable)
316+
func osx_app_extension_extension_osx_app_extension_method() {} // expected-note {{'osx_app_extension_extension_osx_app_extension_method()' has been explicitly marked unavailable here}}
317+
300318
func osx_app_extension_extension_available_method(
301319
_: NeverAvailable,
302320
_: OSXUnavailable,
@@ -345,13 +363,53 @@ func available_func_call_extension_methods(_ e: ExtendMe) {
345363
e.never_available_extension_available_method() // expected-error {{'never_available_extension_available_method()' is unavailable}}
346364
e.osx_extension_available_method() // expected-error {{'osx_extension_available_method()' is unavailable in macOS}}
347365
e.osx_app_extension_extension_available_method() // expected-error {{'osx_app_extension_extension_available_method()' is unavailable in application extensions for macOS}}
366+
e.osx_extension_never_available_method() // expected-error {{'osx_extension_never_available_method()' is unavailable in macOS}}
367+
e.osx_extension_osx_method() // expected-error {{'osx_extension_osx_method()' is unavailable in macOS}}
368+
e.osx_extension_osx_app_extension_method() // expected-error {{'osx_extension_osx_app_extension_method()' is unavailable in application extensions for macOS}}
348369

349-
// rdar://92551870
350370
e.never_available_extension_osx_future_method() // expected-error {{'never_available_extension_osx_future_method()' is unavailable}}
351371
e.osx_extension_osx_future_method() // expected-error {{'osx_extension_osx_future_method()' is unavailable in macOS}}
352372
e.osx_app_extension_extension_osx_future_method() // expected-error {{'osx_app_extension_extension_osx_future_method()' is unavailable in application extensions for macOS}}
373+
e.osx_app_extension_extension_never_available_method() // expected-error {{'osx_app_extension_extension_never_available_method()' is unavailable in application extensions for macOS}}
374+
e.osx_app_extension_extension_osx_method() // expected-error {{'osx_app_extension_extension_osx_method()' is unavailable in application extensions for macOS}}
375+
e.osx_app_extension_extension_osx_app_extension_method() // expected-error {{'osx_app_extension_extension_osx_app_extension_method()' is unavailable in application extensions for macOS}}
353376
}
354377

378+
@available(OSX, unavailable)
379+
func osx_func_call_extension_methods(_ e: ExtendMe) {
380+
e.never_available_extension_available_method() // expected-error {{'never_available_extension_available_method()' is unavailable}}
381+
e.osx_extension_available_method()
382+
e.osx_app_extension_extension_available_method()
383+
e.osx_extension_never_available_method() // expected-error {{'osx_extension_never_available_method()' is unavailable}}
384+
e.osx_extension_osx_method()
385+
e.osx_extension_osx_app_extension_method()
386+
387+
e.never_available_extension_osx_future_method() // expected-error {{'never_available_extension_osx_future_method()' is unavailable}}
388+
e.osx_extension_osx_future_method()
389+
e.osx_app_extension_extension_osx_future_method() // expected-error {{'osx_app_extension_extension_osx_future_method()' is only available in macOS 99 or newer}}
390+
// expected-note@-1 {{add 'if #available' version check}}
391+
e.osx_app_extension_extension_never_available_method() // expected-error {{'osx_app_extension_extension_never_available_method()' is unavailable}}
392+
e.osx_app_extension_extension_osx_method()
393+
e.osx_app_extension_extension_osx_app_extension_method()
394+
}
395+
396+
@available(OSXApplicationExtension, unavailable)
397+
func osx_app_ext_func_call_extension_methods(_ e: ExtendMe) {
398+
e.never_available_extension_available_method() // expected-error {{'never_available_extension_available_method()' is unavailable}}
399+
e.osx_extension_available_method() // expected-error {{'osx_extension_available_method()' is unavailable in macOS}}
400+
e.osx_app_extension_extension_available_method()
401+
e.osx_extension_never_available_method() // expected-error {{'osx_extension_never_available_method()' is unavailable in macOS}}
402+
e.osx_extension_osx_method() // expected-error {{'osx_extension_osx_method()' is unavailable in macOS}}
403+
e.osx_extension_osx_app_extension_method() // expected-error {{'osx_extension_osx_app_extension_method()' is unavailable in macOS}}
404+
405+
e.never_available_extension_osx_future_method() // expected-error {{'never_available_extension_osx_future_method()' is unavailable}}
406+
e.osx_extension_osx_future_method() // expected-error {{'osx_extension_osx_future_method()' is unavailable in macOS}}
407+
e.osx_app_extension_extension_osx_future_method() // expected-error {{'osx_app_extension_extension_osx_future_method()' is only available in macOS 99 or newer}}
408+
// expected-note@-1 {{add 'if #available' version check}}
409+
e.osx_app_extension_extension_never_available_method() // expected-error {{'osx_app_extension_extension_never_available_method()' is unavailable}}
410+
e.osx_app_extension_extension_osx_method() // expected-error {{'osx_app_extension_extension_osx_method()' is unavailable in macOS}}
411+
e.osx_app_extension_extension_osx_app_extension_method()
412+
}
355413

356414
@available(OSXApplicationExtension, introduced: 99)
357415
func osx_app_extensions_future() {}

0 commit comments

Comments
 (0)