- // MIR for `f` before CopyProp + // MIR for `f` after CopyProp fn f(_1: T) -> () { debug a => _1; // in scope 0 at $DIR/move_arg.rs:+0:19: +0:20 let mut _0: (); // return place in scope 0 at $DIR/move_arg.rs:+0:25: +0:25 let _2: T; // in scope 0 at $DIR/move_arg.rs:+1:9: +1:10 let _3: (); // in scope 0 at $DIR/move_arg.rs:+2:5: +2:12 let mut _4: T; // in scope 0 at $DIR/move_arg.rs:+2:7: +2:8 let mut _5: T; // in scope 0 at $DIR/move_arg.rs:+2:10: +2:11 scope 1 { - debug b => _2; // in scope 1 at $DIR/move_arg.rs:+1:9: +1:10 + debug b => _1; // in scope 1 at $DIR/move_arg.rs:+1:9: +1:10 } bb0: { - StorageLive(_2); // scope 0 at $DIR/move_arg.rs:+1:9: +1:10 - _2 = _1; // scope 0 at $DIR/move_arg.rs:+1:13: +1:14 StorageLive(_3); // scope 1 at $DIR/move_arg.rs:+2:5: +2:12 - StorageLive(_4); // scope 1 at $DIR/move_arg.rs:+2:7: +2:8 - _4 = _1; // scope 1 at $DIR/move_arg.rs:+2:7: +2:8 - StorageLive(_5); // scope 1 at $DIR/move_arg.rs:+2:10: +2:11 - _5 = _2; // scope 1 at $DIR/move_arg.rs:+2:10: +2:11 - _3 = g::(move _4, move _5) -> bb1; // scope 1 at $DIR/move_arg.rs:+2:5: +2:12 + _3 = g::(_1, _1) -> bb1; // scope 1 at $DIR/move_arg.rs:+2:5: +2:12 // mir::Constant // + span: $DIR/move_arg.rs:7:5: 7:6 // + literal: Const { ty: fn(T, T) {g::}, val: Value() } } bb1: { - StorageDead(_5); // scope 1 at $DIR/move_arg.rs:+2:11: +2:12 - StorageDead(_4); // scope 1 at $DIR/move_arg.rs:+2:11: +2:12 StorageDead(_3); // scope 1 at $DIR/move_arg.rs:+2:12: +2:13 _0 = const (); // scope 0 at $DIR/move_arg.rs:+0:25: +3:2 - StorageDead(_2); // scope 0 at $DIR/move_arg.rs:+3:1: +3:2 return; // scope 0 at $DIR/move_arg.rs:+3:2: +3:2 } }