#![feature(plugin)] #![plugin(clippy)] #![deny(clippy)] #![allow(unused, if_let_redundant_pattern_matching)] fn main() { #[derive(Debug)] enum Foo { A(String), B, } struct Thingy(Foo); macro_rules! issue_1404 { ($idx:tt) => {{ let thingy = Thingy(Foo::A("Foo".into())); let t = &thingy; match t.$idx { Foo::A(ref val) => { println!("42"); }, _ => {} } //~^ ERROR you seem to be trying to use match //~| HELP try this //~| SUGGESTION if let Foo::A(ref val) = t.$idx { println!("42"); } }} } issue_1404!(0) }