diff options
| author | bors <bors@rust-lang.org> | 2022-09-26 09:27:37 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-09-26 09:27:37 +0000 |
| commit | cf93865a5c9f651dfec6f59ce13db4b379339218 (patch) | |
| tree | bc40adb0352c4ac299203752af44392682a27f8a /tests/mir-opt/lower_array_len.array_bound.NormalizeArrayLen.panic-abort.diff | |
| parent | 57c9daa09b36dbecec9266da4d9b789e7b1df225 (diff) | |
| parent | 5a71bbdf3faeedfe5227aecc2a97e566cbbbaf70 (diff) | |
| download | rust-cf93865a5c9f651dfec6f59ce13db4b379339218.tar.gz rust-cf93865a5c9f651dfec6f59ce13db4b379339218.zip | |
Auto merge of #9233 - nyurik:capture-vars, r=Alexendoo
new uninlined_format_args lint to inline explicit arguments
Implement https://github.com/rust-lang/rust-clippy/issues/8368 - a new lint to inline format arguments such as `print!("{}", var)` into `print!("{var}")`.
### Supported cases
code | suggestion | comment
---|---|---
`print!("{}", var)` | `print!("{var}")` | simple variables
`print!("{0}", var)` | `print!("{var}")` | positional variables
`print!("{v}", v=var)` | `print!("{var}")` | named variables
`print!("{0} {0}", var)` | `print!("{var} {var}")` | aliased variables
`print!("{0:1$}", var, width)` | `print!("{var:width$}")` | width support
`print!("{0:.1$}", var, prec)` | `print!("{var:.prec$}")` | precision support
`print!("{:.*}", prec, var)` | `print!("{var:.prec$}")` | asterisk support
### Known Problems
* There may be a false positive if the format string is wrapped in a macro call:
```rust
# let var = 42;
macro_rules! no_param_str { () => { "{}" }; }
macro_rules! pass_through { ($expr:expr) => { $expr }; }
println!(no_param_str!(), var);
println!(pass_through!("{}"), var);
```
* Format string uses an indexed argument that cannot be inlined.
Supporting this case requires re-indexing of the format string.
Until implemented, `print!("{0}={1}", var, 1+2)` should be changed to `print!("{var}={0}", 1+2)` by hand.
changelog: [`uninlined_format_args`]: A new lint to inline format arguments, i.e. `print!("{}", var)` into `print!("{var}")`
Diffstat (limited to 'tests/mir-opt/lower_array_len.array_bound.NormalizeArrayLen.panic-abort.diff')
0 files changed, 0 insertions, 0 deletions
