blob: 499d9ee1ca2352405bb47861079ff9d1bb961b71 [file] [log] [blame]
// run-rustfix
#![warn(clippy::unnecessary_trailing_comma)]
fn main() {}
// fmt breaks - https://github.com/rust-lang/rustfmt/issues/6797
#[rustfmt::skip]
fn simple() {
println!["Foo(,)"];
println!("Foo"); //~ unnecessary_trailing_comma
println!{"Foo"}; //~ unnecessary_trailing_comma
println!["Foo"]; //~ unnecessary_trailing_comma
println!("Foo={}", 1); //~ unnecessary_trailing_comma
println!(concat!("b", "o", "o")); //~ unnecessary_trailing_comma
println!("Foo(,)"); //~ unnecessary_trailing_comma
println!("Foo[,]"); //~ unnecessary_trailing_comma
println!["Foo(,)"]; //~ unnecessary_trailing_comma
println!["Foo[,]"]; //~ unnecessary_trailing_comma
println!["Foo{{,}}"]; //~ unnecessary_trailing_comma
println!{"Foo{{,}}"}; //~ unnecessary_trailing_comma
println!{"Foo(,)"}; //~ unnecessary_trailing_comma
println!{"Foo[,]"}; //~ unnecessary_trailing_comma
println!["Foo(,"]; //~ unnecessary_trailing_comma
println!["Foo[,"]; //~ unnecessary_trailing_comma
println!["Foo{{,}}"]; //~ unnecessary_trailing_comma
println!{"Foo{{,}}"}; //~ unnecessary_trailing_comma
println!{"Foo(,"}; //~ unnecessary_trailing_comma
println!{"Foo[,"}; //~ unnecessary_trailing_comma
// This should eventually work, but requires more work
println!(concat!("Foo", "=", "{}"), 1,);
println!("No params", /*"a,){ */);
println!("No params" /* "a,){*/, /*"a,){ */);
// No trailing comma - no lint
println!("{}", 1);
println!(concat!("b", "o", "o"));
println!(concat!("Foo", "=", "{}"), 1);
println!("Foo" );
println!{"Foo" };
println!["Foo" ];
println!("Foo={}", 1);
println!(concat!("b", "o", "o"));
println!("Foo(,)");
println!("Foo[,]");
println!["Foo(,)"];
println!["Foo[,]"];
println!["Foo{{,}}"];
println!{"Foo{{,}}"};
println!{"Foo(,)"};
println!{"Foo[,]"};
println!["Foo(,"];
println!["Foo[,"];
println!["Foo{{,}}"];
println!{"Foo{{,}}"};
println!{"Foo(,"};
println!{"Foo[,"};
// Multi-line macro - must NOT lint (single-line only)
println!(
"very long string to prevent fmt from making it into a single line: {}",
1,
);
print!("{}"
, 1
,);
}
// The macro invocation itself should never be fixed
// The call to println! on the other hand might be ok to suggest in the future
macro_rules! from_macro {
(0,) => {
println!("Foo",);
};
(1,) => {
println!("Foo={}", 1,);
};
}
fn from_macro() {
from_macro!(0,);
from_macro!(1,);
}