]> git.lizzy.rs Git - rust.git/blob - src/tools/clippy/tests/ui/write_with_newline.rs
Rollup merge of #100291 - WaffleLapkin:cstr_const_methods, r=oli-obk
[rust.git] / src / tools / clippy / 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!(v, "Hello\n");
14     write!(v, "Hello {}\n", "world");
15     write!(v, "Hello {} {}\n", "world", "#2");
16     write!(v, "{}\n", 1265);
17     write!(v, "\n");
18
19     // These should be fine
20     write!(v, "");
21     write!(v, "Hello");
22     writeln!(v, "Hello");
23     writeln!(v, "Hello\n");
24     writeln!(v, "Hello {}\n", "world");
25     write!(v, "Issue\n{}", 1265);
26     write!(v, "{}", 1265);
27     write!(v, "\n{}", 1275);
28     write!(v, "\n\n");
29     write!(v, "like eof\n\n");
30     write!(v, "Hello {} {}\n\n", "world", "#2");
31     writeln!(v, "\ndon't\nwarn\nfor\nmultiple\nnewlines\n"); // #3126
32     writeln!(v, "\nbla\n\n"); // #3126
33
34     // Escaping
35     write!(v, "\\n"); // #3514
36     write!(v, "\\\n"); // should fail
37     write!(v, "\\\\n");
38
39     // Raw strings
40     write!(v, r"\n"); // #3778
41
42     // Literal newlines should also fail
43     write!(
44         v,
45         "
46 "
47     );
48     write!(
49         v,
50         r"
51 "
52     );
53
54     // Don't warn on CRLF (#4208)
55     write!(v, "\r\n");
56     write!(v, "foo\r\n");
57     write!(v, "\\r\n"); //~ ERROR
58     write!(v, "foo\rbar\n");
59 }