// MIR for `mem_replace` after PreCodegen fn mem_replace(_1: &mut u32, _2: u32) -> u32 { debug r => _1; debug v => _2; let mut _0: u32; scope 1 (inlined std::mem::replace::) { debug dest => _1; debug src => _2; let mut _3: *const u32; let mut _4: *mut u32; scope 2 { scope 3 { debug result => _0; scope 7 (inlined std::ptr::write::) { debug dst => _4; debug src => _2; scope 8 { scope 9 (inlined std::ptr::write::runtime::) { debug dst => _4; } } } } scope 4 (inlined std::ptr::read::) { debug src => _3; scope 5 { scope 6 (inlined std::ptr::read::runtime::) { debug src => _3; } } } } } bb0: { StorageLive(_3); _3 = &raw const (*_1); _0 = (*_3); StorageDead(_3); StorageLive(_4); _4 = &raw mut (*_1); (*_4) = _2; StorageDead(_4); return; } }