|
5 | 5 | // behaviour when casting to an archetype – the compiler assumes a non-optional
|
6 | 6 | // archetype is non-optional, and therefore can unwrap the source.
|
7 | 7 |
|
8 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts32optional_any_to_opaque_archetype{{[_0-9a-zA-Z]*}}F |
| 8 | +// CHECK-LABEL: sil hidden @$s13generic_casts32optional_any_to_opaque_archetype{{[_0-9a-zA-Z]*}}F |
9 | 9 | func optional_any_to_opaque_archetype<T>(_ x: Any?) -> T {
|
10 | 10 | return x as! T
|
11 | 11 | // CHECK: bb0([[RET:%.*]] : @trivial $*T, {{%.*}} : @trivial $*Optional<Any>):
|
12 | 12 | // CHECK: unconditional_checked_cast_addr Any in {{%.*}} : $*Any to T in [[RET]] : $*T
|
13 | 13 | }
|
14 | 14 |
|
15 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts46optional_any_conditionally_to_opaque_archetype{{[_0-9a-zA-Z]*}}F |
| 15 | +// CHECK-LABEL: sil hidden @$s13generic_casts46optional_any_conditionally_to_opaque_archetype{{[_0-9a-zA-Z]*}}F |
16 | 16 | func optional_any_conditionally_to_opaque_archetype<T>(_ x: Any?) -> T? {
|
17 | 17 | return x as? T
|
18 | 18 | // CHECK: checked_cast_addr_br take_always Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
19 | 19 | }
|
20 | 20 |
|
21 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts32optional_any_is_opaque_archetype{{[_0-9a-zA-Z]*}}F |
| 21 | +// CHECK-LABEL: sil hidden @$s13generic_casts32optional_any_is_opaque_archetype{{[_0-9a-zA-Z]*}}F |
22 | 22 | func optional_any_is_opaque_archetype<T>(_ x: Any?, _: T) -> Bool {
|
23 | 23 | return x is T
|
24 | 24 | // CHECK: checked_cast_addr_br take_always Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
25 | 25 | }
|
26 | 26 |
|
27 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts016optional_any_to_C17_opaque_archetype{{[_0-9a-zA-Z]*}}F |
| 27 | +// CHECK-LABEL: sil hidden @$s13generic_casts016optional_any_to_C17_opaque_archetype{{[_0-9a-zA-Z]*}}F |
28 | 28 | func optional_any_to_optional_opaque_archetype<T>(_ x: Any?) -> T? {
|
29 | 29 | return x as! T?
|
30 | 30 | // CHECK: unconditional_checked_cast_addr Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
31 | 31 | }
|
32 | 32 |
|
33 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts030optional_any_conditionally_to_C17_opaque_archetype{{[_0-9a-zA-Z]*}}F |
| 33 | +// CHECK-LABEL: sil hidden @$s13generic_casts030optional_any_conditionally_to_C17_opaque_archetype{{[_0-9a-zA-Z]*}}F |
34 | 34 | func optional_any_conditionally_to_optional_opaque_archetype<T>(_ x: Any?) -> T?? {
|
35 | 35 | return x as? T?
|
36 | 36 | // CHECK: checked_cast_addr_br take_always Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
37 | 37 | }
|
38 | 38 |
|
39 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts016optional_any_is_C17_opaque_archetype{{[_0-9a-zA-Z]*}}F |
| 39 | +// CHECK-LABEL: sil hidden @$s13generic_casts016optional_any_is_C17_opaque_archetype{{[_0-9a-zA-Z]*}}F |
40 | 40 | func optional_any_is_optional_opaque_archetype<T>(_ x: Any?, _: T) -> Bool {
|
41 | 41 | return x is T?
|
42 | 42 | // Because the levels of optional are the same, 'is' doesn't transform into an 'as?',
|
43 | 43 | // so we just cast directly without digging into the optional operand.
|
44 | 44 | // CHECK: checked_cast_addr_br take_always Optional<Any> in {{%.*}} : $*Optional<Any> to Optional<T> in {{%.*}} : $*Optional<T>
|
45 | 45 | }
|
46 | 46 |
|
47 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts31optional_any_to_class_archetype{{[_0-9a-zA-Z]*}}F |
| 47 | +// CHECK-LABEL: sil hidden @$s13generic_casts31optional_any_to_class_archetype{{[_0-9a-zA-Z]*}}F |
48 | 48 | func optional_any_to_class_archetype<T : AnyObject>(_ x: Any?) -> T {
|
49 | 49 | return x as! T
|
50 | 50 | // CHECK: unconditional_checked_cast_addr Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
51 | 51 | }
|
52 | 52 |
|
53 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts45optional_any_conditionally_to_class_archetype{{[_0-9a-zA-Z]*}}F |
| 53 | +// CHECK-LABEL: sil hidden @$s13generic_casts45optional_any_conditionally_to_class_archetype{{[_0-9a-zA-Z]*}}F |
54 | 54 | func optional_any_conditionally_to_class_archetype<T : AnyObject>(_ x: Any?) -> T? {
|
55 | 55 | return x as? T
|
56 | 56 | // CHECK: checked_cast_addr_br take_always Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
57 | 57 | }
|
58 | 58 |
|
59 |
| -// CHECK-LABEL: sil hidden @$S13generic_casts31optional_any_is_class_archetype{{[_0-9a-zA-Z]*}}F |
| 59 | +// CHECK-LABEL: sil hidden @$s13generic_casts31optional_any_is_class_archetype{{[_0-9a-zA-Z]*}}F |
60 | 60 | func optional_any_is_class_archetype<T : AnyObject>(_ x: Any?, _: T) -> Bool {
|
61 | 61 | return x is T
|
62 | 62 | // CHECK: checked_cast_addr_br take_always Any in {{%.*}} : $*Any to T in {{%.*}} : $*T
|
|
0 commit comments