- // MIR for `opt` before RemoveUnneededDrops + // MIR for `opt` after RemoveUnneededDrops fn opt(_1: bool) -> () { debug x => _1; // in scope 0 at $DIR/remove_unneeded_drops.rs:3:8: 3:9 let mut _0: (); // return place in scope 0 at $DIR/remove_unneeded_drops.rs:3:17: 3:17 let _2: (); // in scope 0 at $DIR/remove_unneeded_drops.rs:4:5: 4:12 let mut _3: bool; // in scope 0 at $DIR/remove_unneeded_drops.rs:4:10: 4:11 scope 1 (inlined std::mem::drop::) { // at $DIR/remove_unneeded_drops.rs:4:5: 4:12 debug _x => _3; // in scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL } bb0: { StorageLive(_2); // scope 0 at $DIR/remove_unneeded_drops.rs:4:5: 4:12 StorageLive(_3); // scope 0 at $DIR/remove_unneeded_drops.rs:4:10: 4:11 _3 = _1; // scope 0 at $DIR/remove_unneeded_drops.rs:4:10: 4:11 - drop(_3) -> bb1; // scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL - } - - bb1: { StorageDead(_3); // scope 0 at $DIR/remove_unneeded_drops.rs:4:11: 4:12 StorageDead(_2); // scope 0 at $DIR/remove_unneeded_drops.rs:4:12: 4:13 - nop; // scope 0 at $DIR/remove_unneeded_drops.rs:3:17: 5:2 return; // scope 0 at $DIR/remove_unneeded_drops.rs:5:2: 5:2 - } - - bb2 (cleanup): { - resume; // scope 0 at $DIR/remove_unneeded_drops.rs:3:1: 5:2 } }