| #![allow(clippy::print_literal)] |
| #![warn(clippy::print_with_newline)] |
| |
| fn main() { |
| eprintln!("Hello"); |
| //~^ print_with_newline |
| |
| eprintln!("Hello {}", "world"); |
| //~^ print_with_newline |
| |
| eprintln!("Hello {} {}", "world", "#2"); |
| //~^ print_with_newline |
| |
| eprintln!("{}", 1265); |
| //~^ print_with_newline |
| |
| eprintln!(); |
| //~^ print_with_newline |
| |
| // these are all fine |
| eprint!(""); |
| eprint!("Hello"); |
| eprintln!("Hello"); |
| eprintln!("Hello\n"); |
| eprintln!("Hello {}\n", "world"); |
| eprint!("Issue\n{}", 1265); |
| eprint!("{}", 1265); |
| eprint!("\n{}", 1275); |
| eprint!("\n\n"); |
| eprint!("like eof\n\n"); |
| eprint!("Hello {} {}\n\n", "world", "#2"); |
| // #3126 |
| eprintln!("\ndon't\nwarn\nfor\nmultiple\nnewlines\n"); |
| // #3126 |
| eprintln!("\nbla\n\n"); |
| |
| // Escaping |
| // #3514 |
| eprint!("\\n"); |
| eprintln!("\\"); |
| //~^ print_with_newline |
| |
| eprint!("\\\\n"); |
| |
| // Raw strings |
| // #3778 |
| eprint!(r"\n"); |
| |
| // Literal newlines should also fail |
| eprintln!( |
| //~^ print_with_newline |
| |
| ); |
| eprintln!( |
| //~^ print_with_newline |
| |
| ); |
| |
| // Don't warn on CRLF (#4208) |
| eprint!("\r\n"); |
| eprint!("foo\r\n"); |
| eprintln!("\\r"); |
| //~^ print_with_newline |
| |
| eprint!("foo\rbar\n"); |
| |
| // Ignore expanded format strings |
| macro_rules! newline { |
| () => { |
| "\n" |
| }; |
| } |
| eprint!(newline!()); |
| } |