about summary refs log tree commit diff
path: root/src/liballoc
diff options
context:
space:
mode:
authorWithout Boats <boats@mozilla.com>2018-09-01 01:54:59 +0200
committerWithout Boats <boats@mozilla.com>2018-09-01 01:54:59 +0200
commitc3bdd760472583f45dca1d0c9c16012f84d3fa15 (patch)
treed384e0713c2d185ec1410ccebc372925e3d2f38c /src/liballoc
parentaaa170bebe31d03e2eea14e8cb06dc2e8891216b (diff)
downloadrust-c3bdd760472583f45dca1d0c9c16012f84d3fa15.tar.gz
rust-c3bdd760472583f45dca1d0c9c16012f84d3fa15.zip
Implement Unpin for Box, Rc, and Arc
Diffstat (limited to 'src/liballoc')
-rw-r--r--src/liballoc/boxed.rs3
-rw-r--r--src/liballoc/rc.rs5
-rw-r--r--src/liballoc/sync.rs5
3 files changed, 11 insertions, 2 deletions
diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs
index c25f3eb8f17..f16a112b801 100644
--- a/src/liballoc/boxed.rs
+++ b/src/liballoc/boxed.rs
@@ -749,6 +749,9 @@ impl<T: ?Sized> AsMut<T> for Box<T> {
     }
 }
 
+#[unstable(feature = "pin", issue = "49150")]
+impl<T: ?Sized> Unpin for Box<T> { }
+
 #[unstable(feature = "generator_trait", issue = "43122")]
 impl<T> Generator for Box<T>
     where T: Generator + ?Sized
diff --git a/src/liballoc/rc.rs b/src/liballoc/rc.rs
index 4860daa11e2..488b9d32cf0 100644
--- a/src/liballoc/rc.rs
+++ b/src/liballoc/rc.rs
@@ -252,7 +252,7 @@ use core::fmt;
 use core::hash::{Hash, Hasher};
 use core::intrinsics::abort;
 use core::marker;
-use core::marker::{Unsize, PhantomData};
+use core::marker::{Unpin, Unsize, PhantomData};
 use core::mem::{self, align_of_val, forget, size_of_val};
 use core::ops::Deref;
 use core::ops::CoerceUnsized;
@@ -1830,3 +1830,6 @@ impl<T: ?Sized> AsRef<T> for Rc<T> {
         &**self
     }
 }
+
+#[unstable(feature = "pin", issue = "49150")]
+impl<T: ?Sized> Unpin for Box<T> { }
diff --git a/src/liballoc/sync.rs b/src/liballoc/sync.rs
index 2cd7898f4c7..da94ef4a9c4 100644
--- a/src/liballoc/sync.rs
+++ b/src/liballoc/sync.rs
@@ -27,7 +27,7 @@ use core::mem::{self, align_of_val, size_of_val};
 use core::ops::Deref;
 use core::ops::CoerceUnsized;
 use core::ptr::{self, NonNull};
-use core::marker::{Unsize, PhantomData};
+use core::marker::{Unpin, Unsize, PhantomData};
 use core::hash::{Hash, Hasher};
 use core::{isize, usize};
 use core::convert::From;
@@ -1942,3 +1942,6 @@ impl<T: ?Sized> AsRef<T> for Arc<T> {
         &**self
     }
 }
+
+#[unstable(feature = "pin", issue = "49150")]
+impl<T: ?Sized> Unpin for Arc<T> { }