macro_rules! arm { ($pattern:pat => $block:block) => { $pattern => $block }; } fn main() { let x = Some(1); match x { Some(1) => {}, arm!(None => {}), //~^ NOTE macros cannot expand to match arms //~| ERROR unexpected `,` in pattern // doesn't recover Some(2) => {}, _ => {}, }; }