2 #![feature(custom_inner_attributes)]
3 #![warn(clippy::uninlined_format_args)]
4 #![allow(named_arguments_used_positionally, unused_imports, unused_macros, unused_variables)]
5 #![allow(clippy::eq_op, clippy::format_in_format_args, clippy::print_literal)]
7 macro_rules! no_param_str {
13 macro_rules! pass_through {
19 macro_rules! my_println {
25 macro_rules! my_println_args {
27 println!("foo: {}", format_args!($($args),*))
31 fn tester(fn_arg: i32) {
34 let local_opt: Option<i32> = Some(3);
39 // make sure this file hasn't been corrupted with tabs converted to spaces
40 // let _ = ' '; // <- this is a single tab character
41 let _: &[u8; 3] = b" "; // <- <tab><space><tab>
43 println!("val='{local_i32}'");
44 println!("val='{local_i32}'"); // 3 spaces
45 println!("val='{local_i32}'"); // tab
46 println!("val='{local_i32}'"); // space+tab
47 println!("val='{local_i32}'"); // tab+space
51 println!("{local_i32}");
53 println!("{local_i32:?}");
54 println!("{local_i32:#?}");
55 println!("{local_i32:4}");
56 println!("{local_i32:04}");
57 println!("{local_i32:<3}");
58 println!("{local_i32:#010x}");
59 println!("{local_f64:.1}");
60 println!("Hello {} is {local_f64:.local_i32$}", "x");
61 println!("Hello {local_i32} is {local_f64:.*}", 5);
62 println!("Hello {local_i32} is {local_f64:.*}", 5);
63 println!("{local_i32} {local_f64}");
64 println!("{local_i32}, {}", local_opt.unwrap());
67 println!("{} {1}", local_i32, 42);
68 println!("val='{local_i32}'");
69 println!("val='{local_i32}'");
70 println!("val='{local_i32}'");
71 println!("val='{fn_arg}'");
72 println!("{local_i32}");
73 println!("{local_i32:?}");
74 println!("{local_i32:#?}");
75 println!("{local_i32:04}");
76 println!("{local_i32:<3}");
77 println!("{local_i32:#010x}");
78 println!("{local_f64:.1}");
79 println!("{local_i32} {local_i32}");
80 println!("{local_f64} {local_i32} {local_i32} {local_f64}");
81 println!("{local_i32} {local_f64}");
82 println!("{local_f64} {local_i32}");
83 println!("{local_f64} {local_i32} {local_f64} {local_i32}");
84 println!("{1} {0}", "str", local_i32);
85 println!("{local_i32}");
86 println!("{local_i32:width$}");
87 println!("{local_i32:width$}");
88 println!("{local_i32:.prec$}");
89 println!("{local_i32:.prec$}");
90 println!("{val:val$}");
91 println!("{val:val$}");
92 println!("{val:val$.val$}");
93 println!("{val:val$.val$}");
94 println!("{val:val$.val$}");
95 println!("{val:val$.val$}");
96 println!("{val:val$.val$}");
97 println!("{val:val$.val$}");
98 println!("{val:val$.val$}");
99 println!("{val:val$.val$}");
100 println!("{width:width$}");
101 println!("{local_i32:width$}");
102 println!("{width:width$}");
103 println!("{local_i32:width$}");
104 println!("{prec:.prec$}");
105 println!("{local_i32:.prec$}");
106 println!("{prec:.prec$}");
107 println!("{local_i32:.prec$}");
108 println!("{width:width$.prec$}");
109 println!("{width:width$.prec$}");
110 println!("{local_f64:width$.prec$}");
111 println!("{local_f64:width$.prec$} {local_f64} {width} {prec}");
113 "{local_i32:width$.prec$} {local_i32:prec$.width$} {width:local_i32$.prec$} {width:prec$.local_i32$} {prec:local_i32$.width$} {prec:width$.local_i32$}",
116 "{0:1$.2$} {0:2$.1$} {1:0$.2$} {1:2$.0$} {2:0$.1$} {2:1$.0$} {3}",
122 println!("Width = {local_i32}, value with width = {local_f64:local_i32$}");
123 println!("{local_i32:width$.prec$}");
124 println!("{width:width$.prec$}");
125 println!("{}", format!("{local_i32}"));
126 my_println!("{}", local_i32);
127 my_println_args!("{}", local_i32);
129 // these should NOT be modified by the lint
130 println!(concat!("nope ", "{}"), local_i32);
131 println!("val='{local_i32}'");
132 println!("val='{local_i32 }'");
133 println!("val='{local_i32 }'"); // with tab
134 println!("val='{local_i32\n}'");
135 println!("{}", usize::MAX);
136 println!("{}", local_opt.unwrap());
141 println!(no_param_str!(), local_i32);
144 // println!(pass_through!("foo={local_i32}"), local_i32 = local_i32);
145 // println!(pass_through!("foo={}"), local_i32);
146 // println!(indoc!("foo={}"), local_i32);
147 // printdoc!("foo={}", local_i32);
155 #![clippy::msrv = "1.57"]
157 println!("don't expand='{}'", local_i32);
161 #![clippy::msrv = "1.58"]
163 println!("expand='{local_i32}'");