rust-lang / rust-lang/rust-clippy
Using `format!` to add a prefix/suffix to `String` and then never using the original `String` again
Open
@prusovak2 is already working on this.
Since May 15, 2025.
A-lint
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
What it does
Detects uses of format! to add a prefix or suffix to a String, and then never accessing the original String again.
Advantage
- Reduces allocations and memory copies
Drawbacks
No response
Example
pub fn example1(val: String) -> String {
format!("a{val}")
}
pub fn example2(val: String) -> String {
format!("abcd{val}")
}
pub fn example3(val: String) -> String {
format!("{val}a")
}
pub fn example4(val: String) -> String {
format!("{val}abcd")
}
Could be written as:
pub fn example1(mut val: String) -> String {
val.insert(0, 'a');
val
}
pub fn example2(mut val: String) -> String {
val.insert_str(0, "abcd");
val
}
pub fn example3(mut val: String) -> String {
val.push('a');
val
}
pub fn example4(mut val: String) -> String {
val.push_str("abcd");
val
}
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.