#![warn(clippy::redundant_pattern_matching)] #![allow(clippy::needless_if, clippy::no_effect, clippy::nonminimal_bool)] macro_rules! condition { () => { true }; } macro_rules! lettrue { (if) => { if let true = true {} }; (while) => { while let true = true {} }; } fn main() { let mut k = 5; if let true = k > 1 {} if let false = k > 5 {} if let (true) = k > 1 {} if let (true, true) = (k > 1, k > 2) {} while let true = k > 1 { k += 1; } while let true = condition!() { k += 1; } matches!(k > 5, true); matches!(k > 5, false); // Whole loop is from a macro expansion, don't lint: lettrue!(if); lettrue!(while); }