1
Fork 0

Stabilize UnsafeCell::raw_get()

This commit is contained in:
inquisitivecrystal 2021-08-31 14:44:13 -07:00
parent 0a84708edc
commit 753dac16ab
2 changed files with 2 additions and 4 deletions

View file

@ -1921,7 +1921,7 @@ impl<T: ?Sized> UnsafeCell<T> {
} }
/// Gets a mutable pointer to the wrapped value. /// Gets a mutable pointer to the wrapped value.
/// The difference to [`get`] is that this function accepts a raw pointer, /// The difference from [`get`] is that this function accepts a raw pointer,
/// which is useful to avoid the creation of temporary references. /// which is useful to avoid the creation of temporary references.
/// ///
/// The result can be cast to a pointer of any kind. /// The result can be cast to a pointer of any kind.
@ -1937,7 +1937,6 @@ impl<T: ?Sized> UnsafeCell<T> {
/// calling `get` would require creating a reference to uninitialized data: /// calling `get` would require creating a reference to uninitialized data:
/// ///
/// ``` /// ```
/// #![feature(unsafe_cell_raw_get)]
/// use std::cell::UnsafeCell; /// use std::cell::UnsafeCell;
/// use std::mem::MaybeUninit; /// use std::mem::MaybeUninit;
/// ///
@ -1948,7 +1947,7 @@ impl<T: ?Sized> UnsafeCell<T> {
/// assert_eq!(uc.into_inner(), 5); /// assert_eq!(uc.into_inner(), 5);
/// ``` /// ```
#[inline(always)] #[inline(always)]
#[unstable(feature = "unsafe_cell_raw_get", issue = "66358")] #[stable(feature = "unsafe_cell_raw_get", since = "1.56.0")]
pub const fn raw_get(this: *const Self) -> *mut T { pub const fn raw_get(this: *const Self) -> *mut T {
// We can just cast the pointer from `UnsafeCell<T>` to `T` because of // We can just cast the pointer from `UnsafeCell<T>` to `T` because of
// #[repr(transparent)]. This exploits libstd's special status, there is // #[repr(transparent)]. This exploits libstd's special status, there is

View file

@ -331,7 +331,6 @@
#![feature(try_reserve)] #![feature(try_reserve)]
#![feature(try_reserve_kind)] #![feature(try_reserve_kind)]
#![feature(unboxed_closures)] #![feature(unboxed_closures)]
#![feature(unsafe_cell_raw_get)]
#![feature(unwrap_infallible)] #![feature(unwrap_infallible)]
#![feature(vec_into_raw_parts)] #![feature(vec_into_raw_parts)]
#![feature(vec_spare_capacity)] #![feature(vec_spare_capacity)]