| //@ aux-build:variants.rs |
| |
| extern crate variants; |
| |
| use variants::NonExhaustiveVariants; |
| |
| fn main() { |
| let variant_struct = NonExhaustiveVariants::Struct { field: 640 }; |
| //~^ ERROR cannot create non-exhaustive variant |
| |
| let variant_tuple = NonExhaustiveVariants::Tuple(640); |
| //~^ ERROR tuple variant `Tuple` is private [E0603] |
| |
| let variant_unit = NonExhaustiveVariants::Unit; |
| //~^ ERROR unit variant `Unit` is private [E0603] |
| |
| match variant_struct { |
| NonExhaustiveVariants::Unit => "", |
| //~^ ERROR unit variant `Unit` is private [E0603] |
| NonExhaustiveVariants::Tuple(fe_tpl) => "", |
| //~^ ERROR tuple variant `Tuple` is private [E0603] |
| NonExhaustiveVariants::Struct { field } => "" |
| //~^ ERROR `..` required with variant marked as non-exhaustive |
| }; |
| |
| if let NonExhaustiveVariants::Tuple(fe_tpl) = variant_struct { |
| //~^ ERROR tuple variant `Tuple` is private [E0603] |
| } |
| |
| if let NonExhaustiveVariants::Struct { field } = variant_struct { |
| //~^ ERROR `..` required with variant marked as non-exhaustive |
| } |
| } |