Skip to content

Commit 59e95f7

Browse files
Partially stabilize const_slice_from_raw_parts
This doesn't stabilize methods working on mutable pointers.
1 parent e98ae97 commit 59e95f7

File tree

4 files changed

+6
-6
lines changed

4 files changed

+6
-6
lines changed

Diff for: core/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
#![feature(const_ptr_write)]
135135
#![feature(const_raw_ptr_comparison)]
136136
#![feature(const_size_of_val)]
137-
#![feature(const_slice_from_raw_parts)]
137+
#![feature(const_slice_from_raw_parts_mut)]
138138
#![feature(const_slice_ptr_len)]
139139
#![feature(const_str_from_utf8_unchecked_mut)]
140140
#![feature(const_swap)]

Diff for: core/src/ptr/mod.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -690,7 +690,8 @@ pub const fn null_mut<T: ?Sized + Thin>() -> *mut T {
690690
/// ```
691691
#[inline]
692692
#[stable(feature = "slice_from_raw_parts", since = "1.42.0")]
693-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts", issue = "67456")]
693+
#[rustc_const_stable(feature = "const_slice_from_raw_parts", since = "1.64.0")]
694+
#[rustc_allow_const_fn_unstable(ptr_metadata)]
694695
pub const fn slice_from_raw_parts<T>(data: *const T, len: usize) -> *const [T] {
695696
from_raw_parts(data.cast(), len)
696697
}
@@ -722,7 +723,7 @@ pub const fn slice_from_raw_parts<T>(data: *const T, len: usize) -> *const [T] {
722723
/// ```
723724
#[inline]
724725
#[stable(feature = "slice_from_raw_parts", since = "1.42.0")]
725-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts", issue = "67456")]
726+
#[rustc_const_unstable(feature = "const_slice_from_raw_parts_mut", issue = "67456")]
726727
pub const fn slice_from_raw_parts_mut<T>(data: *mut T, len: usize) -> *mut [T] {
727728
from_raw_parts_mut(data.cast(), len)
728729
}

Diff for: core/src/slice/raw.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ use crate::ptr;
8585
/// [`NonNull::dangling()`]: ptr::NonNull::dangling
8686
#[inline]
8787
#[stable(feature = "rust1", since = "1.0.0")]
88-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts", issue = "67456")]
88+
#[rustc_const_stable(feature = "const_slice_from_raw_parts", since = "1.64.0")]
8989
#[must_use]
9090
pub const unsafe fn from_raw_parts<'a, T>(data: *const T, len: usize) -> &'a [T] {
9191
// SAFETY: the caller must uphold the safety contract for `from_raw_parts`.
@@ -129,7 +129,7 @@ pub const unsafe fn from_raw_parts<'a, T>(data: *const T, len: usize) -> &'a [T]
129129
/// [`NonNull::dangling()`]: ptr::NonNull::dangling
130130
#[inline]
131131
#[stable(feature = "rust1", since = "1.0.0")]
132-
#[rustc_const_unstable(feature = "const_slice_from_raw_parts", issue = "67456")]
132+
#[rustc_const_unstable(feature = "const_slice_from_raw_parts_mut", issue = "67456")]
133133
#[must_use]
134134
pub const unsafe fn from_raw_parts_mut<'a, T>(data: *mut T, len: usize) -> &'a mut [T] {
135135
// SAFETY: the caller must uphold the safety contract for `from_raw_parts_mut`.

Diff for: core/tests/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
#![feature(iterator_try_reduce)]
7474
#![feature(const_mut_refs)]
7575
#![feature(const_pin)]
76-
#![feature(const_slice_from_raw_parts)]
7776
#![feature(never_type)]
7877
#![feature(unwrap_infallible)]
7978
#![feature(result_into_ok_or_err)]

0 commit comments

Comments
 (0)