rust-lang / rust-lang/rust-clippy
New lint: clone on arguments taken by reference
Open
@medzernik is already working on this.
Since May 28, 2026.
A-lint
good first issue
L-unnecessary
T-middle
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
If a function takes an argument by reference, but later calls .clone() on it (or otherwise requires an impl Clone or impl Copy from it), lint that taking it by ownership allows the caller to pass in its memory rather than forcing a clone on the data.
I don't know if this is possible, but can it default to allow on public functions and deny on crate-private functions (due to the API change)?
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.