- // MIR for `test` before CopyPropagation + // MIR for `test` after CopyPropagation fn test(_1: u32) -> u32 { debug x => _1; // in scope 0 at $DIR/copy_propagation.rs:3:9: 3:10 let mut _0: u32; // return place in scope 0 at $DIR/copy_propagation.rs:3:20: 3:23 let _2: u32; // in scope 0 at $DIR/copy_propagation.rs:4:9: 4:10 scope 1 { - debug y => _2; // in scope 1 at $DIR/copy_propagation.rs:4:9: 4:10 + debug y => _1; // in scope 1 at $DIR/copy_propagation.rs:4:9: 4:10 } bb0: { - StorageLive(_2); // scope 0 at $DIR/copy_propagation.rs:4:9: 4:10 - _2 = _1; // scope 0 at $DIR/copy_propagation.rs:4:13: 4:14 - _0 = _2; // scope 1 at $DIR/copy_propagation.rs:5:5: 5:6 - StorageDead(_2); // scope 0 at $DIR/copy_propagation.rs:6:1: 6:2 + nop; // scope 0 at $DIR/copy_propagation.rs:4:9: 4:10 + nop; // scope 0 at $DIR/copy_propagation.rs:4:13: 4:14 + _0 = _1; // scope 1 at $DIR/copy_propagation.rs:5:5: 5:6 + nop; // scope 0 at $DIR/copy_propagation.rs:6:1: 6:2 return; // scope 0 at $DIR/copy_propagation.rs:6:2: 6:2 } }