about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDutchGhost <kasper199914@gmail.com>2020-03-18 21:08:52 +0100
committerDutchGhost <kasper199914@gmail.com>2020-03-18 21:08:52 +0100
commit4c363e3e8af35c8e45333b522cb0d7b1a284c665 (patch)
tree8320dea08648351d3a78263fc705c139c11fae6b
parent0760803c06ff4128405ea22e390625938a15bcb2 (diff)
downloadrust-4c363e3e8af35c8e45333b522cb0d7b1a284c665.tar.gz
rust-4c363e3e8af35c8e45333b522cb0d7b1a284c665.zip
Move the const-forget test into ui tests
-rw-r--r--src/libcore/tests/mem.rs18
-rw-r--r--src/test/ui/consts/const_forget.rs22
2 files changed, 22 insertions, 18 deletions
diff --git a/src/libcore/tests/mem.rs b/src/libcore/tests/mem.rs
index ab6f08fb3ad..59588d97787 100644
--- a/src/libcore/tests/mem.rs
+++ b/src/libcore/tests/mem.rs
@@ -129,21 +129,3 @@ fn test_discriminant_send_sync() {
     is_send_sync::<Discriminant<Regular>>();
     is_send_sync::<Discriminant<NotSendSync>>();
 }
-
-#[test]
-fn test_const_forget() {
-    const _: () = forget(0i32);
-    const _: () = forget(Vec::<Vec<Box<i32>>>::new());
-
-    // Writing this function signature without const-forget
-    // triggers compiler errors:
-    // 1) That we use a non-const fn inside a const fn
-    // 2) without the forget, it complains about the destructor of Box
-    //
-    // FIXME: this method cannot be called in const-eval yet, as Box isn't
-    // const constructable
-    #[allow(unused)]
-    const fn const_forget_box<T: ?Sized>(x: Box<T>) {
-        forget(x);
-    }
-}
diff --git a/src/test/ui/consts/const_forget.rs b/src/test/ui/consts/const_forget.rs
new file mode 100644
index 00000000000..5dcad9be54f
--- /dev/null
+++ b/src/test/ui/consts/const_forget.rs
@@ -0,0 +1,22 @@
+// run-pass
+
+#![feature(const_forget)]
+
+use std::mem::forget;
+
+const _: () = forget(0i32);
+const _: () = forget(Vec::<Vec<Box<i32>>>::new());
+
+// Writing this function signature without const-forget
+// triggers compiler errors:
+// 1) That we use a non-const fn inside a const fn
+// 2) without the forget, it complains about the destructor of Box
+//
+// FIXME: this method cannot be called in const-eval yet, as Box isn't
+// const constructable
+#[allow(unused)]
+const fn const_forget_box<T: ?Sized>(b: Box<T>) {
+    forget(b);
+}
+
+fn main() {}