]> git.lizzy.rs Git - rust.git/commitdiff
rather than removing const_forget_box, stick an attribute on it and explain it cant...
authorDutchGhost <kasper199914@gmail.com>
Mon, 16 Mar 2020 13:45:37 +0000 (14:45 +0100)
committerDutchGhost <kasper199914@gmail.com>
Mon, 16 Mar 2020 13:45:37 +0000 (14:45 +0100)
src/libcore/tests/mem.rs

index 1502c9ac3753b0ee4b3ac177fdd68cb685270d71..ab6f08fb3ada412450bd29157c4c6948ad9f1748 100644 (file)
@@ -134,4 +134,16 @@ fn is_send_sync<T: Send + Sync>() {}
 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);
+    }
 }