| // 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` |
| _ => {}, |
| } |
| } |