@@ -13,6 +13,19 @@ public struct ConditionallyAvailableWrapper<T> {
1313 }
1414}
1515
16+ @available ( macOS, unavailable)
17+ @available ( iOS, unavailable)
18+ @available ( watchOS, unavailable)
19+ @available ( tvOS, unavailable)
20+ @propertyWrapper
21+ public struct UnavailableWrapper < T> {
22+ public var wrappedValue : T
23+
24+ public init ( wrappedValue: T ) {
25+ self . wrappedValue = wrappedValue
26+ }
27+ }
28+
1629// CHECK: public struct HasWrappers {
1730public struct HasWrappers {
1831 // CHECK: @available(macOS 10.15.4, iOS 13.4, watchOS 6.2, tvOS 13.4, *)
@@ -26,3 +39,29 @@ public struct HasWrappers {
2639 @available ( SwiftStdlib 5 . 2 , * )
2740 @ConditionallyAvailableWrapper public var x : Int
2841}
42+
43+ // CHECK: @available(macOS, unavailable)
44+ // CHECK-NEXT: @available(iOS, unavailable)
45+ // CHECK-NEXT: @available(watchOS, unavailable)
46+ // CHECK-NEXT: @available(tvOS, unavailable)
47+ // CHECK-NEXT: public struct UnavailableHasWrappers {
48+ @available ( macOS, unavailable)
49+ @available ( iOS, unavailable)
50+ @available ( watchOS, unavailable)
51+ @available ( tvOS, unavailable)
52+ public struct UnavailableHasWrappers {
53+ // CHECK-LABEL: @Library.UnavailableWrapper public var x: Swift.Int {
54+ // CHECK-NEXT: get
55+ // CHECK-NEXT: @available(iOS, unavailable)
56+ // CHECK-NEXT: @available(tvOS, unavailable)
57+ // CHECK-NEXT: @available(watchOS, unavailable)
58+ // CHECK-NEXT: @available(macOS, unavailable)
59+ // CHECK-NEXT: set
60+ // CHECK-NEXT: @available(iOS, unavailable)
61+ // CHECK-NEXT: @available(tvOS, unavailable)
62+ // CHECK-NEXT: @available(watchOS, unavailable)
63+ // CHECK-NEXT: @available(macOS, unavailable)
64+ // CHECK-NEXT: _modify
65+ // CHECK-NEXT: }
66+ @UnavailableWrapper public var x : Int
67+ }
0 commit comments