// MIR for `range_iter_next` after PreCodegen fn range_iter_next(_1: &mut std::ops::Range) -> Option { debug it => _1; let mut _0: std::option::Option; scope 1 (inlined iter::range::>::next) { debug self => _1; scope 2 (inlined as iter::range::RangeIteratorImpl>::spec_next) { debug self => _1; let mut _2: &u32; let mut _3: &u32; let mut _6: bool; let _7: u32; let mut _8: u32; scope 3 { debug old => _7; scope 4 { } } scope 5 (inlined std::cmp::impls::::lt) { debug self => _2; debug other => _3; let mut _4: u32; let mut _5: u32; } } } bb0: { StorageLive(_7); StorageLive(_6); StorageLive(_2); _2 = &((*_1).0: u32); StorageLive(_3); _3 = &((*_1).1: u32); StorageLive(_4); _4 = ((*_1).0: u32); StorageLive(_5); _5 = ((*_1).1: u32); _6 = Lt(move _4, move _5); StorageDead(_5); StorageDead(_4); switchInt(move _6) -> [0: bb1, otherwise: bb2]; } bb1: { StorageDead(_3); StorageDead(_2); _0 = const Option::::None; goto -> bb4; } bb2: { StorageDead(_3); StorageDead(_2); _7 = ((*_1).0: u32); StorageLive(_8); _8 = ::forward_unchecked(_7, const 1_usize) -> [return: bb3, unwind continue]; } bb3: { ((*_1).0: u32) = move _8; StorageDead(_8); _0 = Option::::Some(_7); goto -> bb4; } bb4: { StorageDead(_6); StorageDead(_7); return; } } ALLOC0 (size: 8, align: 4) { 00 00 00 00 __ __ __ __ │ ....░░░░ }