Rollup merge of #130542 - ultrabear:stabilize_const_maybeuninit_as_mut_ptr, r=workingjubilee
Stabilize const `MaybeUninit::as_mut_ptr` This PR stabilizes the following APIs as const stable as of rust `1.83`: ```rs impl<T> MaybeUninit<T> { pub const fn as_mut_ptr(&mut self) -> *mut T; } ``` This is made possible by const_mut_refs being stabilized (yay). FCP: #75251 [(comment)](https://github.com/rust-lang/rust/issues/75251#issuecomment-2356197443)
This commit is contained in:
commit
0ad2a522b7
4 changed files with 5 additions and 5 deletions
|
@ -110,7 +110,6 @@
|
|||
#![feature(const_cow_is_borrowed)]
|
||||
#![feature(const_eval_select)]
|
||||
#![feature(const_heap)]
|
||||
#![feature(const_maybe_uninit_as_mut_ptr)]
|
||||
#![feature(const_maybe_uninit_write)]
|
||||
#![feature(const_option)]
|
||||
#![feature(const_pin)]
|
||||
|
|
|
@ -131,7 +131,6 @@
|
|||
#![feature(const_ipv4)]
|
||||
#![feature(const_ipv6)]
|
||||
#![feature(const_likely)]
|
||||
#![feature(const_maybe_uninit_as_mut_ptr)]
|
||||
#![feature(const_maybe_uninit_assume_init)]
|
||||
#![feature(const_nonnull_new)]
|
||||
#![feature(const_num_midpoint)]
|
||||
|
|
|
@ -393,7 +393,6 @@ impl<T> MaybeUninit<T> {
|
|||
// These are OK to allow since we do not leak &mut to user-visible API
|
||||
#[rustc_allow_const_fn_unstable(const_mut_refs)]
|
||||
#[rustc_allow_const_fn_unstable(const_ptr_write)]
|
||||
#[rustc_allow_const_fn_unstable(const_maybe_uninit_as_mut_ptr)]
|
||||
#[rustc_const_stable(feature = "const_maybe_uninit_zeroed", since = "1.75.0")]
|
||||
pub const fn zeroed() -> MaybeUninit<T> {
|
||||
let mut u = MaybeUninit::<T>::uninit();
|
||||
|
@ -570,7 +569,11 @@ impl<T> MaybeUninit<T> {
|
|||
/// (Notice that the rules around references to uninitialized data are not finalized yet, but
|
||||
/// until they are, it is advisable to avoid them.)
|
||||
#[stable(feature = "maybe_uninit", since = "1.36.0")]
|
||||
#[rustc_const_unstable(feature = "const_maybe_uninit_as_mut_ptr", issue = "75251")]
|
||||
#[rustc_const_stable(
|
||||
feature = "const_maybe_uninit_as_mut_ptr",
|
||||
since = "CURRENT_RUSTC_VERSION"
|
||||
)]
|
||||
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||
#[inline(always)]
|
||||
pub const fn as_mut_ptr(&mut self) -> *mut T {
|
||||
// `MaybeUninit` and `ManuallyDrop` are both `repr(transparent)` so we can cast the pointer.
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#![feature(const_ipv4)]
|
||||
#![feature(const_ipv6)]
|
||||
#![feature(const_likely)]
|
||||
#![feature(const_maybe_uninit_as_mut_ptr)]
|
||||
#![feature(const_nonnull_new)]
|
||||
#![feature(const_option)]
|
||||
#![feature(const_option_ext)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue