|
1 | 1 | // RUN: %empty-directory(%t) |
2 | | -// RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -module-name Library -target %target-swift-abi-5.3-triple |
| 2 | +// RUN: %target-swift-emit-module-interfaces(%t/Library.swiftinterface, %t/Library.private.swiftinterface) %s -module-name Library -target %target-swift-abi-5.3-triple |
3 | 3 | // RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -module-name Library |
4 | | -// RUN: %FileCheck %s < %t/Library.swiftinterface |
| 4 | +// RUN: %target-swift-typecheck-module-from-interface(%t/Library.private.swiftinterface) -module-name Library |
| 5 | +// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-PUBLIC < %t/Library.swiftinterface |
| 6 | +// RUN: %FileCheck %s --check-prefixes=CHECK,CHECK-PRIVATE < %t/Library.private.swiftinterface |
5 | 7 |
|
6 | 8 | // REQUIRES: VENDOR=apple |
7 | 9 |
|
@@ -33,7 +35,7 @@ public actor ActorWithExplicitAvailability { |
33 | 35 | @available(macOS, unavailable) |
34 | 36 | public actor UnavailableActor { |
35 | 37 | // CHECK: @available(iOS 13.0, tvOS 13.0, watchOS 6.0, *) |
36 | | - // CHECK-NEXT: @available(macOS, unavailable) |
| 38 | + // CHECK-NEXT: @available(macOS, unavailable, introduced: 10.15) |
37 | 39 | // CHECK-NEXT: @_semantics("defaultActor") nonisolated final public var unownedExecutor: _Concurrency.UnownedSerialExecutor { |
38 | 40 | // CHECK-NEXT: get |
39 | 41 | // CHECK-NEXT: } |
@@ -72,9 +74,39 @@ extension Enum { |
72 | 74 | @available(macOS, unavailable) |
73 | 75 | public actor UnavailableExtensionNestedActor { |
74 | 76 | // CHECK: @available(iOS 13.4, tvOS 13.4, watchOS 6.2, *) |
75 | | - // CHECK-NEXT: @available(macOS, unavailable) |
| 77 | + // CHECK-NEXT: @available(macOS, unavailable, introduced: 10.15.4) |
76 | 78 | // CHECK-NEXT: @_semantics("defaultActor") nonisolated final public var unownedExecutor: _Concurrency.UnownedSerialExecutor { |
77 | 79 | // CHECK-NEXT: get |
78 | 80 | // CHECK-NEXT: } |
79 | 81 | } |
80 | 82 | } |
| 83 | + |
| 84 | +// CHECK-PUBLIC: @available(macOS, unavailable) |
| 85 | +// CHECK-PUBLIC-NEXT: @available(iOS, unavailable) |
| 86 | +// CHECK-PUBLIC-NEXT: @available(watchOS, unavailable) |
| 87 | +// CHECK-PUBLIC-NEXT: @available(tvOS, unavailable) |
| 88 | +// CHECK-PUBLIC-NEXT: public struct SPIAvailableStruct |
| 89 | +// CHECK-PRIVATE: @_spi_available(macOS, introduced: 10.15.4) |
| 90 | +// CHECK-PRIVATE-NEXT: @_spi_available(iOS, introduced: 13.4) |
| 91 | +// CHECK-PRIVATE-NEXT: @_spi_available(watchOS, introduced: 6.2) |
| 92 | +// CHECK-PRIVATE-NEXT: @_spi_available(tvOS, introduced: 13.4) |
| 93 | +// CHECK-PRIVATE-NEXT: public struct SPIAvailableStruct |
| 94 | +@_spi_available(SwiftStdlib 5.2, *) |
| 95 | +public struct SPIAvailableStruct { |
| 96 | + // CHECK: #if compiler(>=5.3) && $Actors |
| 97 | + // CHECK-NEXT: @_hasMissingDesignatedInitializers @available(macOS, unavailable) |
| 98 | + // CHECK-NEXT: public actor UnavailableNestedActor |
| 99 | + @available(macOS, unavailable) |
| 100 | + public actor UnavailableNestedActor { |
| 101 | + // CHECK-PUBLIC: @available(iOS, unavailable) |
| 102 | + // CHECK-PUBLIC-NEXT: @available(tvOS, unavailable) |
| 103 | + // CHECK-PUBLIC-NEXT: @available(watchOS, unavailable) |
| 104 | + // CHECK-PUBLIC-NEXT: @available(macOS, unavailable) |
| 105 | + // CHECK-PUBLIC-NEXT: @_semantics("defaultActor") nonisolated final public var unownedExecutor: _Concurrency.UnownedSerialExecutor |
| 106 | + // CHECK-PRIVATE: @_spi_available(iOS, introduced: 13.4) |
| 107 | + // CHECK-PRIVATE-NEXT: @_spi_available(tvOS, introduced: 13.4) |
| 108 | + // CHECK-PRIVATE-NEXT: @_spi_available(watchOS, introduced: 6.2) |
| 109 | + // CHECK-PRIVATE-NEXT: @_spi_available(macOS, unavailable, introduced: 10.15.4) |
| 110 | + // CHECK-PRIVATE-NEXT: @_semantics("defaultActor") nonisolated final public var unownedExecutor: _Concurrency.UnownedSerialExecutor |
| 111 | + } |
| 112 | +} |
0 commit comments