From 019ab5dfec21ed296fa0eca6a96cf9f74f76a628 Mon Sep 17 00:00:00 2001 From: petrochenkov Date: Sat, 30 May 2015 12:15:19 +0300 Subject: [PATCH] Deprecate UnsafeCell::value --- src/libcore/cell.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/libcore/cell.rs b/src/libcore/cell.rs index 4c9f16fdaeeb5..9c9cf14b39373 100644 --- a/src/libcore/cell.rs +++ b/src/libcore/cell.rs @@ -641,6 +641,8 @@ pub struct UnsafeCell { /// /// This field should not be accessed directly, it is made public for static /// initializers. + #[deprecated(since = "1.2.0", reason = "use `get` to access the wrapped \ + value or `new` to initialize `UnsafeCell` in statics")] #[unstable(feature = "core")] pub value: T, } @@ -664,6 +666,7 @@ impl UnsafeCell { #[stable(feature = "rust1", since = "1.0.0")] #[inline] pub const fn new(value: T) -> UnsafeCell { + #![allow(deprecated)] UnsafeCell { value: value } } @@ -685,7 +688,10 @@ impl UnsafeCell { /// ``` #[inline] #[stable(feature = "rust1", since = "1.0.0")] - pub unsafe fn into_inner(self) -> T { self.value } + pub unsafe fn into_inner(self) -> T { + #![allow(deprecated)] + self.value + } } impl UnsafeCell { @@ -705,6 +711,7 @@ impl UnsafeCell { pub fn get(&self) -> *mut T { // FIXME(#23542) Replace with type ascription. #![allow(trivial_casts)] + #![allow(deprecated)] &self.value as *const T as *mut T } }