- // MIR for `main` before ConstProp + // MIR for `main` after ConstProp fn main() -> () { let mut _0: (); let _1: u32; let mut _2: [u32; 4]; let _3: usize; let mut _4: usize; let mut _5: bool; scope 1 { debug x => _1; } bb0: { StorageLive(_1); StorageLive(_2); _2 = [const 0_u32, const 1_u32, const 2_u32, const 3_u32]; StorageLive(_3); _3 = const 2_usize; - _4 = Len(_2); - _5 = Lt(_3, _4); - assert(move _5, "index out of bounds: the length is {} but the index is {}", move _4, _3) -> [success: bb1, unwind continue]; + _4 = const 4_usize; + _5 = const true; + assert(const true, "index out of bounds: the length is {} but the index is {}", const 4_usize, const 2_usize) -> [success: bb1, unwind continue]; } bb1: { - _1 = _2[_3]; + _1 = const 2_u32; StorageDead(_3); StorageDead(_2); _0 = const (); StorageDead(_1); return; } }