1 #![warn(clippy::if_same_then_else)]
3 clippy::blacklisted_name,
4 clippy::collapsible_if,
5 clippy::cognitive_complexity,
7 clippy::needless_return,
10 clippy::zero_divided_by_zero,
22 fn if_same_then_else() -> Result<&'static str, ()> {
32 //~ ERROR same body as `if` block
70 //~ ERROR same body as `if` block
77 //~ ERROR same body as `if` block
81 let _ = if true { 0.0 } else { -0.0 };
84 let _ = if true { 0.0 / 0.0 } else { std::f32::NAN };
93 //~ ERROR same body as `if` block
99 let foo: &Option<_> = &Some::<u8>(42);
107 //~ ERROR same body as `if` block
109 let foo: &Option<_> = &Some::<u8>(42);
119 let bar = if true { 42 } else { 43 };
126 //~ ERROR same body as `if` block
127 let bar = if true { 42 } else { 43 };
154 if let Some(a) = Some(42) {}
156 //~ ERROR same body as `if` block
157 if let Some(a) = Some(42) {}
161 if let (1, .., 3) = (1, 2, 3) {}
163 //~ ERROR same body as `if` block
164 if let (1, .., 3) = (1, 2, 3) {}
168 if let (1, .., 3) = (1, 2, 3) {}
170 if let (.., 3) = (1, 2, 3) {}
174 if let (1, .., 3) = (1, 2, 3) {}
176 if let (.., 4) = (1, 2, 3) {}
180 if let (1, .., 3) = (1, 2, 3) {}
182 if let (.., 1, 3) = (1, 2, 3) {}
186 if let Some(42) = None {}
188 if let Option::Some(42) = None {}
192 if let Some(42) = None::<u8> {}
194 if let Some(42) = None {}
198 if let Some(42) = None::<u8> {}
200 if let Some(42) = None::<u32> {}
204 if let Some(a) = Some(42) {}
206 if let Some(a) = Some(43) {}
213 //~ ERROR same body as `if` block
220 //~ ERROR same body as `if` block
226 return Ok(&foo[0..]);
229 return Ok(&foo[0..]);
232 return Ok(&foo[0..]);
237 return Ok(&foo[0..]);
240 return Ok(&foo[0..]);
243 return Ok(&foo[0..]);
246 return Ok(&foo[0..]);
249 // False positive `if_same_then_else`: `let (x, y)` vs. `let (y, x)`; see issue #3559.
253 return Ok(&foo[x..y]);
257 return Ok(&foo[x..y]);
261 // Issue #2423. This was causing an ICE.