]> git.lizzy.rs Git - rust.git/blob - tests/ui/write_with_newline.rs
Don't lint `if_same_then_else` with `if let` conditions
[rust.git] / tests / ui / write_with_newline.rs
1 // FIXME: Ideally these suggestions would be fixed via rustfix. Blocked by rust-lang/rust#53934
2 // // run-rustfix
3
4 #![allow(clippy::write_literal)]
5 #![warn(clippy::write_with_newline)]
6
7 use std::io::Write;
8
9 fn main() {
10     let mut v = Vec::new();
11
12     // These should fail
13     write!(&mut v, "Hello\n");
14     write!(&mut v, "Hello {}\n", "world");
15     write!(&mut v, "Hello {} {}\n", "world", "#2");
16     write!(&mut v, "{}\n", 1265);
17     write!(&mut v, "\n");
18
19     // These should be fine
20     write!(&mut v, "");
21     write!(&mut v, "Hello");
22     writeln!(&mut v, "Hello");
23     writeln!(&mut v, "Hello\n");
24     writeln!(&mut v, "Hello {}\n", "world");
25     write!(&mut v, "Issue\n{}", 1265);
26     write!(&mut v, "{}", 1265);
27     write!(&mut v, "\n{}", 1275);
28     write!(&mut v, "\n\n");
29     write!(&mut v, "like eof\n\n");
30     write!(&mut v, "Hello {} {}\n\n", "world", "#2");
31     writeln!(&mut v, "\ndon't\nwarn\nfor\nmultiple\nnewlines\n"); // #3126
32     writeln!(&mut v, "\nbla\n\n"); // #3126
33
34     // Escaping
35     write!(&mut v, "\\n"); // #3514
36     write!(&mut v, "\\\n"); // should fail
37     write!(&mut v, "\\\\n");
38
39     // Raw strings
40     write!(&mut v, r"\n"); // #3778
41
42     // Literal newlines should also fail
43     write!(
44         &mut v,
45         "
46 "
47     );
48     write!(
49         &mut v,
50         r"
51 "
52     );
53
54     // Don't warn on CRLF (#4208)
55     write!(&mut v, "\r\n");
56     write!(&mut v, "foo\r\n");
57     write!(&mut v, "\\r\n"); //~ ERROR
58     write!(&mut v, "foo\rbar\n");
59 }