| #![warn(clippy::needless_bitwise_bool)] | |
| #![allow(clippy::const_is_empty)] | |
| fn returns_bool() -> bool { | |
| true | |
| } | |
| const fn const_returns_bool() -> bool { | |
| false | |
| } | |
| fn main() { | |
| let (x, y) = (false, true); | |
| if x & y { | |
| println!("true") | |
| } | |
| if returns_bool() & x { | |
| println!("true") | |
| } | |
| if !returns_bool() & returns_bool() { | |
| println!("true") | |
| } | |
| if y && !x { | |
| //~^ needless_bitwise_bool | |
| println!("true") | |
| } | |
| // BELOW: lints we hope to catch as `Expr::can_have_side_effects` improves. | |
| if y & !const_returns_bool() { | |
| println!("true") // This is a const function, in an UnOp | |
| } | |
| if y & "abcD".is_empty() { | |
| println!("true") // This is a const method call | |
| } | |
| // Resolved | |
| if y && (0 < 1) { | |
| //~^ needless_bitwise_bool | |
| println!("true") // This is a BinOp with no side effects | |
| } | |
| } |