mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
72 lines
1.7 KiB
Swift
72 lines
1.7 KiB
Swift
// RUN: %target-typecheck-verify-swift -application-extension
|
|
// REQUIRES: OS=macosx
|
|
|
|
// Allow referencing unavailable API in situations where the caller is marked unavailable in the same circumstances.
|
|
|
|
@available(OSX, unavailable)
|
|
func osx() {} // expected-note 3{{'osx()' has been explicitly marked unavailable here}}
|
|
|
|
@available(OSXApplicationExtension, unavailable)
|
|
func osx_extension() {} // expected-note {{'osx_extension()' has been explicitly marked unavailable here}}
|
|
|
|
func call_osx_extension() {
|
|
osx_extension() // expected-error {{'osx_extension()' is unavailable}}
|
|
}
|
|
func call_osx() {
|
|
osx() // expected-error {{'osx()' is unavailable}}
|
|
}
|
|
|
|
@available(OSX, unavailable)
|
|
func osx_call_osx_extension() {
|
|
osx_extension()
|
|
}
|
|
|
|
@available(OSX, unavailable)
|
|
func osx_call_osx() {
|
|
osx()
|
|
}
|
|
|
|
@available(OSXApplicationExtension, unavailable)
|
|
func osx_extension_call_osx_extension() {
|
|
osx_extension()
|
|
}
|
|
|
|
@available(OSXApplicationExtension, unavailable)
|
|
func osx_extension_call_osx() {
|
|
osx() // expected-error {{'osx()' is unavailable}}
|
|
}
|
|
|
|
@available(OSX, unavailable)
|
|
struct NotOnOSX { }
|
|
|
|
@available(OSX, unavailable)
|
|
extension NotOnOSX {
|
|
func osx_call_osx() {
|
|
osx() // OK
|
|
}
|
|
|
|
func osx_call_osx_extension() {
|
|
osx_extension()
|
|
}
|
|
}
|
|
|
|
@available(OSXApplicationExtension, unavailable)
|
|
extension NotOnOSX { }
|
|
|
|
@available(OSXApplicationExtension, unavailable)
|
|
struct NotOnOSXApplicationExtension { }
|
|
|
|
@available(OSX, unavailable)
|
|
extension NotOnOSXApplicationExtension { }
|
|
|
|
@available(OSXApplicationExtension, unavailable)
|
|
extension NotOnOSXApplicationExtension {
|
|
func osx_call_osx() {
|
|
osx() // expected-error {{'osx()' is unavailable in macOS}}
|
|
}
|
|
|
|
func osx_call_osx_extension() {
|
|
osx_extension() // OK
|
|
}
|
|
}
|