- // MIR for `option_payload` before LowerIntrinsics + // MIR for `option_payload` after LowerIntrinsics fn option_payload(_1: &Option, _2: &Option) -> () { debug o => _1; // in scope 0 at $DIR/lower_intrinsics.rs:+0:23: +0:24 debug p => _2; // in scope 0 at $DIR/lower_intrinsics.rs:+0:42: +0:43 let mut _0: (); // return place in scope 0 at $DIR/lower_intrinsics.rs:+0:62: +0:62 let mut _4: *const std::option::Option; // in scope 0 at $DIR/lower_intrinsics.rs:+2:55: +2:56 let mut _6: *const std::option::Option; // in scope 0 at $DIR/lower_intrinsics.rs:+3:55: +3:56 scope 1 { let _3: *const usize; // in scope 1 at $DIR/lower_intrinsics.rs:+2:13: +2:15 scope 2 { debug _x => _3; // in scope 2 at $DIR/lower_intrinsics.rs:+2:13: +2:15 let _5: *const std::string::String; // in scope 2 at $DIR/lower_intrinsics.rs:+3:13: +3:15 scope 3 { debug _y => _5; // in scope 3 at $DIR/lower_intrinsics.rs:+3:13: +3:15 } } } bb0: { StorageLive(_3); // scope 1 at $DIR/lower_intrinsics.rs:+2:13: +2:15 StorageLive(_4); // scope 1 at $DIR/lower_intrinsics.rs:+2:55: +2:56 _4 = &raw const (*_1); // scope 1 at $DIR/lower_intrinsics.rs:+2:55: +2:56 - _3 = option_payload_ptr::(move _4) -> [return: bb1, unwind unreachable]; // scope 1 at $DIR/lower_intrinsics.rs:+2:18: +2:57 - // mir::Constant - // + span: $DIR/lower_intrinsics.rs:133:18: 133:54 - // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(*const Option) -> *const usize {option_payload_ptr::}, val: Value() } + _3 = &raw const (((*_4) as Some).0: usize); // scope 1 at $DIR/lower_intrinsics.rs:+2:18: +2:57 + goto -> bb1; // scope 1 at $DIR/lower_intrinsics.rs:+2:18: +2:57 } bb1: { StorageDead(_4); // scope 1 at $DIR/lower_intrinsics.rs:+2:56: +2:57 StorageLive(_5); // scope 2 at $DIR/lower_intrinsics.rs:+3:13: +3:15 StorageLive(_6); // scope 2 at $DIR/lower_intrinsics.rs:+3:55: +3:56 _6 = &raw const (*_2); // scope 2 at $DIR/lower_intrinsics.rs:+3:55: +3:56 - _5 = option_payload_ptr::(move _6) -> [return: bb2, unwind unreachable]; // scope 2 at $DIR/lower_intrinsics.rs:+3:18: +3:57 - // mir::Constant - // + span: $DIR/lower_intrinsics.rs:134:18: 134:54 - // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(*const Option) -> *const String {option_payload_ptr::}, val: Value() } + _5 = &raw const (((*_6) as Some).0: std::string::String); // scope 2 at $DIR/lower_intrinsics.rs:+3:18: +3:57 + goto -> bb2; // scope 2 at $DIR/lower_intrinsics.rs:+3:18: +3:57 } bb2: { StorageDead(_6); // scope 2 at $DIR/lower_intrinsics.rs:+3:56: +3:57 _0 = const (); // scope 1 at $DIR/lower_intrinsics.rs:+1:5: +4:6 StorageDead(_5); // scope 2 at $DIR/lower_intrinsics.rs:+4:5: +4:6 StorageDead(_3); // scope 1 at $DIR/lower_intrinsics.rs:+4:5: +4:6 return; // scope 0 at $DIR/lower_intrinsics.rs:+5:2: +5:2 } }