]> git.lizzy.rs Git - rust.git/commit
new uninlined_format_args lint to inline explicit arguments
authorYuri Astrakhan <YuriAstrakhan@gmail.com>
Wed, 14 Sep 2022 16:25:48 +0000 (12:25 -0400)
committerYuri Astrakhan <YuriAstrakhan@gmail.com>
Sun, 25 Sep 2022 23:53:03 +0000 (19:53 -0400)
commit5a71bbdf3faeedfe5227aecc2a97e566cbbbaf70
treebc40adb0352c4ac299203752af44392682a27f8a
parent57c9daa09b36dbecec9266da4d9b789e7b1df225
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}")`.

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

code | suggestion | comment
---|---|---
`print!("{0}={1}", var, 1+2)` | `print!("{var}={0}", 1+2)` | Format
string uses an indexed argument that cannot be inlined.  Supporting this
case requires re-indexing of the format string.

changelog: [`uninlined_format_args`]: A new lint to inline format
arguments, i.e. `print!("{}", var)` into `print!("{var}")`
15 files changed:
CHANGELOG.md
clippy_lints/src/format_args.rs
clippy_lints/src/lib.register_lints.rs
clippy_lints/src/lib.register_pedantic.rs
clippy_lints/src/lib.rs
clippy_lints/src/utils/conf.rs
clippy_lints/src/write.rs
clippy_utils/src/macros.rs
clippy_utils/src/msrvs.rs
clippy_utils/src/source.rs
src/docs.rs
src/docs/uninlined_format_args.txt [new file with mode: 0644]
tests/ui/uninlined_format_args.fixed [new file with mode: 0644]
tests/ui/uninlined_format_args.rs [new file with mode: 0644]
tests/ui/uninlined_format_args.stderr [new file with mode: 0644]