|
1 |
| -// RUN: %target-run-simple-swift | %FileCheck %s |
| 1 | +// RUN: %target-run-simple-swift | %FileCheck --check-prefix CHECK --check-prefix CHECK-ONONE %s |
2 | 2 | // RUN: %target-build-swift -O %s -o %t/a.out.optimized
|
3 | 3 | // RUN: %target-codesign %t/a.out.optimized
|
4 | 4 | // RUN: %target-run %t/a.out.optimized | %FileCheck %s
|
@@ -101,6 +101,24 @@ func allMetasToAllMetas<T, U>(_: T.Type, _: U.Type) -> Bool {
|
101 | 101 | return T.self is U.Type
|
102 | 102 | }
|
103 | 103 |
|
| 104 | +protocol P {} |
| 105 | +struct PS: P {} |
| 106 | +enum PE: P {} |
| 107 | +class PC: P {} |
| 108 | + |
| 109 | +func nongenericAnyIsP(type: Any.Type) -> Bool { |
| 110 | + return type is P.Type |
| 111 | +} |
| 112 | +func genericAnyIs<T>(type: Any.Type, to: T.Type) -> Bool { |
| 113 | + return type is T.Type |
| 114 | +} |
| 115 | +print("nongenericAnyIsP(type: PS.self)", nongenericAnyIsP(type: PS.self)) // CHECK: nongenericAnyIsP(type: PS.self) true |
| 116 | +print("genericAnyIs(type: PS.self, to: P.self)", genericAnyIs(type: PS.self, to: P.self)) // CHECK-ONONE: genericAnyIs(type: PS.self, to: P.self) true |
| 117 | +print("nongenericAnyIsP(type: PE.self)", nongenericAnyIsP(type: PE.self)) // CHECK: nongenericAnyIsP(type: PE.self) true |
| 118 | +print("genericAnyIs(type: PE.self, to: P.self)", genericAnyIs(type: PE.self, to: P.self)) // CHECK-ONONE: genericAnyIs(type: PE.self, to: P.self) true |
| 119 | +print("nongenericAnyIsP(type: PC.self)", nongenericAnyIsP(type: PC.self)) // CHECK: nongenericAnyIsP(type: PC.self) true |
| 120 | +print("genericAnyIs(type: PC.self, to: P.self)", genericAnyIs(type: PC.self, to: P.self)) // CHECK-ONONE: genericAnyIs(type: PC.self, to: P.self) true |
| 121 | + |
104 | 122 | print(allToInt(22)) // CHECK: 22
|
105 | 123 | print(anyToInt(44)) // CHECK: 44
|
106 | 124 | allToC(C()).print() // CHECK: C!
|
|
0 commit comments