@@ -1045,6 +1045,31 @@ bb7:
1045
1045
return %23 : $()
1046
1046
}
1047
1047
1048
+ // CHECK-LABEL: sil [ossa] @f163_testOpenedArchetype : {{.*}} {
1049
+ // CHECK: {{bb[0-9]+}}([[INSTANCE:%[^,]+]] :
1050
+ // CHECK: [[ADDR:%[^,]+]] = alloc_stack $Optional<Any>
1051
+ // CHECK: [[BORROW:%[^,]+]] = begin_borrow [lexical] [[INSTANCE]]
1052
+ // CHECK: [[AN_ERROR:%[^,]+]] = open_existential_box [[BORROW]]
1053
+ // CHECK: [[ANY_ADDR:%[^,]+]] = init_enum_data_addr [[ADDR]]
1054
+ // CHECK: [[OPENED_ADDR:%[^,]+]] = init_existential_addr [[ANY_ADDR]]
1055
+ // CHECK: copy_addr [[AN_ERROR]] to [init] [[OPENED_ADDR]]
1056
+ // CHECK: inject_enum_addr [[ADDR]] : $*Optional<Any>, #Optional.some!enumelt
1057
+ // CHECK: apply undef<Any>([[ADDR]])
1058
+ // CHECK-LABEL: } // end sil function 'f163_testOpenedArchetype'
1059
+ sil [ossa] @f163_testOpenedArchetype : $@convention(c) (@owned any Error) -> () {
1060
+ block(%instance : @owned $any Error):
1061
+ %borrow = begin_borrow [lexical] %instance : $any Error
1062
+ %an_error = open_existential_box_value %borrow : $any Error to $@opened("55625EBA-9384-11ED-A0B0-32F16C24A34F", any Error) Self
1063
+ %an_owned_error = copy_value %an_error : $@opened("55625EBA-9384-11ED-A0B0-32F16C24A34F", any Error) Self
1064
+ %any = init_existential_value %an_owned_error : $@opened("55625EBA-9384-11ED-A0B0-32F16C24A34F", any Error) Self, $@opened("55625EBA-9384-11ED-A0B0-32F16C24A34F", any Error) Self, $Any
1065
+ %some_any = enum $Optional<Any>, #Optional.some!enumelt, %any : $Any
1066
+ apply undef<Any>(%some_any) : $@convention(thin) <T> (@in Optional<T>) -> ()
1067
+ end_borrow %borrow : $any Error
1068
+ destroy_value %instance : $any Error
1069
+ %retval = tuple ()
1070
+ return %retval : $()
1071
+ }
1072
+
1048
1073
// CHECK-LABEL: sil [ossa] @f170_compare : $@convention(thin) <T where T : Comparable> (@in_guaranteed T, @in_guaranteed T) -> @out T {
1049
1074
// CHECK: bb0(%0 : $*T, %1 : $*T, %2 : $*T):
1050
1075
// CHECK: [[WT:%.*]] = witness_method $T, #Comparable."<" : <Self where Self : Comparable> (Self.Type) -> (Self, Self) -> Builtin.Int1 : $@convention(witness_method: Comparable) <τ_0_0 where τ_0_0 : Comparable> (@in_guaranteed τ_0_0, @in_guaranteed τ_0_0, @thick τ_0_0.Type) -> Builtin.Int1
0 commit comments