2021-05-11 14:34:14 -05:00
|
|
|
#![warn(clippy::needless_bitwise_bool)]
|
2024-02-18 08:39:34 -06:00
|
|
|
#![allow(clippy::const_is_empty)]
|
2021-05-11 14:34:14 -05:00
|
|
|
|
|
|
|
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 {
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
if y & (0 < 1) {
|
|
|
|
println!("true") // This is a BinOp with no side effects
|
|
|
|
}
|
|
|
|
}
|