ef72b2cac0
Both regular strings and raw strings can contain literal newlines. This commit extends the lint to also warn about terminating strings with these. Behaviour handling for raw strings is also moved into `check_newlines` by passing in the `is_raw` boolean from `check_tts` as [suggested](https://github.com/rust-lang/rust-clippy/pull/3781#pullrequestreview-204663732)
43 lines
894 B
Rust
43 lines
894 B
Rust
#![allow(clippy::print_literal)]
|
|
#![warn(clippy::print_with_newline)]
|
|
|
|
fn main() {
|
|
print!("Hello\n");
|
|
print!("Hello {}\n", "world");
|
|
print!("Hello {} {}\n", "world", "#2");
|
|
print!("{}\n", 1265);
|
|
|
|
// these are all fine
|
|
print!("");
|
|
print!("Hello");
|
|
println!("Hello");
|
|
println!("Hello\n");
|
|
println!("Hello {}\n", "world");
|
|
print!("Issue\n{}", 1265);
|
|
print!("{}", 1265);
|
|
print!("\n{}", 1275);
|
|
print!("\n\n");
|
|
print!("like eof\n\n");
|
|
print!("Hello {} {}\n\n", "world", "#2");
|
|
println!("\ndon't\nwarn\nfor\nmultiple\nnewlines\n"); // #3126
|
|
println!("\nbla\n\n"); // #3126
|
|
|
|
// Escaping
|
|
print!("\\n"); // #3514
|
|
print!("\\\n"); // should fail
|
|
print!("\\\\n");
|
|
|
|
// Raw strings
|
|
print!(r"\n"); // #3778
|
|
|
|
// Literal newlines should also fail
|
|
print!(
|
|
"
|
|
"
|
|
);
|
|
print!(
|
|
r"
|
|
"
|
|
);
|
|
}
|