1 - // MIR for `cannot_opt_generic` before RemoveUnneededDrops
2 + // MIR for `cannot_opt_generic` after RemoveUnneededDrops
4 fn cannot_opt_generic(_1: T) -> () {
5 debug x => _1; // in scope 0 at $DIR/remove_unneeded_drops.rs:20:26: 20:27
6 let mut _0: (); // return place in scope 0 at $DIR/remove_unneeded_drops.rs:20:32: 20:32
7 let _2: (); // in scope 0 at $DIR/remove_unneeded_drops.rs:21:5: 21:12
8 let mut _3: T; // in scope 0 at $DIR/remove_unneeded_drops.rs:21:10: 21:11
9 scope 1 (inlined std::mem::drop::<T>) { // at $DIR/remove_unneeded_drops.rs:21:5: 21:12
10 debug _x => _3; // in scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL
14 StorageLive(_2); // scope 0 at $DIR/remove_unneeded_drops.rs:21:5: 21:12
15 StorageLive(_3); // scope 0 at $DIR/remove_unneeded_drops.rs:21:10: 21:11
16 _3 = move _1; // scope 0 at $DIR/remove_unneeded_drops.rs:21:10: 21:11
17 drop(_3) -> [return: bb2, unwind: bb1]; // scope 1 at $SRC_DIR/core/src/mem/mod.rs:LL:COL
21 resume; // scope 0 at $DIR/remove_unneeded_drops.rs:20:1: 22:2
25 StorageDead(_3); // scope 0 at $DIR/remove_unneeded_drops.rs:21:11: 21:12
26 StorageDead(_2); // scope 0 at $DIR/remove_unneeded_drops.rs:21:12: 21:13
27 nop; // scope 0 at $DIR/remove_unneeded_drops.rs:20:32: 22:2
28 return; // scope 0 at $DIR/remove_unneeded_drops.rs:22:2: 22:2