- // MIR for `main` before Derefer + // MIR for `main` after Derefer fn main() -> () { let mut _0: (); // return place in scope 0 at $DIR/derefer_inline_test.rs:+0:11: +0:11 let _1: std::boxed::Box>; // in scope 0 at $DIR/derefer_inline_test.rs:+1:5: +1:18 let mut _2: std::boxed::Box; // in scope 0 at $DIR/derefer_inline_test.rs:+1:14: +1:17 bb0: { StorageLive(_1); // scope 0 at $DIR/derefer_inline_test.rs:+1:5: +1:18 StorageLive(_2); // scope 0 at $DIR/derefer_inline_test.rs:+1:14: +1:17 _2 = f() -> bb1; // scope 0 at $DIR/derefer_inline_test.rs:+1:14: +1:17 // mir::Constant // + span: $DIR/derefer_inline_test.rs:10:14: 10:15 // + literal: Const { ty: fn() -> Box {f}, val: Value() } } bb1: { _1 = Box::>::new(move _2) -> [return: bb2, unwind: bb4]; // scope 0 at $DIR/derefer_inline_test.rs:+1:5: +1:18 // mir::Constant // + span: $DIR/derefer_inline_test.rs:10:5: 10:13 // + user_ty: UserType(0) // + literal: Const { ty: fn(Box) -> Box> {Box::>::new}, val: Value() } } bb2: { StorageDead(_2); // scope 0 at $DIR/derefer_inline_test.rs:+1:17: +1:18 drop(_1) -> bb3; // scope 0 at $DIR/derefer_inline_test.rs:+1:18: +1:19 } bb3: { StorageDead(_1); // scope 0 at $DIR/derefer_inline_test.rs:+1:18: +1:19 _0 = const (); // scope 0 at $DIR/derefer_inline_test.rs:+0:11: +2:2 return; // scope 0 at $DIR/derefer_inline_test.rs:+2:2: +2:2 } bb4 (cleanup): { drop(_2) -> bb5; // scope 0 at $DIR/derefer_inline_test.rs:+1:17: +1:18 } bb5 (cleanup): { resume; // scope 0 at $DIR/derefer_inline_test.rs:+0:1: +2:2 } }