rust-clippy/tests/ui/eprint_with_newline.rs

71 lines
2 KiB
Rust

#![allow(clippy::print_literal)]
#![warn(clippy::print_with_newline)]
fn main() {
eprint!("Hello\n");
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
//~| NOTE: `-D clippy::print-with-newline` implied by `-D warnings`
eprint!("Hello {}\n", "world");
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
eprint!("Hello {} {}\n", "world", "#2");
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
eprint!("{}\n", 1265);
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
eprint!("\n");
//~^ ERROR: using `eprint!()` with a format string that ends in a single 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");
eprint!("\\\n");
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
eprint!("\\\\n");
// Raw strings
// #3778
eprint!(r"\n");
// Literal newlines should also fail
eprint!(
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
"
"
);
eprint!(
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
r"
"
);
// Don't warn on CRLF (#4208)
eprint!("\r\n");
eprint!("foo\r\n");
eprint!("\\r\n");
//~^ ERROR: using `eprint!()` with a format string that ends in a single newline
eprint!("foo\rbar\n");
// Ignore expanded format strings
macro_rules! newline {
() => {
"\n"
};
}
eprint!(newline!());
}