mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Regardless of the value specified for `-unavailable-decl-optimization`, decls that are unavailable in custom availability domains should be treated as always unreachable at runtime. Part of rdar://138441307.
84 lines
3.2 KiB
Swift
84 lines
3.2 KiB
Swift
// RUN: %target-swift-emit-silgen -module-name Test %s -verify \
|
|
// RUN: -enable-experimental-feature CustomAvailability \
|
|
// RUN: -define-enabled-availability-domain EnabledDomain \
|
|
// RUN: -define-disabled-availability-domain DisabledDomain \
|
|
// RUN: -define-dynamic-availability-domain DynamicDomain \
|
|
// RUN: | %FileCheck %s --check-prefixes=CHECK
|
|
|
|
// RUN: %target-swift-emit-silgen -module-name Test %s -verify \
|
|
// RUN: -enable-experimental-feature CustomAvailability \
|
|
// RUN: -define-enabled-availability-domain EnabledDomain \
|
|
// RUN: -define-disabled-availability-domain DisabledDomain \
|
|
// RUN: -define-dynamic-availability-domain DynamicDomain \
|
|
// RUN: -unavailable-decl-optimization=stub \
|
|
// RUN: | %FileCheck %s --check-prefixes=CHECK
|
|
|
|
// RUN: %target-swift-emit-silgen -module-name Test %s -verify \
|
|
// RUN: -enable-experimental-feature CustomAvailability \
|
|
// RUN: -define-enabled-availability-domain EnabledDomain \
|
|
// RUN: -define-disabled-availability-domain DisabledDomain \
|
|
// RUN: -define-dynamic-availability-domain DynamicDomain \
|
|
// RUN: -unavailable-decl-optimization=complete \
|
|
// RUN: | %FileCheck %s --check-prefixes=CHECK
|
|
|
|
// REQUIRES: swift_feature_CustomAvailability
|
|
|
|
// CHECK: s4Test24availableInEnabledDomainyyF
|
|
@available(EnabledDomain)
|
|
public func availableInEnabledDomain() { }
|
|
|
|
// CHECK-NOT: s4Test26unavailableInEnabledDomainyyF
|
|
@available(EnabledDomain, unavailable)
|
|
public func unavailableInEnabledDomain() { }
|
|
|
|
// CHECK-NOT: s4Test25availableInDisabledDomainyyF
|
|
@available(DisabledDomain)
|
|
public func availableInDisabledDomain() { }
|
|
|
|
// CHECK: s4Test27unavailableInDisabledDomainyyF
|
|
@available(DisabledDomain, unavailable)
|
|
public func unavailableInDisabledDomain() { }
|
|
|
|
// CHECK: s4Test24availableInDynamicDomainyyF
|
|
@available(DynamicDomain)
|
|
public func availableInDynamicDomain() { }
|
|
|
|
// CHECK: s4Test26unavailableInDynamicDomainyyF
|
|
@available(DynamicDomain, unavailable)
|
|
public func unavailableInDynamicDomain() { }
|
|
|
|
// CHECK: s4Test25deprecatedInEnabledDomainyyF
|
|
@available(EnabledDomain, deprecated)
|
|
public func deprecatedInEnabledDomain() { }
|
|
|
|
// FIXME: [availability] This decl should be skipped.
|
|
// CHECK: s4Test26deprecatedInDisabledDomainyyF
|
|
@available(DisabledDomain, deprecated)
|
|
public func deprecatedInDisabledDomain() { }
|
|
|
|
// CHECK: s4Test25deprecatedInDynamicDomainyyF
|
|
@available(DynamicDomain, deprecated)
|
|
public func deprecatedInDynamicDomain() { }
|
|
|
|
// CHECK: s4Test22renamedInEnabledDomainyyF
|
|
@available(EnabledDomain, renamed: "availableInEnabledDomain")
|
|
public func renamedInEnabledDomain() { }
|
|
|
|
// CHECK-NOT: s4Test23renamedInDisabledDomainyyF
|
|
@available(DisabledDomain, renamed: "availableInDisabledDomain")
|
|
public func renamedInDisabledDomain() { }
|
|
|
|
// CHECK: s4Test22renamedInDynamicDomainyyF
|
|
@available(DynamicDomain, renamed: "availableInDynamicDomain")
|
|
public func renamedInDynamicDomain() { }
|
|
|
|
// CHECK-NOT: s4Test35availableInEnabledAndDisabledDomainyyF
|
|
@available(EnabledDomain)
|
|
@available(DisabledDomain)
|
|
public func availableInEnabledAndDisabledDomain() { }
|
|
|
|
// CHECK-NOT: s4Test35availableInDisabledAndEnabledDomainyyF
|
|
@available(DisabledDomain)
|
|
@available(EnabledDomain)
|
|
public func availableInDisabledAndEnabledDomain() { }
|