// run-pass #![allow(dead_code)] use std::mem; enum E { Thing(isize, T), Nothing((), ((), ()), [i8; 0]) } struct S(isize, T); // These are macros so we get useful assert messages. macro_rules! check_option { ($T:ty) => { assert_eq!(mem::size_of::>(), mem::size_of::<$T>()); } } macro_rules! check_fancy { ($T:ty) => { assert_eq!(mem::size_of::>(), mem::size_of::>()); } } macro_rules! check_type { ($T:ty) => {{ check_option!($T); check_fancy!($T); }} } pub fn main() { check_type!(&'static isize); check_type!(Box); check_type!(extern "C" fn()); }