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