| #![warn(clippy::obfuscated_if_else)] |
| #![allow( |
| clippy::unnecessary_lazy_evaluations, |
| clippy::unit_arg, |
| clippy::unused_unit, |
| clippy::unwrap_or_default |
| )] |
| |
| fn main() { |
| if true { "a" } else { "b" }; |
| //~^ obfuscated_if_else |
| |
| if true { "a" } else { "b" }; |
| //~^ obfuscated_if_else |
| |
| let a = 1; |
| if a == 1 { "a" } else { "b" }; |
| //~^ obfuscated_if_else |
| |
| if a == 1 { "a" } else { "b" }; |
| //~^ obfuscated_if_else |
| |
| let partial = (a == 1).then_some("a"); |
| partial.unwrap_or("b"); // not lint |
| |
| let mut a = 0; |
| if true { a += 1 } else { () }; |
| //~^ obfuscated_if_else |
| |
| if true { () } else { a += 2 }; |
| //~^ obfuscated_if_else |
| |
| let mut n = 1; |
| if true { n = 1 } else { n = 2 }; |
| //~^ obfuscated_if_else |
| if true { 1 } else { n * 2 }; |
| //~^ obfuscated_if_else |
| if true { n += 1 } else { () }; |
| //~^ obfuscated_if_else |
| |
| let _ = if true { 1 } else { n * 2 }; |
| //~^ obfuscated_if_else |
| |
| if true { 1 } else { Default::default() }; |
| //~^ obfuscated_if_else |
| |
| let partial = true.then_some(1); |
| partial.unwrap_or_else(|| n * 2); // not lint |
| |
| if true { () } else { Default::default() }; |
| //~^ obfuscated_if_else |
| |
| if true { () } else { Default::default() }; |
| //~^ obfuscated_if_else |
| |
| if true { 1 } else { Default::default() }; |
| //~^ obfuscated_if_else |
| |
| if true { 1 } else { Default::default() }; |
| //~^ obfuscated_if_else |
| } |
| |
| fn issue11141() { |
| // Parentheses are required around the left side of a binary expression |
| let _ = (if true { 40 } else { 17 }) | 2; |
| //~^ obfuscated_if_else |
| |
| // Parentheses are required only for the leftmost expression |
| let _ = (if true { 30 } else { 17 }) | if true { 2 } else { 3 } | if true { 10 } else { 1 }; |
| //~^ obfuscated_if_else |
| //~| obfuscated_if_else |
| //~| obfuscated_if_else |
| |
| // Parentheses are not required around the right side of a binary expression |
| let _ = 2 | if true { 40 } else { 17 }; |
| //~^ obfuscated_if_else |
| |
| // Parentheses are not required for a cast |
| let _ = if true { 42 } else { 17 } as u8; |
| //~^ obfuscated_if_else |
| |
| // Parentheses are not required for a deref |
| let _ = *if true { &42 } else { &17 }; |
| //~^ obfuscated_if_else |
| |
| // Parentheses are not required for a deref followed by a cast |
| let _ = *if true { &42 } else { &17 } as u8; |
| //~^ obfuscated_if_else |
| } |