### What it does Checks for casts of `&T` to `&mut T` anywhere in the code. ### Why is this bad? It’s basically guaranteed to be undefined behavior. `UnsafeCell` is the only way to obtain aliasable data that is considered mutable. ### Example ``` fn x(r: &i32) { unsafe { *(r as *const _ as *mut _) += 1; } } ``` Instead consider using interior mutability types. ``` use std::cell::UnsafeCell; fn x(r: &UnsafeCell) { unsafe { *r.get() += 1; } } ```