diff options
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; |
