19 lines
430 B
Rust
19 lines
430 B
Rust
|
// 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))] => {}
|
||
|
_ => {}
|
||
|
}
|
||
|
}
|