#![feature(never_patterns)] #![allow(incomplete_features)] enum Void {} fn main() {} macro_rules! never { () => { ! } } fn no_arms_or_guards(x: Void) { match None:: { Some(!) => {} //~^ ERROR a never pattern is always unreachable None => {} } match None:: { //~ ERROR: `Some(_)` not covered Some(!) if true, //~^ ERROR guard on a never pattern None => {} } match None:: { //~ ERROR: `Some(_)` not covered Some(!) if true => {} //~^ ERROR a never pattern is always unreachable None => {} } match None:: { Some(never!()) => {} //~^ ERROR a never pattern is always unreachable None => {} } }