summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/const-needs_drop.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/consts/const-needs_drop.rs')
-rw-r--r--src/test/ui/consts/const-needs_drop.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/consts/const-needs_drop.rs b/src/test/ui/consts/const-needs_drop.rs
new file mode 100644
index 000000000..11ee7084c
--- /dev/null
+++ b/src/test/ui/consts/const-needs_drop.rs
@@ -0,0 +1,31 @@
+// run-pass
+
+use std::mem;
+
+#[allow(unused_tuple_struct_fields)]
+struct Trivial(u8, f32);
+
+#[allow(unused_tuple_struct_fields)]
+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);
+}