3 #![allow(clippy::eq_op)]
4 #![allow(clippy::format_in_format_args)]
5 #![allow(clippy::print_literal)]
6 #![allow(named_arguments_used_positionally)]
7 #![allow(unused_variables, unused_imports, unused_macros)]
8 #![warn(clippy::uninlined_format_args)]
9 #![feature(custom_inner_attributes)]
11 macro_rules! no_param_str {
17 macro_rules! pass_through {
23 macro_rules! my_println {
29 macro_rules! my_println_args {
31 println!("foo: {}", format_args!($($args),*))
35 fn tester(fn_arg: i32) {
38 let local_opt: Option<i32> = Some(3);
43 // make sure this file hasn't been corrupted with tabs converted to spaces
44 // let _ = ' '; // <- this is a single tab character
45 let _: &[u8; 3] = b" "; // <- <tab><space><tab>
47 println!("val='{local_i32}'");
48 println!("val='{local_i32}'"); // 3 spaces
49 println!("val='{local_i32}'"); // tab
50 println!("val='{local_i32}'"); // space+tab
51 println!("val='{local_i32}'"); // tab+space
55 println!("{local_i32}");
57 println!("{local_i32:?}");
58 println!("{local_i32:#?}");
59 println!("{local_i32:4}");
60 println!("{local_i32:04}");
61 println!("{local_i32:<3}");
62 println!("{local_i32:#010x}");
63 println!("{local_f64:.1}");
64 println!("Hello {} is {local_f64:.local_i32$}", "x");
65 println!("Hello {local_i32} is {local_f64:.*}", 5);
66 println!("Hello {local_i32} is {local_f64:.*}", 5);
67 println!("{local_i32} {local_f64}");
68 println!("{local_i32}, {}", local_opt.unwrap());
71 println!("{} {1}", local_i32, 42);
72 println!("val='{local_i32}'");
73 println!("val='{local_i32}'");
74 println!("val='{local_i32}'");
75 println!("val='{fn_arg}'");
76 println!("{local_i32}");
77 println!("{local_i32:?}");
78 println!("{local_i32:#?}");
79 println!("{local_i32:04}");
80 println!("{local_i32:<3}");
81 println!("{local_i32:#010x}");
82 println!("{local_f64:.1}");
83 println!("{local_i32} {local_i32}");
84 println!("{local_f64} {local_i32} {local_i32} {local_f64}");
85 println!("{local_i32} {local_f64}");
86 println!("{local_f64} {local_i32}");
87 println!("{local_f64} {local_i32} {local_f64} {local_i32}");
88 println!("{1} {0}", "str", local_i32);
89 println!("{local_i32}");
90 println!("{local_i32:width$}");
91 println!("{local_i32:width$}");
92 println!("{local_i32:.prec$}");
93 println!("{local_i32:.prec$}");
94 println!("{val:val$}");
95 println!("{val:val$}");
96 println!("{val:val$.val$}");
97 println!("{val:val$.val$}");
98 println!("{val:val$.val$}");
99 println!("{val:val$.val$}");
100 println!("{val:val$.val$}");
101 println!("{val:val$.val$}");
102 println!("{val:val$.val$}");
103 println!("{val:val$.val$}");
104 println!("{width:width$}");
105 println!("{local_i32:width$}");
106 println!("{width:width$}");
107 println!("{local_i32:width$}");
108 println!("{prec:.prec$}");
109 println!("{local_i32:.prec$}");
110 println!("{prec:.prec$}");
111 println!("{local_i32:.prec$}");
112 println!("{width:width$.prec$}");
113 println!("{width:width$.prec$}");
114 println!("{local_f64:width$.prec$}");
115 println!("{local_f64:width$.prec$} {local_f64} {width} {prec}");
117 "{local_i32:width$.prec$} {local_i32:prec$.width$} {width:local_i32$.prec$} {width:prec$.local_i32$} {prec:local_i32$.width$} {prec:width$.local_i32$}",
120 "{0:1$.2$} {0:2$.1$} {1:0$.2$} {1:2$.0$} {2:0$.1$} {2:1$.0$} {3}",
126 println!("Width = {local_i32}, value with width = {local_f64:local_i32$}");
127 println!("{local_i32:width$.prec$}");
128 println!("{width:width$.prec$}");
129 println!("{}", format!("{local_i32}"));
130 my_println!("{}", local_i32);
131 my_println_args!("{}", local_i32);
133 // these should NOT be modified by the lint
134 println!(concat!("nope ", "{}"), local_i32);
135 println!("val='{local_i32}'");
136 println!("val='{local_i32 }'");
137 println!("val='{local_i32 }'"); // with tab
138 println!("val='{local_i32\n}'");
139 println!("{}", usize::MAX);
140 println!("{}", local_opt.unwrap());
145 println!(no_param_str!(), local_i32);
148 // println!(pass_through!("foo={local_i32}"), local_i32 = local_i32);
149 // println!(pass_through!("foo={}"), local_i32);
150 // println!(indoc!("foo={}"), local_i32);
151 // printdoc!("foo={}", local_i32);
159 #![clippy::msrv = "1.57"]
161 println!("don't expand='{}'", local_i32);
165 #![clippy::msrv = "1.58"]
167 println!("expand='{local_i32}'");