@@ -24,25 +24,33 @@ import Foundation
24
24
25
25
@objc protocol P { }
26
26
27
- do {
28
- let d : [ NSObject : NSObject ] = [ : ]
29
- let c : AnyClass ? = object_getClass ( d)
30
- let conforms = class_conformsToProtocol ( c, P . self)
31
- print ( " Dictionary: " , conforms) // CHECK: Dictionary: false
32
- }
33
27
34
- do {
35
- let a : [ NSObject ] = [ ]
36
- let c : AnyClass ? = object_getClass ( a )
37
- let p = objc_getProtocol ( " NSObject " )
38
- let conforms = class_conformsToProtocol ( c, p )
39
- print ( " Array: " , conforms) // CHECK: Array : false
40
- }
28
+ if #available ( macOS 9999 , iOS 9999 , tvOS 9999 , watchOS 9999 , * ) {
29
+ do {
30
+ let d : [ NSObject : NSObject ] = [ : ]
31
+ let c : AnyClass ? = object_getClass ( d )
32
+ let conforms = class_conformsToProtocol ( c, P . self )
33
+ print ( " Dictionary: " , conforms) // CHECK: Dictionary : false
34
+ }
41
35
42
- do {
43
- let s : Set < NSObject > = [ ]
44
- let c : AnyClass ? = object_getClass ( s)
45
- let p = objc_getProtocol ( " NSObject " )
46
- let conforms = class_conformsToProtocol ( c, p)
47
- print ( " Set: " , conforms) // CHECK: Set: false
36
+ do {
37
+ let a : [ NSObject ] = [ ]
38
+ let c : AnyClass ? = object_getClass ( a)
39
+ let p = objc_getProtocol ( " NSObject " )
40
+ let conforms = class_conformsToProtocol ( c, p)
41
+ print ( " Array: " , conforms) // CHECK: Array: false
42
+ }
43
+
44
+ do {
45
+ let s : Set < NSObject > = [ ]
46
+ let c : AnyClass ? = object_getClass ( s)
47
+ let p = objc_getProtocol ( " NSObject " )
48
+ let conforms = class_conformsToProtocol ( c, p)
49
+ print ( " Set: " , conforms) // CHECK: Set: false
50
+ }
51
+ } else {
52
+ // When testing against an older runtime that doesn't have this fix, lie.
53
+ print ( " Dictionary: false " )
54
+ print ( " Array: false " )
55
+ print ( " Set: false " )
48
56
}
0 commit comments