mirsa 0.2.0

rust mir static analysis
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#![allow(dead_code, unused_variables, unused_mut)]

// Inspired by:
// - bitvecto-rs.bitvec/src/slice.rs/replace_unchecked/832
//
// # Safety
// Calling `slice::get_unchecked_mut` with an out-of-bounds index is undefined.

fn main() {
    let mut bits = [true, false, true];

    let bad_index = 7usize;
    let _bad = unsafe { std::mem::replace(bits.get_unchecked_mut(bad_index), true) };

    let good_index = 1usize;
    let _good = unsafe { std::mem::replace(bits.get_unchecked_mut(good_index), false) };
}