@@ -18,6 +18,7 @@ func passingToId<T: CP, U>(receiver: NSIdLover,
18
18
classExistential: CP ,
19
19
generic: U ,
20
20
existential: P ,
21
+ error: Error ,
21
22
any: Any ,
22
23
knownUnbridged: KnownUnbridged ,
23
24
optionalA: String ? ,
@@ -31,6 +32,7 @@ func passingToId<T: CP, U>(receiver: NSIdLover,
31
32
// CHECK: [[CLASS_EXISTENTIAL:%.*]] : $CP
32
33
// CHECK: [[GENERIC:%.*]] : $*U
33
34
// CHECK: [[EXISTENTIAL:%.*]] : $*P
35
+ // CHECK: [[ERROR:%.*]] : $Error
34
36
// CHECK: [[ANY:%.*]] : $*Any
35
37
// CHECK: [[KNOWN_UNBRIDGED:%.*]] : $KnownUnbridged
36
38
// CHECK: [[OPT_STRING:%.*]] : $Optional<String>
@@ -90,6 +92,19 @@ func passingToId<T: CP, U>(receiver: NSIdLover,
90
92
// CHECK-NEXT: dealloc_stack [[COPY]]
91
93
receiver. takesId ( existential)
92
94
95
+ // CHECK: [[METHOD:%.*]] = class_method [volatile] [[SELF]] : $NSIdLover,
96
+ // CHECK-NEXT: strong_retain [[ERROR]] : $Error
97
+ // CHECK-NEXT: [[ERROR_BOX:%[0-9]+]] = open_existential_box [[ERROR]] : $Error to $*@opened([[ERROR_ARCHETYPE:"[^"]*"]]) Error
98
+ // CHECK-NEXT: [[ERROR_STACK:%[0-9]+]] = alloc_stack $@opened([[ERROR_ARCHETYPE]]) Error
99
+ // CHECK-NEXT: copy_addr [[ERROR_BOX]] to [initialization] [[ERROR_STACK]] : $*@opened([[ERROR_ARCHETYPE]]) Error
100
+ // CHECK: [[BRIDGE_FUNCTION:%[0-9]+]] = function_ref @_TFs27_bridgeAnythingToObjectiveCurFxPs9AnyObject_
101
+ // CHECK-NEXT: [[BRIDGED_ERROR:%[0-9]+]] = apply [[BRIDGE_FUNCTION]]<@opened([[ERROR_ARCHETYPE]]) Error>([[ERROR_STACK]])
102
+ // CHECK-NEXT: apply [[METHOD]]([[BRIDGED_ERROR]], [[SELF]])
103
+ // CHECK-NEXT: strong_release [[BRIDGED_ERROR]] : $AnyObject
104
+ // CHECK-NEXT: dealloc_stack [[ERROR_STACK]] : $*@opened([[ERROR_ARCHETYPE]]) Error
105
+ // CHECK-NEXT: strong_release [[ERROR]] : $Error
106
+ receiver. takesId ( error)
107
+
93
108
// CHECK: [[METHOD:%.*]] = class_method [volatile] [[SELF]] : $NSIdLover,
94
109
// CHECK-NEXT: [[COPY:%.*]] = alloc_stack $Any
95
110
// CHECK-NEXT: copy_addr [[ANY]] to [initialization] [[COPY]]
@@ -147,6 +162,7 @@ func passingToNullableId<T: CP, U>(receiver: NSIdLover,
147
162
classExistential: CP ,
148
163
generic: U ,
149
164
existential: P ,
165
+ error: Error ,
150
166
any: Any ,
151
167
knownUnbridged: KnownUnbridged ,
152
168
optString: String ? ,
@@ -170,6 +186,7 @@ func passingToNullableId<T: CP, U>(receiver: NSIdLover,
170
186
// CHECK: [[CLASS_EXISTENTIAL:%.*]] : $CP
171
187
// CHECK: [[GENERIC:%.*]] : $*U
172
188
// CHECK: [[EXISTENTIAL:%.*]] : $*P
189
+ // CHECK: [[ERROR:%.*]] : $Error
173
190
// CHECK: [[ANY:%.*]] : $*Any,
174
191
// CHECK: [[KNOWN_UNBRIDGED:%.*]] : $KnownUnbridged,
175
192
// CHECK: [[OPT_STRING:%.*]] : $Optional<String>,
@@ -243,6 +260,20 @@ func passingToNullableId<T: CP, U>(receiver: NSIdLover,
243
260
// CHECK-NEXT: dealloc_stack [[COPY]]
244
261
receiver. takesNullableId ( existential)
245
262
263
+ // CHECK: [[METHOD:%.*]] = class_method [volatile] [[SELF]] : $NSIdLover,
264
+ // CHECK-NEXT: strong_retain [[ERROR]] : $Error
265
+ // CHECK-NEXT: [[ERROR_BOX:%[0-9]+]] = open_existential_box [[ERROR]] : $Error to $*@opened([[ERROR_ARCHETYPE:"[^"]*"]]) Error
266
+ // CHECK-NEXT: [[ERROR_STACK:%[0-9]+]] = alloc_stack $@opened([[ERROR_ARCHETYPE]]) Error
267
+ // CHECK-NEXT: copy_addr [[ERROR_BOX]] to [initialization] [[ERROR_STACK]] : $*@opened([[ERROR_ARCHETYPE]]) Error
268
+ // CHECK: [[BRIDGE_FUNCTION:%[0-9]+]] = function_ref @_TFs27_bridgeAnythingToObjectiveCurFxPs9AnyObject_
269
+ // CHECK-NEXT: [[BRIDGED_ERROR:%[0-9]+]] = apply [[BRIDGE_FUNCTION]]<@opened([[ERROR_ARCHETYPE]]) Error>([[ERROR_STACK]])
270
+ // CHECK-NEXT: [[BRIDGED_ERROR_OPT:%[0-9]+]] = enum $Optional<AnyObject>, #Optional.some!enumelt.1, [[BRIDGED_ERROR]] : $AnyObject
271
+ // CHECK-NEXT: apply [[METHOD]]([[BRIDGED_ERROR_OPT]], [[SELF]])
272
+ // CHECK-NEXT: strong_release [[BRIDGED_ERROR]] : $AnyObject
273
+ // CHECK-NEXT: dealloc_stack [[ERROR_STACK]] : $*@opened([[ERROR_ARCHETYPE]]) Error
274
+ // CHECK-NEXT: strong_release [[ERROR]] : $Error
275
+ receiver. takesNullableId ( error)
276
+
246
277
// CHECK: [[METHOD:%.*]] = class_method [volatile] [[SELF]] : $NSIdLover,
247
278
// CHECK-NEXT: [[COPY:%.*]] = alloc_stack $Any
248
279
// CHECK-NEXT: copy_addr [[ANY]] to [initialization] [[COPY]]
0 commit comments