@@ -306,22 +306,23 @@ fn H(U:! Core.Copy, c: Class(U)) -> U {
306
306
// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc13_31.1, %T.as_type.loc13_31.1 [symbolic = %Class.elem (constants.%Class.elem.73af90.1)]
307
307
// CHECK:STDOUT: %Copy.lookup_impl_witness: <witness> = lookup_impl_witness %T.loc13_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.3ba2b3.1)]
308
308
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %T.as_type.loc13_31.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.72ea01.1)]
309
- // CHECK:STDOUT: %.loc14_11.4 : type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc14_11.4 (constants.%.671c3a.1)]
310
- // CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.4 (%.671c3a.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.56eb4a.1)]
309
+ // CHECK:STDOUT: %.loc14_11.5 : type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc14_11.5 (constants.%.671c3a.1)]
310
+ // CHECK:STDOUT: %impl.elem0.loc14_11.2: @G.%.loc14_11.5 (%.671c3a.1) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.56eb4a.1)]
311
311
// CHECK:STDOUT: %specific_impl_fn.loc14_11.2: <specific function> = specific_impl_function %impl.elem0.loc14_11.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.fb70c0.1)]
312
312
// CHECK:STDOUT:
313
- // CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.b1d614.1)) -> @G.%T.as_type.loc13_31.1 (%T.as_type) {
313
+ // CHECK:STDOUT: fn(%c.param: @G.%Class.loc13_31.1 (%Class.b1d614.1)) -> %return.param: @G.%T.as_type.loc13_31.1 (%T.as_type) {
314
314
// CHECK:STDOUT: !entry:
315
315
// CHECK:STDOUT: %c.ref: @G.%Class.loc13_31.1 (%Class.b1d614.1) = name_ref c, %c
316
316
// CHECK:STDOUT: %x.ref: @G.%Class.elem (%Class.elem.73af90.1) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6]
317
317
// CHECK:STDOUT: %.loc14_11.1: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = class_element_access %c.ref, element0
318
318
// CHECK:STDOUT: %.loc14_11.2: @G.%T.as_type.loc13_31.1 (%T.as_type) = bind_value %.loc14_11.1
319
- // CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.4 (%.671c3a.1) = impl_witness_access constants.%Copy.lookup_impl_witness.3ba2b3.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.56eb4a.1)]
319
+ // CHECK:STDOUT: %impl.elem0.loc14_11.1: @G.%.loc14_11.5 (%.671c3a.1) = impl_witness_access constants.%Copy.lookup_impl_witness.3ba2b3.1, element0 [symbolic = %impl.elem0.loc14_11.2 (constants.%impl.elem0.56eb4a.1)]
320
320
// CHECK:STDOUT: %bound_method.loc14_11.1: <bound method> = bound_method %.loc14_11.2, %impl.elem0.loc14_11.1
321
321
// CHECK:STDOUT: %specific_impl_fn.loc14_11.1: <specific function> = specific_impl_function %impl.elem0.loc14_11.1, @Copy.Op(constants.%Copy.facet.72ea01.1) [symbolic = %specific_impl_fn.loc14_11.2 (constants.%specific_impl_fn.fb70c0.1)]
322
322
// CHECK:STDOUT: %bound_method.loc14_11.2: <bound method> = bound_method %.loc14_11.2, %specific_impl_fn.loc14_11.1
323
- // CHECK:STDOUT: %.loc14_11.3: init @G.%T.as_type.loc13_31.1 (%T.as_type) = call %bound_method.loc14_11.2(%.loc14_11.2)
324
- // CHECK:STDOUT: return %.loc14_11.3 to %return
323
+ // CHECK:STDOUT: %.loc14_11.3: ref @G.%T.as_type.loc13_31.1 (%T.as_type) = temporary_storage
324
+ // CHECK:STDOUT: %.loc14_11.4: init @G.%T.as_type.loc13_31.1 (%T.as_type) = call %bound_method.loc14_11.2(%.loc14_11.2) to %.loc14_11.3
325
+ // CHECK:STDOUT: return %.loc14_11.4 to %return
325
326
// CHECK:STDOUT: }
326
327
// CHECK:STDOUT: }
327
328
// CHECK:STDOUT:
@@ -338,22 +339,23 @@ fn H(U:! Core.Copy, c: Class(U)) -> U {
338
339
// CHECK:STDOUT: %Class.elem: type = unbound_element_type %Class.loc17_31.1, %U.as_type.loc17_31.1 [symbolic = %Class.elem (constants.%Class.elem.73af90.2)]
339
340
// CHECK:STDOUT: %Copy.lookup_impl_witness: <witness> = lookup_impl_witness %U.loc17_6.1, @Copy [symbolic = %Copy.lookup_impl_witness (constants.%Copy.lookup_impl_witness.3ba2b3.2)]
340
341
// CHECK:STDOUT: %Copy.facet: %Copy.type = facet_value %U.as_type.loc17_31.1, (%Copy.lookup_impl_witness) [symbolic = %Copy.facet (constants.%Copy.facet.72ea01.2)]
341
- // CHECK:STDOUT: %.loc18_11.4 : type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc18_11.4 (constants.%.671c3a.2)]
342
- // CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.4 (%.671c3a.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.56eb4a.2)]
342
+ // CHECK:STDOUT: %.loc18_11.5 : type = fn_type_with_self_type constants.%Copy.Op.type, %Copy.facet [symbolic = %.loc18_11.5 (constants.%.671c3a.2)]
343
+ // CHECK:STDOUT: %impl.elem0.loc18_11.2: @H.%.loc18_11.5 (%.671c3a.2) = impl_witness_access %Copy.lookup_impl_witness, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.56eb4a.2)]
343
344
// CHECK:STDOUT: %specific_impl_fn.loc18_11.2: <specific function> = specific_impl_function %impl.elem0.loc18_11.2, @Copy.Op(%Copy.facet) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.fb70c0.2)]
344
345
// CHECK:STDOUT:
345
- // CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.b1d614.2)) -> @H.%U.as_type.loc17_31.1 (%U.as_type.565) {
346
+ // CHECK:STDOUT: fn(%c.param: @H.%Class.loc17_31.1 (%Class.b1d614.2)) -> %return.param: @H.%U.as_type.loc17_31.1 (%U.as_type.565) {
346
347
// CHECK:STDOUT: !entry:
347
348
// CHECK:STDOUT: %c.ref: @H.%Class.loc17_31.1 (%Class.b1d614.2) = name_ref c, %c
348
349
// CHECK:STDOUT: %x.ref: @H.%Class.elem (%Class.elem.73af90.2) = name_ref x, @Class.%.loc6 [concrete = @Class.%.loc6]
349
350
// CHECK:STDOUT: %.loc18_11.1: ref @H.%U.as_type.loc17_31.1 (%U.as_type.565) = class_element_access %c.ref, element0
350
351
// CHECK:STDOUT: %.loc18_11.2: @H.%U.as_type.loc17_31.1 (%U.as_type.565) = bind_value %.loc18_11.1
351
- // CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.4 (%.671c3a.2) = impl_witness_access constants.%Copy.lookup_impl_witness.3ba2b3.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.56eb4a.2)]
352
+ // CHECK:STDOUT: %impl.elem0.loc18_11.1: @H.%.loc18_11.5 (%.671c3a.2) = impl_witness_access constants.%Copy.lookup_impl_witness.3ba2b3.2, element0 [symbolic = %impl.elem0.loc18_11.2 (constants.%impl.elem0.56eb4a.2)]
352
353
// CHECK:STDOUT: %bound_method.loc18_11.1: <bound method> = bound_method %.loc18_11.2, %impl.elem0.loc18_11.1
353
354
// CHECK:STDOUT: %specific_impl_fn.loc18_11.1: <specific function> = specific_impl_function %impl.elem0.loc18_11.1, @Copy.Op(constants.%Copy.facet.72ea01.2) [symbolic = %specific_impl_fn.loc18_11.2 (constants.%specific_impl_fn.fb70c0.2)]
354
355
// CHECK:STDOUT: %bound_method.loc18_11.2: <bound method> = bound_method %.loc18_11.2, %specific_impl_fn.loc18_11.1
355
- // CHECK:STDOUT: %.loc18_11.3: init @H.%U.as_type.loc17_31.1 (%U.as_type.565) = call %bound_method.loc18_11.2(%.loc18_11.2)
356
- // CHECK:STDOUT: return %.loc18_11.3 to %return
356
+ // CHECK:STDOUT: %.loc18_11.3: ref @H.%U.as_type.loc17_31.1 (%U.as_type.565) = temporary_storage
357
+ // CHECK:STDOUT: %.loc18_11.4: init @H.%U.as_type.loc17_31.1 (%U.as_type.565) = call %bound_method.loc18_11.2(%.loc18_11.2) to %.loc18_11.3
358
+ // CHECK:STDOUT: return %.loc18_11.4 to %return
357
359
// CHECK:STDOUT: }
358
360
// CHECK:STDOUT: }
359
361
// CHECK:STDOUT:
0 commit comments