// MIR for `fun` after built fn fun(_1: &[T]) -> &T { debug it => _1; let mut _0: &T; let _2: &T; let _3: usize; let mut _4: usize; let mut _5: bool; scope 1 { debug f => _2; } bb0: { StorageLive(_2); StorageLive(_3); _3 = const 0_usize; _4 = Len((*_1)); _5 = Lt(_3, _4); assert(move _5, "index out of bounds: the length is {} but the index is {}", move _4, _3) -> [success: bb1, unwind: bb2]; } bb1: { _2 = &(*_1)[_3]; FakeRead(ForLet(None), _2); _0 = &(*_2); StorageDead(_3); StorageDead(_2); return; } bb2 (cleanup): { resume; } }