### What it does Checks for uses of bitwise and/or operators between booleans, where performance may be improved by using a lazy and. ### Why is this bad? The bitwise operators do not support short-circuiting, so it may hinder code performance. Additionally, boolean logic "masked" as bitwise logic is not caught by lints like `unnecessary_fold` ### Known problems This lint evaluates only when the right side is determined to have no side effects. At this time, that determination is quite conservative. ### Example ``` let (x,y) = (true, false); if x & !y {} // where both x and y are booleans ``` Use instead: ``` let (x,y) = (true, false); if x && !y {} ```