about summary refs log tree commit diff
path: root/src/test/ui/rfc-2632-const-trait-impl/const-drop-fail.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/rfc-2632-const-trait-impl/const-drop-fail.rs')
-rw-r--r--src/test/ui/rfc-2632-const-trait-impl/const-drop-fail.rs62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-drop-fail.rs b/src/test/ui/rfc-2632-const-trait-impl/const-drop-fail.rs
deleted file mode 100644
index d36c7f81ced..00000000000
--- a/src/test/ui/rfc-2632-const-trait-impl/const-drop-fail.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-// revisions: stock precise
-#![feature(const_trait_impl)]
-#![feature(const_mut_refs)]
-#![cfg_attr(precise, feature(const_precise_live_drops))]
-
-use std::marker::{Destruct, PhantomData};
-
-struct NonTrivialDrop;
-
-impl Drop for NonTrivialDrop {
-    fn drop(&mut self) {
-        println!("Non trivial drop");
-    }
-}
-
-struct ConstImplWithDropGlue(NonTrivialDrop);
-
-impl const Drop for ConstImplWithDropGlue {
-    fn drop(&mut self) {}
-}
-
-#[const_trait]
-trait A { fn a() { } }
-
-impl A for NonTrivialDrop {}
-
-struct ConstDropImplWithBounds<T: ~const A>(PhantomData<T>);
-
-impl<T: ~const A> const Drop for ConstDropImplWithBounds<T> {
-    fn drop(&mut self) {
-        T::a();
-    }
-}
-
-const fn check<T: ~const Destruct>(_: T) {}
-
-macro_rules! check_all {
-    ($($exp:expr),*$(,)?) => {$(
-        const _: () = check($exp);
-    )*};
-}
-
-check_all! {
-    NonTrivialDrop,
-    //~^ ERROR can't drop
-    ConstImplWithDropGlue(NonTrivialDrop),
-    //~^ ERROR can't drop
-    ConstDropImplWithBounds::<NonTrivialDrop>(PhantomData),
-    //~^ ERROR the trait bound
-    //~| ERROR the trait bound
-}
-
-struct ConstDropImplWithNonConstBounds<T: A>(PhantomData<T>);
-
-impl<T: ~const A> const Drop for ConstDropImplWithNonConstBounds<T> {
-//~^ ERROR `Drop` impl requires `T: ~const A` but the struct it is implemented for does not
-    fn drop(&mut self) {
-        T::a();
-    }
-}
-
-fn main() {}