2018-08-30 07:18:55 -05:00
|
|
|
// run-pass
|
2017-11-03 14:15:15 -05:00
|
|
|
|
2019-03-22 11:19:12 -05:00
|
|
|
#![feature(non_exhaustive)]
|
2017-11-03 14:15:15 -05:00
|
|
|
|
|
|
|
pub enum NonExhaustiveVariants {
|
|
|
|
#[non_exhaustive] Unit,
|
|
|
|
#[non_exhaustive] Tuple(u32),
|
|
|
|
#[non_exhaustive] Struct { field: u32 }
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let variant_tuple = NonExhaustiveVariants::Tuple(340);
|
|
|
|
let variant_struct = NonExhaustiveVariants::Struct { field: 340 };
|
|
|
|
|
|
|
|
match variant_tuple {
|
|
|
|
NonExhaustiveVariants::Unit => "",
|
|
|
|
NonExhaustiveVariants::Tuple(fe_tpl) => "",
|
|
|
|
NonExhaustiveVariants::Struct { field } => ""
|
|
|
|
};
|
|
|
|
}
|