30 lines
645 B
Plaintext
30 lines
645 B
Plaintext
|
#![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)
|
||
|
}
|