| // 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 | |
| println!(concat!("Foo", "=", "{}"), 1); //~ unnecessary_trailing_comma | |
| // This should eventually work, but requires more work | |
| 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,); | |
| } |