summaryrefslogtreecommitdiffstats
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 d36c7f81c..000000000
--- 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() {}