| // Can't use unit struct as enum pattern | |
| //@ aux-build:empty-struct.rs | |
| extern crate empty_struct; | |
| use empty_struct::*; | |
| struct Empty2(); | |
| enum E { | |
| Empty4() | |
| } | |
| // remove attribute after warning cycle and promoting warnings to errors | |
| fn main() { | |
| let e2 = Empty2(); | |
| let e4 = E::Empty4(); | |
| let xe6 = XEmpty6(); | |
| let xe5 = XE::XEmpty5(); | |
| match e2 { | |
| Empty2 => () //~ ERROR match bindings cannot shadow tuple structs | |
| } | |
| match xe6 { | |
| XEmpty6 => () //~ ERROR match bindings cannot shadow tuple structs | |
| } | |
| match e4 { | |
| E::Empty4 => () | |
| //~^ ERROR expected unit struct, unit variant or constant, found tuple variant `E::Empty4` | |
| } | |
| match xe5 { | |
| XE::XEmpty5 => (), | |
| //~^ ERROR expected unit struct, unit variant or constant, found tuple variant `XE::XEmpty5` | |
| _ => {}, | |
| } | |
| } |