- // MIR for `foo` before CopyPropagation + // MIR for `foo` after CopyPropagation fn foo(_1: u8) -> () { debug x => _1; // in scope 0 at $DIR/copy_propagation_arg.rs:9:8: 9:13 let mut _0: (); // return place in scope 0 at $DIR/copy_propagation_arg.rs:9:19: 9:19 let mut _2: u8; // in scope 0 at $DIR/copy_propagation_arg.rs:11:9: 11:17 let mut _3: u8; // in scope 0 at $DIR/copy_propagation_arg.rs:11:15: 11:16 bb0: { StorageLive(_2); // scope 0 at $DIR/copy_propagation_arg.rs:11:9: 11:17 StorageLive(_3); // scope 0 at $DIR/copy_propagation_arg.rs:11:15: 11:16 _3 = _1; // scope 0 at $DIR/copy_propagation_arg.rs:11:15: 11:16 _2 = const dummy(move _3) -> bb1; // scope 0 at $DIR/copy_propagation_arg.rs:11:9: 11:17 // ty::Const // + ty: fn(u8) -> u8 {dummy} // + val: Value(Scalar()) // mir::Constant // + span: $DIR/copy_propagation_arg.rs:11:9: 11:14 // + literal: Const { ty: fn(u8) -> u8 {dummy}, val: Value(Scalar()) } } bb1: { StorageDead(_3); // scope 0 at $DIR/copy_propagation_arg.rs:11:16: 11:17 _1 = move _2; // scope 0 at $DIR/copy_propagation_arg.rs:11:5: 11:17 StorageDead(_2); // scope 0 at $DIR/copy_propagation_arg.rs:11:16: 11:17 _0 = const (); // scope 0 at $DIR/copy_propagation_arg.rs:9:19: 12:2 // ty::Const // + ty: () // + val: Value(Scalar()) // mir::Constant // + span: $DIR/copy_propagation_arg.rs:9:19: 12:2 // + literal: Const { ty: (), val: Value(Scalar()) } return; // scope 0 at $DIR/copy_propagation_arg.rs:12:2: 12:2 } }