// 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;
    }
}
