From 2ce61c0aedb54c146c03608757b4e9a25d844025 Mon Sep 17 00:00:00 2001 From: Taylor Cramer Date: Fri, 29 Jun 2018 19:30:06 -0700 Subject: [PATCH] Implement Unpin for references These don'town the backing storage for their data, so projecting `PinMut` into their fields is already unsound. --- src/libcore/marker.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libcore/marker.rs b/src/libcore/marker.rs index 5db5d88d4a5f..4a54ebce0a31 100644 --- a/src/libcore/marker.rs +++ b/src/libcore/marker.rs @@ -625,6 +625,12 @@ pub struct Pinned; #[unstable(feature = "pin", issue = "49150")] impl !Unpin for Pinned {} +#[unstable(feature = "pin", issue = "49150")] +impl<'a, T: ?Sized + 'a> Unpin for &'a T {} + +#[unstable(feature = "pin", issue = "49150")] +impl<'a, T: ?Sized + 'a> Unpin for &'a mut T {} + /// Implementations of `Copy` for primitive types. /// /// Implementations that cannot be described in Rust