bors ba1690bedd Auto merge of - Urgau:uplift_cast_ref_to_mut, r=b-naber
Uplift `clippy::cast_ref_to_mut` lint

This PR aims at uplifting the `clippy::cast_ref_to_mut` lint into rustc.

## `cast_ref_to_mut`

(deny-by-default)

The `cast_ref_to_mut` lint checks for casts of `&T` to `&mut T` without using interior mutability.

### Example

```rust,compile_fail
fn x(r: &i32) {
    unsafe {
        *(r as *const i32 as *mut i32) += 1;
    }
}
```

### Explanation

Casting `&T` to `&mut T` without interior mutability is undefined behavior, as it's a violation of Rust reference aliasing requirements.

-----

Mostly followed the instructions for uplifting a clippy lint described here: https://github.com/rust-lang/rust/pull/99696#pullrequestreview-1134072751

`@rustbot` label: +I-lang-nominated
r? compiler

-----

For Clippy:

changelog: Moves: Uplifted `clippy::cast_ref_to_mut` into rustc
2023-06-01 01:27:32 +00:00
..
2023-04-30 00:06:26 +08:00
2023-05-24 19:35:59 -03:00
2023-05-29 18:37:53 +02:00
2023-05-24 19:35:59 -03:00
2023-05-30 12:40:35 +02:00
2023-05-30 13:03:40 +02:00
2023-05-05 20:36:21 +02:00
2023-05-08 17:58:01 -03:00
2023-05-26 06:55:06 +10:00
2023-05-04 18:06:07 +00:00
2023-05-12 00:10:52 +00:00
2023-05-29 12:07:41 -03:00
2023-05-24 19:35:59 -03:00
2023-05-11 12:14:57 -07:00
2023-05-08 17:58:01 -03:00
2023-05-24 19:35:59 -03:00
2023-05-30 13:04:25 +02:00
2023-05-25 17:40:46 +00:00
2023-05-24 21:15:50 -03:00
2023-05-08 03:36:30 +00:00
2023-05-12 00:10:52 +00:00
2023-04-29 13:01:46 +01:00
2023-05-24 19:54:13 -03:00
2023-05-02 10:32:08 +00:00
2023-05-05 14:58:52 -07:00
2023-04-29 13:01:46 +01:00
2023-05-08 03:36:30 +00:00
2023-05-29 12:07:41 -03:00
2023-05-26 18:55:02 +01:00
2023-05-01 16:15:17 +08:00
2023-04-29 13:01:46 +01:00
2023-05-16 20:30:48 +00:00
2023-05-12 00:10:52 +00:00
2023-05-24 19:35:59 -03:00