1 An `enum` with a discriminant must specify a `#[repr(inttype)]`.
3 Erroneous code example:
6 #![feature(arbitrary_enum_discriminant)]
16 A `#[repr(inttype)]` must be provided on an `enum` if it has a non-unit
17 variant with a discriminant, or where there are both unit variants with
18 discriminants and non-unit variants. This restriction ensures that there
19 is a well-defined way to extract a variant's discriminant from a value;
23 #![feature(arbitrary_enum_discriminant)]
35 fn discriminant(v : &Enum) -> u8 {
36 unsafe { *(v as *const Enum as *const u8) }
40 assert_eq!(3, discriminant(&Enum::Unit));
41 assert_eq!(2, discriminant(&Enum::Tuple(5)));
42 assert_eq!(1, discriminant(&Enum::Struct{a: 7, b: 11}));