Skip to content

Commit 49c6d78

Browse files
Rollup merge of #130403 - eduardosm:stabilize-const_slice_from_raw_parts_mut, r=workingjubilee
Stabilize `const_slice_from_raw_parts_mut` Stabilizes #67456, since #57349 has been stabilized. Stabilized const API: ```rust // core::ptr pub const fn slice_from_raw_parts_mut<T>(data: *mut T, len: usize) -> *mut [T]; // core::slice pub const unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T]; // core::ptr::NonNull pub const fn slice_from_raw_parts(data: NonNull<T>, len: usize) -> Self ``` Closes #67456. r? libs-api
2 parents 9510c73 + 0dc250c commit 49c6d78

File tree

5 files changed

+7
-5
lines changed

5 files changed

+7
-5
lines changed

library/alloc/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
#![feature(const_cow_is_borrowed)]
88
#![feature(const_heap)]
99
#![cfg_attr(bootstrap, feature(const_mut_refs))]
10-
#![feature(const_slice_from_raw_parts_mut)]
1110
#![feature(const_ptr_write)]
1211
#![feature(const_try)]
1312
#![feature(core_intrinsics)]

library/core/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@
145145
#![feature(const_replace)]
146146
#![feature(const_size_of_val)]
147147
#![feature(const_size_of_val_raw)]
148-
#![feature(const_slice_from_raw_parts_mut)]
149148
#![feature(const_slice_from_ref)]
150149
#![feature(const_slice_split_at_mut)]
151150
#![feature(const_strict_overflow_ops)]

library/core/src/ptr/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,7 @@ pub const fn slice_from_raw_parts<T>(data: *const T, len: usize) -> *const [T] {
992992
/// ```
993993
#[inline]
994994
#[stable(feature = "slice_from_raw_parts", since = "1.42.0")]
995-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts_mut", issue = "67456")]
995+
#[rustc_const_stable(feature = "const_slice_from_raw_parts_mut", since = "CURRENT_RUSTC_VERSION")]
996996
#[rustc_diagnostic_item = "ptr_slice_from_raw_parts_mut"]
997997
pub const fn slice_from_raw_parts_mut<T>(data: *mut T, len: usize) -> *mut [T] {
998998
from_raw_parts_mut(data, len)

library/core/src/ptr/non_null.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -1434,7 +1434,10 @@ impl<T> NonNull<[T]> {
14341434
/// (Note that this example artificially demonstrates a use of this method,
14351435
/// but `let slice = NonNull::from(&x[..]);` would be a better way to write code like this.)
14361436
#[stable(feature = "nonnull_slice_from_raw_parts", since = "1.70.0")]
1437-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts_mut", issue = "67456")]
1437+
#[rustc_const_stable(
1438+
feature = "const_slice_from_raw_parts_mut",
1439+
since = "CURRENT_RUSTC_VERSION"
1440+
)]
14381441
#[must_use]
14391442
#[inline]
14401443
pub const fn slice_from_raw_parts(data: NonNull<T>, len: usize) -> Self {

library/core/src/slice/raw.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,8 @@ pub const unsafe fn from_raw_parts<'a, T>(data: *const T, len: usize) -> &'a [T]
171171
/// [`NonNull::dangling()`]: ptr::NonNull::dangling
172172
#[inline]
173173
#[stable(feature = "rust1", since = "1.0.0")]
174-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts_mut", issue = "67456")]
174+
#[rustc_const_stable(feature = "const_slice_from_raw_parts_mut", since = "CURRENT_RUSTC_VERSION")]
175+
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
175176
#[must_use]
176177
#[rustc_diagnostic_item = "slice_from_raw_parts_mut"]
177178
pub const unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T] {

0 commit comments

Comments
 (0)