| // 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,); |
| } |