macro_rules! arm { ($pattern:pat => $block:block) => { $pattern => $block //~^ ERROR macro expansion ignores `=>` and any tokens following //~| NOTE the usage of `arm!` is likely invalid in pattern context //~| NOTE macros cannot expand to match arms }; } fn main() { let x = Some(1); match x { Some(1) => {}, arm!(None => {}), //~^ NOTE caused by the macro expansion here //~| ERROR `match` arm with no body Some(2) => {}, _ => {}, }; }