### 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<i32>) {
    unsafe {
        *r.get() += 1;
    }
}
```