Fix to_string_in_format_args in parens
Fix suggestions like ``` print!("error: something failed at {}", (Location::caller().to_string())); ``` where the parenthesis enclose some portion of the value.
This commit is contained in:
parent
887ba0c5a4
commit
7717904043
@ -250,7 +250,7 @@ fn check_format_in_format_args(cx: &LateContext<'_>, call_site: Span, name: Symb
|
||||
fn check_to_string_in_format_args(cx: &LateContext<'_>, name: Symbol, value: &Expr<'_>) {
|
||||
if_chain! {
|
||||
if !value.span.from_expansion();
|
||||
if let ExprKind::MethodCall(_, receiver, [], _) = value.kind;
|
||||
if let ExprKind::MethodCall(_, receiver, [], to_string_span) = value.kind;
|
||||
if let Some(method_def_id) = cx.typeck_results().type_dependent_def_id(value.hir_id);
|
||||
if is_diag_trait_item(cx, method_def_id, sym::ToString);
|
||||
let receiver_ty = cx.typeck_results().expr_ty(receiver);
|
||||
@ -266,7 +266,7 @@ fn check_to_string_in_format_args(cx: &LateContext<'_>, name: Symbol, value: &Ex
|
||||
span_lint_and_sugg(
|
||||
cx,
|
||||
TO_STRING_IN_FORMAT_ARGS,
|
||||
value.span.with_lo(receiver.span.hi()),
|
||||
to_string_span.with_lo(receiver.span.hi()),
|
||||
&format!(
|
||||
"`to_string` applied to a type that implements `Display` in `{name}!` args"
|
||||
),
|
||||
|
@ -3,6 +3,7 @@
|
||||
#![allow(unused)]
|
||||
#![allow(
|
||||
clippy::assertions_on_constants,
|
||||
clippy::double_parens,
|
||||
clippy::eq_op,
|
||||
clippy::print_literal,
|
||||
clippy::uninlined_format_args
|
||||
@ -114,6 +115,8 @@ fn main() {
|
||||
println!("error: something failed at {}", my_other_macro!());
|
||||
// https://github.com/rust-lang/rust-clippy/issues/7903
|
||||
println!("{foo}{foo:?}", foo = "foo".to_string());
|
||||
print!("{}", (Location::caller()));
|
||||
print!("{}", ((Location::caller())));
|
||||
}
|
||||
|
||||
fn issue8643(vendor_id: usize, product_id: usize, name: &str) {
|
||||
|
@ -3,6 +3,7 @@
|
||||
#![allow(unused)]
|
||||
#![allow(
|
||||
clippy::assertions_on_constants,
|
||||
clippy::double_parens,
|
||||
clippy::eq_op,
|
||||
clippy::print_literal,
|
||||
clippy::uninlined_format_args
|
||||
@ -114,6 +115,8 @@ fn main() {
|
||||
println!("error: something failed at {}", my_other_macro!());
|
||||
// https://github.com/rust-lang/rust-clippy/issues/7903
|
||||
println!("{foo}{foo:?}", foo = "foo".to_string());
|
||||
print!("{}", (Location::caller().to_string()));
|
||||
print!("{}", ((Location::caller()).to_string()));
|
||||
}
|
||||
|
||||
fn issue8643(vendor_id: usize, product_id: usize, name: &str) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
error: `to_string` applied to a type that implements `Display` in `format!` args
|
||||
--> $DIR/format_args.rs:76:72
|
||||
--> $DIR/format_args.rs:77:72
|
||||
|
|
||||
LL | let _ = format!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
@ -7,136 +7,148 @@ LL | let _ = format!("error: something failed at {}", Location::caller().to_
|
||||
= note: `-D clippy::to-string-in-format-args` implied by `-D warnings`
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `write!` args
|
||||
--> $DIR/format_args.rs:80:27
|
||||
--> $DIR/format_args.rs:81:27
|
||||
|
|
||||
LL | Location::caller().to_string()
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `writeln!` args
|
||||
--> $DIR/format_args.rs:85:27
|
||||
--> $DIR/format_args.rs:86:27
|
||||
|
|
||||
LL | Location::caller().to_string()
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `print!` args
|
||||
--> $DIR/format_args.rs:87:63
|
||||
--> $DIR/format_args.rs:88:63
|
||||
|
|
||||
LL | print!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:88:65
|
||||
--> $DIR/format_args.rs:89:65
|
||||
|
|
||||
LL | println!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `eprint!` args
|
||||
--> $DIR/format_args.rs:89:64
|
||||
--> $DIR/format_args.rs:90:64
|
||||
|
|
||||
LL | eprint!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `eprintln!` args
|
||||
--> $DIR/format_args.rs:90:66
|
||||
--> $DIR/format_args.rs:91:66
|
||||
|
|
||||
LL | eprintln!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `format_args!` args
|
||||
--> $DIR/format_args.rs:91:77
|
||||
--> $DIR/format_args.rs:92:77
|
||||
|
|
||||
LL | let _ = format_args!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `assert!` args
|
||||
--> $DIR/format_args.rs:92:70
|
||||
--> $DIR/format_args.rs:93:70
|
||||
|
|
||||
LL | assert!(true, "error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `assert_eq!` args
|
||||
--> $DIR/format_args.rs:93:73
|
||||
--> $DIR/format_args.rs:94:73
|
||||
|
|
||||
LL | assert_eq!(0, 0, "error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `assert_ne!` args
|
||||
--> $DIR/format_args.rs:94:73
|
||||
--> $DIR/format_args.rs:95:73
|
||||
|
|
||||
LL | assert_ne!(0, 0, "error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `panic!` args
|
||||
--> $DIR/format_args.rs:95:63
|
||||
--> $DIR/format_args.rs:96:63
|
||||
|
|
||||
LL | panic!("error: something failed at {}", Location::caller().to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:96:20
|
||||
--> $DIR/format_args.rs:97:20
|
||||
|
|
||||
LL | println!("{}", X(1).to_string());
|
||||
| ^^^^^^^^^^^^^^^^ help: use this: `*X(1)`
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:97:20
|
||||
--> $DIR/format_args.rs:98:20
|
||||
|
|
||||
LL | println!("{}", Y(&X(1)).to_string());
|
||||
| ^^^^^^^^^^^^^^^^^^^^ help: use this: `***Y(&X(1))`
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:98:24
|
||||
--> $DIR/format_args.rs:99:24
|
||||
|
|
||||
LL | println!("{}", Z(1).to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:99:20
|
||||
--> $DIR/format_args.rs:100:20
|
||||
|
|
||||
LL | println!("{}", x.to_string());
|
||||
| ^^^^^^^^^^^^^ help: use this: `**x`
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:100:20
|
||||
--> $DIR/format_args.rs:101:20
|
||||
|
|
||||
LL | println!("{}", x_ref.to_string());
|
||||
| ^^^^^^^^^^^^^^^^^ help: use this: `***x_ref`
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:102:39
|
||||
--> $DIR/format_args.rs:103:39
|
||||
|
|
||||
LL | println!("{foo}{bar}", foo = "foo".to_string(), bar = "bar");
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:103:52
|
||||
--> $DIR/format_args.rs:104:52
|
||||
|
|
||||
LL | println!("{foo}{bar}", foo = "foo", bar = "bar".to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:104:39
|
||||
--> $DIR/format_args.rs:105:39
|
||||
|
|
||||
LL | println!("{foo}{bar}", bar = "bar".to_string(), foo = "foo");
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:105:52
|
||||
--> $DIR/format_args.rs:106:52
|
||||
|
|
||||
LL | println!("{foo}{bar}", bar = "bar", foo = "foo".to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `print!` args
|
||||
--> $DIR/format_args.rs:118:37
|
||||
|
|
||||
LL | print!("{}", (Location::caller().to_string()));
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `print!` args
|
||||
--> $DIR/format_args.rs:119:39
|
||||
|
|
||||
LL | print!("{}", ((Location::caller()).to_string()));
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `format!` args
|
||||
--> $DIR/format_args.rs:144:38
|
||||
--> $DIR/format_args.rs:147:38
|
||||
|
|
||||
LL | let x = format!("{} {}", a, b.to_string());
|
||||
| ^^^^^^^^^^^^ help: remove this
|
||||
|
||||
error: `to_string` applied to a type that implements `Display` in `println!` args
|
||||
--> $DIR/format_args.rs:158:24
|
||||
--> $DIR/format_args.rs:161:24
|
||||
|
|
||||
LL | println!("{}", original[..10].to_string());
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use this: `&original[..10]`
|
||||
|
||||
error: aborting due to 23 previous errors
|
||||
error: aborting due to 25 previous errors
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user