@@ -181,8 +181,10 @@ var a: array(1, 1);
181
181
// CHECK:STDOUT: %tuple.type.14a: type = tuple_type (%tuple.type.734, %tuple.type.734) [concrete]
182
182
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete]
183
183
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete]
184
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.type.c4b: type = fn_type @T.as.Destroy.impl.Op, @T.as.Destroy.impl(%array_type) [concrete]
185
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.100: %T.as.Destroy.impl.Op.type.c4b = struct_value () [concrete]
184
+ // CHECK:STDOUT: %type_where: type = facet_type <type where .Self impls <CanAggregateDestroy>> [concrete]
185
+ // CHECK:STDOUT: %facet_value: %type_where = facet_value %array_type, () [concrete]
186
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.f05: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value) [concrete]
187
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.6cc: %AggregateT.as_type.as.Destroy.impl.Op.type.f05 = struct_value () [concrete]
186
188
// CHECK:STDOUT: }
187
189
// CHECK:STDOUT:
188
190
// CHECK:STDOUT: imports {
@@ -209,8 +211,8 @@ var a: array(1, 1);
209
211
// CHECK:STDOUT: %F.call.loc10_40: init %tuple.type.734 = call %F.ref.loc10_38() to %.loc10_41.2
210
212
// CHECK:STDOUT: %.loc10_41.3: %tuple.type.14a = tuple_literal (%F.call.loc10_35, %F.call.loc10_40)
211
213
// CHECK:STDOUT: %.loc10_41.4: init %array_type = array_init (%F.call.loc10_35, %F.call.loc10_40) to %v.var
212
- // CHECK:STDOUT: %.loc10_3: init %array_type = converted %.loc10_41.3, %.loc10_41.4
213
- // CHECK:STDOUT: assign %v.var, %.loc10_3
214
+ // CHECK:STDOUT: %.loc10_3.1 : init %array_type = converted %.loc10_41.3, %.loc10_41.4
215
+ // CHECK:STDOUT: assign %v.var, %.loc10_3.1
214
216
// CHECK:STDOUT: %.loc10_28: type = splice_block %array_type [concrete = constants.%array_type] {
215
217
// CHECK:STDOUT: %C.ref.loc10_17: type = name_ref C, file.%C.decl [concrete = constants.%C]
216
218
// CHECK:STDOUT: %C.ref.loc10_20: type = name_ref C, file.%C.decl [concrete = constants.%C]
@@ -221,11 +223,13 @@ var a: array(1, 1);
221
223
// CHECK:STDOUT: %array_type: type = array_type %int_2, %.loc10_24.2 [concrete = constants.%array_type]
222
224
// CHECK:STDOUT: }
223
225
// CHECK:STDOUT: %v: ref %array_type = bind_name v, %v.var
224
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.bound: <bound method> = bound_method %v.var, constants.%T.as.Destroy.impl.Op.100
226
+ // CHECK:STDOUT: %facet_value: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value]
227
+ // CHECK:STDOUT: %.loc10_3.2: %type_where = converted constants.%array_type, %facet_value [concrete = constants.%facet_value]
228
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound: <bound method> = bound_method %v.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.6cc
225
229
// CHECK:STDOUT: <elided>
226
- // CHECK:STDOUT: %bound_method: <bound method> = bound_method %v.var, %T .as.Destroy.impl.Op.specific_fn
230
+ // CHECK:STDOUT: %bound_method: <bound method> = bound_method %v.var, %AggregateT.as_type .as.Destroy.impl.Op.specific_fn
227
231
// CHECK:STDOUT: %addr: %ptr.c6b = addr_of %v.var
228
- // CHECK:STDOUT: %T .as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr)
232
+ // CHECK:STDOUT: %AggregateT.as_type .as.Destroy.impl.Op.call: init %empty_tuple.type = call %bound_method(%addr)
229
233
// CHECK:STDOUT: <elided>
230
234
// CHECK:STDOUT: }
231
235
// CHECK:STDOUT:
@@ -240,10 +244,13 @@ var a: array(1, 1);
240
244
// CHECK:STDOUT: %tuple.type: type = tuple_type (%empty_tuple.type, %empty_tuple.type, %empty_tuple.type) [concrete]
241
245
// CHECK:STDOUT: %ptr.7fe: type = ptr_type %tuple.type [concrete]
242
246
// CHECK:STDOUT: %pattern_type.8c1: type = pattern_type %tuple.type [concrete]
243
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.type.13b: type = fn_type @T.as.Destroy.impl.Op, @T.as.Destroy.impl(%tuple.type) [concrete]
244
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.02a: %T.as.Destroy.impl.Op.type.13b = struct_value () [concrete]
245
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.type.e84: type = fn_type @T.as.Destroy.impl.Op, @T.as.Destroy.impl(%array_type) [concrete]
246
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.3e0: %T.as.Destroy.impl.Op.type.e84 = struct_value () [concrete]
247
+ // CHECK:STDOUT: %type_where: type = facet_type <type where .Self impls <CanAggregateDestroy>> [concrete]
248
+ // CHECK:STDOUT: %facet_value.c7f: %type_where = facet_value %tuple.type, () [concrete]
249
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.b05: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c7f) [concrete]
250
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.1d6: %AggregateT.as_type.as.Destroy.impl.Op.type.b05 = struct_value () [concrete]
251
+ // CHECK:STDOUT: %facet_value.4cf: %type_where = facet_value %array_type, () [concrete]
252
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.7a9: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.4cf) [concrete]
253
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.190: %AggregateT.as_type.as.Destroy.impl.Op.type.7a9 = struct_value () [concrete]
247
254
// CHECK:STDOUT: }
248
255
// CHECK:STDOUT:
249
256
// CHECK:STDOUT: imports {
@@ -279,16 +286,20 @@ var a: array(1, 1);
279
286
// CHECK:STDOUT: %.loc8_21.6: type = converted %.loc8_21.2, constants.%tuple.type [concrete = constants.%tuple.type]
280
287
// CHECK:STDOUT: }
281
288
// CHECK:STDOUT: %b: ref %tuple.type = bind_name b, %b.var
282
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.bound.loc8: <bound method> = bound_method %b.var, constants.%T.as.Destroy.impl.Op.02a
289
+ // CHECK:STDOUT: %facet_value.loc8: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value.c7f]
290
+ // CHECK:STDOUT: %.loc8_3: %type_where = converted constants.%tuple.type, %facet_value.loc8 [concrete = constants.%facet_value.c7f]
291
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8: <bound method> = bound_method %b.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.1d6
283
292
// CHECK:STDOUT: <elided>
284
- // CHECK:STDOUT: %bound_method.loc8: <bound method> = bound_method %b.var, %T .as.Destroy.impl.Op.specific_fn.1
293
+ // CHECK:STDOUT: %bound_method.loc8: <bound method> = bound_method %b.var, %AggregateT.as_type .as.Destroy.impl.Op.specific_fn.1
285
294
// CHECK:STDOUT: %addr.loc8: %ptr.7fe = addr_of %b.var
286
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8)
287
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.bound.loc7: <bound method> = bound_method %a.var, constants.%T.as.Destroy.impl.Op.3e0
295
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8: init %empty_tuple.type = call %bound_method.loc8(%addr.loc8)
296
+ // CHECK:STDOUT: %facet_value.loc7: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.4cf]
297
+ // CHECK:STDOUT: %.loc7_3: %type_where = converted constants.%array_type, %facet_value.loc7 [concrete = constants.%facet_value.4cf]
298
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc7: <bound method> = bound_method %a.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.190
288
299
// CHECK:STDOUT: <elided>
289
- // CHECK:STDOUT: %bound_method.loc7: <bound method> = bound_method %a.var, %T .as.Destroy.impl.Op.specific_fn.2
300
+ // CHECK:STDOUT: %bound_method.loc7: <bound method> = bound_method %a.var, %AggregateT.as_type .as.Destroy.impl.Op.specific_fn.2
290
301
// CHECK:STDOUT: %addr.loc7: %ptr.20b = addr_of %a.var
291
- // CHECK:STDOUT: %T .as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7)
302
+ // CHECK:STDOUT: %AggregateT.as_type .as.Destroy.impl.Op.call.loc7: init %empty_tuple.type = call %bound_method.loc7(%addr.loc7)
292
303
// CHECK:STDOUT: <elided>
293
304
// CHECK:STDOUT: }
294
305
// CHECK:STDOUT:
@@ -306,11 +317,14 @@ var a: array(1, 1);
306
317
// CHECK:STDOUT: %pattern_type.fe8: type = pattern_type %array_type [concrete]
307
318
// CHECK:STDOUT: %int_0: Core.IntLiteral = int_value 0 [concrete]
308
319
// CHECK:STDOUT: %array: %array_type = tuple_value (%empty_tuple) [concrete]
309
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.type.839: type = fn_type @T.as.Destroy.impl.Op, @T.as.Destroy.impl(%tuple.type) [concrete]
310
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.571: %T.as.Destroy.impl.Op.type.839 = struct_value () [concrete]
320
+ // CHECK:STDOUT: %type_where: type = facet_type <type where .Self impls <CanAggregateDestroy>> [concrete]
321
+ // CHECK:STDOUT: %facet_value.132: %type_where = facet_value %tuple.type, () [concrete]
322
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.2ee: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.132) [concrete]
323
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.7ed: %AggregateT.as_type.as.Destroy.impl.Op.type.2ee = struct_value () [concrete]
311
324
// CHECK:STDOUT: %ptr.652: type = ptr_type %tuple.type [concrete]
312
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.type.8cb: type = fn_type @T.as.Destroy.impl.Op, @T.as.Destroy.impl(%array_type) [concrete]
313
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.36f: %T.as.Destroy.impl.Op.type.8cb = struct_value () [concrete]
325
+ // CHECK:STDOUT: %facet_value.c1b: %type_where = facet_value %array_type, () [concrete]
326
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.type.c21: type = fn_type @AggregateT.as_type.as.Destroy.impl.Op, @AggregateT.as_type.as.Destroy.impl(%facet_value.c1b) [concrete]
327
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.e50: %AggregateT.as_type.as.Destroy.impl.Op.type.c21 = struct_value () [concrete]
314
328
// CHECK:STDOUT: }
315
329
// CHECK:STDOUT:
316
330
// CHECK:STDOUT: imports {
@@ -333,25 +347,29 @@ var a: array(1, 1);
333
347
// CHECK:STDOUT: %.loc8_27.4: init %empty_tuple.type = tuple_init () to %.loc8_27.3 [concrete = constants.%empty_tuple]
334
348
// CHECK:STDOUT: %.loc8_27.5: init %empty_tuple.type = converted %tuple.elem0, %.loc8_27.4 [concrete = constants.%empty_tuple]
335
349
// CHECK:STDOUT: %.loc8_27.6: init %array_type = array_init (%.loc8_27.5) to %t.var [concrete = constants.%array]
336
- // CHECK:STDOUT: %.loc8_3: init %array_type = converted %F.call, %.loc8_27.6 [concrete = constants.%array]
337
- // CHECK:STDOUT: assign %t.var, %.loc8_3
350
+ // CHECK:STDOUT: %.loc8_3.1 : init %array_type = converted %F.call, %.loc8_27.6 [concrete = constants.%array]
351
+ // CHECK:STDOUT: assign %t.var, %.loc8_3.1
338
352
// CHECK:STDOUT: %.loc8_21: type = splice_block %array_type [concrete = constants.%array_type] {
339
353
// CHECK:STDOUT: %.loc8_17.1: %empty_tuple.type = tuple_literal ()
340
354
// CHECK:STDOUT: %int_1: Core.IntLiteral = int_value 1 [concrete = constants.%int_1]
341
355
// CHECK:STDOUT: %.loc8_17.2: type = converted %.loc8_17.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
342
356
// CHECK:STDOUT: %array_type: type = array_type %int_1, %.loc8_17.2 [concrete = constants.%array_type]
343
357
// CHECK:STDOUT: }
344
358
// CHECK:STDOUT: %t: ref %array_type = bind_name t, %t.var
345
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.bound.loc8_27: <bound method> = bound_method %.loc8_27.2, constants.%T.as.Destroy.impl.Op.571
359
+ // CHECK:STDOUT: %facet_value.loc8_27: %type_where = facet_value constants.%tuple.type, () [concrete = constants.%facet_value.132]
360
+ // CHECK:STDOUT: %.loc8_27.7: %type_where = converted constants.%tuple.type, %facet_value.loc8_27 [concrete = constants.%facet_value.132]
361
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_27: <bound method> = bound_method %.loc8_27.2, constants.%AggregateT.as_type.as.Destroy.impl.Op.7ed
346
362
// CHECK:STDOUT: <elided>
347
- // CHECK:STDOUT: %bound_method.loc8_27: <bound method> = bound_method %.loc8_27.2, %T .as.Destroy.impl.Op.specific_fn.1
363
+ // CHECK:STDOUT: %bound_method.loc8_27: <bound method> = bound_method %.loc8_27.2, %AggregateT.as_type .as.Destroy.impl.Op.specific_fn.1
348
364
// CHECK:STDOUT: %addr.loc8_27: %ptr.652 = addr_of %.loc8_27.2
349
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.call.loc8_27: init %empty_tuple.type = call %bound_method.loc8_27(%addr.loc8_27)
350
- // CHECK:STDOUT: %T.as.Destroy.impl.Op.bound.loc8_3: <bound method> = bound_method %t.var, constants.%T.as.Destroy.impl.Op.36f
365
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.call.loc8_27: init %empty_tuple.type = call %bound_method.loc8_27(%addr.loc8_27)
366
+ // CHECK:STDOUT: %facet_value.loc8_3: %type_where = facet_value constants.%array_type, () [concrete = constants.%facet_value.c1b]
367
+ // CHECK:STDOUT: %.loc8_3.2: %type_where = converted constants.%array_type, %facet_value.loc8_3 [concrete = constants.%facet_value.c1b]
368
+ // CHECK:STDOUT: %AggregateT.as_type.as.Destroy.impl.Op.bound.loc8_3: <bound method> = bound_method %t.var, constants.%AggregateT.as_type.as.Destroy.impl.Op.e50
351
369
// CHECK:STDOUT: <elided>
352
- // CHECK:STDOUT: %bound_method.loc8_3: <bound method> = bound_method %t.var, %T .as.Destroy.impl.Op.specific_fn.2
370
+ // CHECK:STDOUT: %bound_method.loc8_3: <bound method> = bound_method %t.var, %AggregateT.as_type .as.Destroy.impl.Op.specific_fn.2
353
371
// CHECK:STDOUT: %addr.loc8_3: %ptr.b99 = addr_of %t.var
354
- // CHECK:STDOUT: %T .as.Destroy.impl.Op.call.loc8_3: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3)
372
+ // CHECK:STDOUT: %AggregateT.as_type .as.Destroy.impl.Op.call.loc8_3: init %empty_tuple.type = call %bound_method.loc8_3(%addr.loc8_3)
355
373
// CHECK:STDOUT: <elided>
356
374
// CHECK:STDOUT: }
357
375
// CHECK:STDOUT:
0 commit comments