// MIR for `fun` 0 mir_map fn fun(_1: &[T]) -> &T { debug it => _1; // in scope 0 at $DIR/issue-91633.rs:+0:12: +0:14 let mut _0: &T; // return place in scope 0 at $DIR/issue-91633.rs:+0:25: +0:27 let _2: &T; // in scope 0 at $DIR/issue-91633.rs:+2:10: +2:11 let _3: usize; // in scope 0 at $DIR/issue-91633.rs:+2:18: +2:19 let mut _4: usize; // in scope 0 at $DIR/issue-91633.rs:+2:15: +2:20 let mut _5: bool; // in scope 0 at $DIR/issue-91633.rs:+2:15: +2:20 scope 1 { debug f => _2; // in scope 1 at $DIR/issue-91633.rs:+2:10: +2:11 } bb0: { StorageLive(_2); // scope 0 at $DIR/issue-91633.rs:+2:10: +2:11 StorageLive(_3); // scope 0 at $DIR/issue-91633.rs:+2:18: +2:19 _3 = const 0_usize; // scope 0 at $DIR/issue-91633.rs:+2:18: +2:19 _4 = Len((*_1)); // scope 0 at $DIR/issue-91633.rs:+2:15: +2:20 _5 = Lt(_3, _4); // scope 0 at $DIR/issue-91633.rs:+2:15: +2:20 assert(move _5, "index out of bounds: the length is {} but the index is {}", move _4, _3) -> [success: bb1, unwind: bb2]; // scope 0 at $DIR/issue-91633.rs:+2:15: +2:20 } bb1: { _2 = &(*_1)[_3]; // scope 0 at $DIR/issue-91633.rs:+2:14: +2:20 FakeRead(ForLet(None), _2); // scope 0 at $DIR/issue-91633.rs:+2:10: +2:11 _0 = &(*_2); // scope 1 at $DIR/issue-91633.rs:+3:6: +3:7 StorageDead(_3); // scope 0 at $DIR/issue-91633.rs:+4:2: +4:3 StorageDead(_2); // scope 0 at $DIR/issue-91633.rs:+4:2: +4:3 return; // scope 0 at $DIR/issue-91633.rs:+4:3: +4:3 } bb2 (cleanup): { resume; // scope 0 at $DIR/issue-91633.rs:+0:1: +4:3 } }