@@ -13,18 +13,20 @@ import SwiftShims
13
13
14
14
// Concrete caller and callee -- nothing interesting going on
15
15
16
- sil @concrete_callee1 : $@convention(thin) (Int, @owned @box Int, @thin Int.Type) -> () {
17
- bb0(%i: $Int, %b: $@box Int, %m: $@thin Int.Type):
16
+ protocol P {}
17
+
18
+ sil @concrete_callee1 : $@convention(thin) (Int, @owned @box Int, @thin Int.Type, @thick P.Type) -> () {
19
+ bb0(%i: $Int, %b: $@box Int, %m: $@thin Int.Type, %p: $@thick P.Type):
18
20
%12 = tuple ()
19
21
return %12 : $()
20
22
}
21
23
22
- sil @concrete_caller1 : $@convention(thin) (Int) -> @owned @callee_owned () -> () {
23
- bb0(%i: $Int):
24
- %f = function_ref @concrete_callee1 : $@convention(thin) (Int, @owned @box Int, @thin Int.Type) -> ()
24
+ sil @concrete_caller1 : $@convention(thin) (Int, @thick P.Type ) -> @owned @callee_owned () -> () {
25
+ bb0(%i: $Int, %p: $@thick P.Type ):
26
+ %f = function_ref @concrete_callee1 : $@convention(thin) (Int, @owned @box Int, @thin Int.Type, @thick P.Type ) -> ()
25
27
%b = alloc_box $Int
26
28
%m = metatype $@thin Int.Type
27
- %c = partial_apply %f(%i, %b, %m) : $@convention(thin) (Int, @owned @box Int, @thin Int.Type) -> ()
29
+ %c = partial_apply %f(%i, %b, %m, %p ) : $@convention(thin) (Int, @owned @box Int, @thin Int.Type, @thick P .Type) -> ()
28
30
return %c : $@callee_owned () -> ()
29
31
}
30
32
@@ -34,6 +36,8 @@ bb0(%i: $Int):
34
36
// CHECK-NEXT: (struct Swift.Int))
35
37
// CHECK-NEXT: (metatype
36
38
// CHECK-NEXT: (struct Swift.Int))
39
+ // CHECK-NEXT: (existential_metatype
40
+ // CHECK-NEXT: (protocol capture_descriptors.P))
37
41
// CHECK-NEXT: - Metadata sources:
38
42
39
43
0 commit comments