| #![crate_type = "lib"] |
| #![deny(unreachable_patterns)] |
| |
| mod test_struct { |
| // Test the exact copy of the minimal example |
| // posted in the issue. |
| pub struct Punned { |
| foo: [u8; 1], |
| bar: [u8; 1], |
| } |
| |
| pub fn test(punned: Punned) { |
| match punned { |
| Punned { foo: [_], .. } => println!("foo"), |
| Punned { bar: [_], .. } => println!("bar"), |
| //~^ ERROR unreachable pattern [unreachable_patterns] |
| } |
| } |
| } |
| |
| mod test_union { |
| // Test the same thing using a union. |
| pub union Punned { |
| foo: [u8; 1], |
| bar: [u8; 1], |
| } |
| |
| pub fn test(punned: Punned) { |
| unsafe { |
| match punned { |
| Punned { foo: [_] } => println!("foo"), |
| Punned { bar: [_] } => println!("bar"), |
| //~^ ERROR unreachable pattern [unreachable_patterns] |
| } |
| } |
| } |
| } |