diff options
| author | Niv Kaminer <nivkner@zoho.com> | 2018-08-10 10:10:35 +0300 |
|---|---|---|
| committer | Niv Kaminer <nivkner@zoho.com> | 2018-08-23 01:37:03 +0300 |
| commit | c4ec0cd36927a4a010dc6789bdd88eaa503dadd6 (patch) | |
| tree | b18454b26ae921de0eb35416797c9625a1e6c4e3 /src/liballoc | |
| parent | 30bb4af5d8191f016a82c75a0c2b4700b23bd724 (diff) | |
| download | rust-c4ec0cd36927a4a010dc6789bdd88eaa503dadd6.tar.gz rust-c4ec0cd36927a4a010dc6789bdd88eaa503dadd6.zip | |
attempt to work around Box<T> not being recognized as local type
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/boxed.rs | 8 | ||||
| -rw-r--r-- | src/liballoc/pin.rs | 7 |
2 files changed, 8 insertions, 7 deletions
diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index b5c2fd7526d..c25f3eb8f17 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -71,6 +71,7 @@ use core::ptr::{self, NonNull, Unique}; use core::task::{Context, Poll, Spawn, SpawnErrorKind, SpawnObjError}; use raw_vec::RawVec; +use pin::PinBox; use str::from_boxed_utf8_unchecked; /// A pointer type for heap allocation. @@ -816,3 +817,10 @@ impl<'a, F: Future<Output = ()> + 'a> From<Box<F>> for LocalFutureObj<'a, ()> { LocalFutureObj::new(boxed) } } + +#[unstable(feature = "pin", issue = "49150")] +impl<T: Unpin + ?Sized> From<PinBox<T>> for Box<T> { + fn from(pinned: PinBox<T>) -> Box<T> { + unsafe { PinBox::unpin(pinned) } + } +} diff --git a/src/liballoc/pin.rs b/src/liballoc/pin.rs index 1b6ccae456a..bacc13fa74a 100644 --- a/src/liballoc/pin.rs +++ b/src/liballoc/pin.rs @@ -134,13 +134,6 @@ impl<T: ?Sized> From<Box<T>> for PinBox<T> { } #[unstable(feature = "pin", issue = "49150")] -impl<T: Unpin + ?Sized> From<PinBox<T>> for Box<T> { - fn from(pinned: PinBox<T>) -> Box<T> { - pinned.inner - } -} - -#[unstable(feature = "pin", issue = "49150")] impl<T: ?Sized> Deref for PinBox<T> { type Target = T; |
