Files
swift-mirror/test/attr/attr_availability_appext_unavailable.swift
Allan Shortlidge 2b75d9d93e AST: Ensure isPlatformActiveForTarget() returns the correct result for application extensions on every platform.
Previously, watchOS and tvOS application extension platforms were ignored.

Resolves rdar://96220196
2022-07-11 13:41:46 -07:00

20 lines
918 B
Swift

// Verify that declarations unavailable to application extensions are diagnosed
// as unavailable when compiling with `-application-extension`
// RUN: %target-typecheck-verify-swift -application-extension
// Remove `-application-extension` and verify no errors are emitted.
// RUN: %target-swift-frontend -typecheck %s
// REQUIRES: OS=macosx || OS=ios || OS=tvos || OS=watchos
@available(macOSApplicationExtension, unavailable)
@available(macCatalystApplicationExtension, unavailable)
@available(iOSApplicationExtension, unavailable)
@available(tvOSApplicationExtension, unavailable)
@available(watchOSApplicationExtension, unavailable)
func unavailableToExtensions() {} // expected-note {{'unavailableToExtensions()' has been explicitly marked unavailable here}}
func alwaysAvailable() {
unavailableToExtensions() // expected-error {{'unavailableToExtensions()' is unavailable in application extensions for}}
}