// Macros can be used for (parts of) the pattern and expression in an if let guard | |
//@ check-pass | |
#![feature(if_let_guard)] | |
#![feature(let_chains)] | |
macro_rules! m { | |
(pattern $i:ident) => { Some($i) }; | |
(expression $e:expr) => { $e }; | |
} | |
fn main() { | |
match () { | |
() if let m!(pattern x) = m!(expression Some(4)) => {} | |
() if let [m!(pattern y)] = [Some(8 + m!(expression 4))] => {} | |
_ => {} | |
} | |
} |