Skip to content

Commit 0ad2a52

Browse files
Rollup merge of rust-lang#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: rust-lang#75251 [(comment)](rust-lang#75251 (comment))
2 parents f9b8ef0 + b7ca2b6 commit 0ad2a52

File tree

4 files changed

+5
-5
lines changed

4 files changed

+5
-5
lines changed

library/alloc/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@
110110
#![feature(const_cow_is_borrowed)]
111111
#![feature(const_eval_select)]
112112
#![feature(const_heap)]
113-
#![feature(const_maybe_uninit_as_mut_ptr)]
114113
#![feature(const_maybe_uninit_write)]
115114
#![feature(const_option)]
116115
#![feature(const_pin)]

library/core/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@
131131
#![feature(const_ipv4)]
132132
#![feature(const_ipv6)]
133133
#![feature(const_likely)]
134-
#![feature(const_maybe_uninit_as_mut_ptr)]
135134
#![feature(const_maybe_uninit_assume_init)]
136135
#![feature(const_nonnull_new)]
137136
#![feature(const_num_midpoint)]

library/core/src/mem/maybe_uninit.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -393,7 +393,6 @@ impl<T> MaybeUninit<T> {
393393
// These are OK to allow since we do not leak &mut to user-visible API
394394
#[rustc_allow_const_fn_unstable(const_mut_refs)]
395395
#[rustc_allow_const_fn_unstable(const_ptr_write)]
396-
#[rustc_allow_const_fn_unstable(const_maybe_uninit_as_mut_ptr)]
397396
#[rustc_const_stable(feature = "const_maybe_uninit_zeroed", since = "1.75.0")]
398397
pub const fn zeroed() -> MaybeUninit<T> {
399398
let mut u = MaybeUninit::<T>::uninit();
@@ -570,7 +569,11 @@ impl<T> MaybeUninit<T> {
570569
/// (Notice that the rules around references to uninitialized data are not finalized yet, but
571570
/// until they are, it is advisable to avoid them.)
572571
#[stable(feature = "maybe_uninit", since = "1.36.0")]
573-
#[rustc_const_unstable(feature = "const_maybe_uninit_as_mut_ptr", issue = "75251")]
572+
#[rustc_const_stable(
573+
feature = "const_maybe_uninit_as_mut_ptr",
574+
since = "CURRENT_RUSTC_VERSION"
575+
)]
576+
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
574577
#[inline(always)]
575578
pub const fn as_mut_ptr(&mut self) -> *mut T {
576579
// `MaybeUninit` and `ManuallyDrop` are both `repr(transparent)` so we can cast the pointer.

library/core/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
#![feature(const_ipv4)]
2727
#![feature(const_ipv6)]
2828
#![feature(const_likely)]
29-
#![feature(const_maybe_uninit_as_mut_ptr)]
3029
#![feature(const_nonnull_new)]
3130
#![feature(const_option)]
3231
#![feature(const_option_ext)]

0 commit comments

Comments
 (0)