rust-lang / rust-lang/rust-clippy
Catch transmuting Option<&T> to Option<&mut T>
Open
@mendelsshop is already working on this.
Since Oct 31, 2025.
C-enhancement
E-medium
good first issue
T-middle
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
Rustc already has a lint (mutable_transmutes) that catches transmutes from &T to &mut T, which can cause undefined behaviour. However, it doesn't catch minor variations of this problem, like Option<&T> -> Option<&mut T>, which are presumably just as dangerous. I've seen this particular example in real code.
It would be nice to have a lint that catches this case (and ideally, other instances of the same problem, although this could get quite complex in the fully general case).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.