// RUN: %target-typecheck-verify-swift // REQUIRES: OS=ios // Allow referencing unavailable API in situations where the caller is marked unavailable in the same circumstances. @available(iOS, unavailable) func ios() {} // expected-note 2{{'ios()' has been explicitly marked unavailable here}} @available(iOSApplicationExtension, unavailable) func ios_extension() {} func call_ios_extension() { ios_extension() // OK; ios_extension is only unavailable if -application-extension is passed. } func call_ios() { ios() // expected-error {{'ios()' is unavailable}} } @available(iOS, unavailable) func ios_call_ios_extension() { ios_extension() // OK; ios_extension is only unavailable if -application-extension is passed. } @available(iOS, unavailable) func ios_call_ios() { ios() // OK; same } @available(iOSApplicationExtension, unavailable) func ios_extension_call_ios_extension() { ios_extension() } @available(iOSApplicationExtension, unavailable) func ios_extension_call_ios() { ios() // expected-error {{'ios()' is unavailable}} }