@@ -13,6 +13,19 @@ public struct ConditionallyAvailableWrapper<T> {
13
13
}
14
14
}
15
15
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
+
16
29
// CHECK: public struct HasWrappers {
17
30
public struct HasWrappers {
18
31
// CHECK: @available(macOS 10.15.4, iOS 13.4, watchOS 6.2, tvOS 13.4, *)
@@ -26,3 +39,29 @@ public struct HasWrappers {
26
39
@available ( SwiftStdlib 5 . 2 , * )
27
40
@ConditionallyAvailableWrapper public var x : Int
28
41
}
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