diff options
Diffstat (limited to 'tests/ui/structs-enums/nonzero-enum.rs')
-rw-r--r-- | tests/ui/structs-enums/nonzero-enum.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/structs-enums/nonzero-enum.rs b/tests/ui/structs-enums/nonzero-enum.rs new file mode 100644 index 000000000..15b571be5 --- /dev/null +++ b/tests/ui/structs-enums/nonzero-enum.rs @@ -0,0 +1,30 @@ +// run-pass +#![allow(dead_code)] +use std::mem::size_of; + +enum E { + A = 1, + B = 2, + C = 3, +} + +struct S { + a: u16, + b: u8, + e: E, +} + +fn main() { + assert_eq!(size_of::<E>(), 1); + assert_eq!(size_of::<Option<E>>(), 1); + assert_eq!(size_of::<Result<E, ()>>(), 1); + assert_eq!(size_of::<Option<S>>(), size_of::<S>()); + let enone = None::<E>; + let esome = Some(E::A); + if let Some(..) = enone { + panic!(); + } + if let None = esome { + panic!(); + } +} |