1 // run-pass
2 macro_rules! pat_in {
3     ($p:pat in $e:expr) => {{
4         let mut iter = $e.into_iter();
5         while let $p = iter.next() {}
6     }};
7 }
8 
9 macro_rules! pat_if {
10     ($p:pat if $e:expr) => {{
11         match Some(1u8) {
12             $p if $e => {}
13             _ => {}
14         }
15     }};
16 }
17 
main()18 fn main() {
19     pat_in!(Some(_) in 0..10);
20     pat_if!(Some(x) if x > 0);
21 }
22