| // Check that never patterns can't have bodies or guards. | 
 | #![feature(never_patterns)] | 
 | #![allow(incomplete_features)] | 
 |  | 
 | enum Void {} | 
 |  | 
 | fn main() {} | 
 |  | 
 | macro_rules! never { | 
 |     () => { ! } | 
 | } | 
 |  | 
 | fn no_arms_or_guards(x: Void) { | 
 |     match &None::<Void> { | 
 |         Some(!) => {} | 
 |         //~^ ERROR a never pattern is always unreachable | 
 |         None => {} | 
 |     } | 
 |     match &None::<Void> { //~ ERROR: `&Some(!)` not covered | 
 |         Some(!) if true, | 
 |         //~^ ERROR guard on a never pattern | 
 |         None => {} | 
 |     } | 
 |     match &None::<Void> { //~ ERROR: `&Some(!)` not covered | 
 |         Some(!) if true => {} | 
 |         //~^ ERROR a never pattern is always unreachable | 
 |         None => {} | 
 |     } | 
 |     match &None::<Void> { | 
 |         Some(never!()) => {} | 
 |         //~^ ERROR a never pattern is always unreachable | 
 |         None => {} | 
 |     } | 
 | } |