| //@ run-pass |
| |
| use std::mem; |
| |
| #[allow(dead_code)] |
| struct Trivial(u8, f32); |
| |
| #[allow(dead_code)] |
| struct NonTrivial(u8, String); |
| |
| const CONST_U8: bool = mem::needs_drop::<u8>(); |
| const CONST_STRING: bool = mem::needs_drop::<String>(); |
| const CONST_TRIVIAL: bool = mem::needs_drop::<Trivial>(); |
| const CONST_NON_TRIVIAL: bool = mem::needs_drop::<NonTrivial>(); |
| |
| static STATIC_U8: bool = mem::needs_drop::<u8>(); |
| static STATIC_STRING: bool = mem::needs_drop::<String>(); |
| static STATIC_TRIVIAL: bool = mem::needs_drop::<Trivial>(); |
| static STATIC_NON_TRIVIAL: bool = mem::needs_drop::<NonTrivial>(); |
| |
| fn main() { |
| assert!(!CONST_U8); |
| assert!(CONST_STRING); |
| assert!(!CONST_TRIVIAL); |
| assert!(CONST_NON_TRIVIAL); |
| |
| assert!(!STATIC_U8); |
| assert!(STATIC_STRING); |
| assert!(!STATIC_TRIVIAL); |
| assert!(STATIC_NON_TRIVIAL); |
| } |