Skip to content

Commit f13a541

Browse files
authored
Rollup merge of rust-lang#97506 - JohnTitor:stabilize-nonnull-slice-from-raw-parts, r=m-ou-se,the8472
Stabilize `nonnull_slice_from_raw_parts` FCP is done: rust-lang#71941 (comment) Note that this doesn't const-stabilize `NonNull::slice_from_raw_parts` as `slice_from_raw_parts_mut` isn't const-stabilized yet. Given rust-lang#67456 and rust-lang#57349, it's not likely available soon, meanwhile, stabilizing only the feature makes some sense, I think. Closes rust-lang#71941
2 parents 1d58207 + 22a456a commit f13a541

File tree

4 files changed

+6
-12
lines changed

4 files changed

+6
-12
lines changed

Diff for: library/alloc/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@
135135
#![feature(maybe_uninit_uninit_array)]
136136
#![feature(maybe_uninit_uninit_array_transpose)]
137137
#![cfg_attr(test, feature(new_uninit))]
138-
#![feature(nonnull_slice_from_raw_parts)]
139138
#![feature(pattern)]
140139
#![feature(pointer_byte_offsets)]
141140
#![feature(provide_any)]

Diff for: library/alloc/tests/lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#![feature(const_cow_is_borrowed)]
99
#![feature(const_heap)]
1010
#![feature(const_mut_refs)]
11-
#![feature(const_nonnull_slice_from_raw_parts)]
11+
#![feature(const_slice_from_raw_parts_mut)]
1212
#![feature(const_ptr_write)]
1313
#![feature(const_try)]
1414
#![feature(core_intrinsics)]
@@ -38,7 +38,6 @@
3838
#![feature(const_default_impls)]
3939
#![feature(const_trait_impl)]
4040
#![feature(const_str_from_utf8)]
41-
#![feature(nonnull_slice_from_raw_parts)]
4241
#![feature(panic_update_hook)]
4342
#![feature(pointer_is_aligned)]
4443
#![feature(slice_flatten)]

Diff for: library/core/src/ptr/non_null.rs

+5-8
Original file line numberDiff line numberDiff line change
@@ -462,8 +462,6 @@ impl<T> NonNull<[T]> {
462462
/// # Examples
463463
///
464464
/// ```rust
465-
/// #![feature(nonnull_slice_from_raw_parts)]
466-
///
467465
/// use std::ptr::NonNull;
468466
///
469467
/// // create a slice pointer when starting out with a pointer to the first element
@@ -475,8 +473,8 @@ impl<T> NonNull<[T]> {
475473
///
476474
/// (Note that this example artificially demonstrates a use of this method,
477475
/// but `let slice = NonNull::from(&x[..]);` would be a better way to write code like this.)
478-
#[unstable(feature = "nonnull_slice_from_raw_parts", issue = "71941")]
479-
#[rustc_const_unstable(feature = "const_nonnull_slice_from_raw_parts", issue = "71941")]
476+
#[stable(feature = "nonnull_slice_from_raw_parts", since = "CURRENT_RUSTC_VERSION")]
477+
#[rustc_const_unstable(feature = "const_slice_from_raw_parts_mut", issue = "67456")]
480478
#[must_use]
481479
#[inline]
482480
pub const fn slice_from_raw_parts(data: NonNull<T>, len: usize) -> Self {
@@ -494,7 +492,6 @@ impl<T> NonNull<[T]> {
494492
/// # Examples
495493
///
496494
/// ```rust
497-
/// #![feature(nonnull_slice_from_raw_parts)]
498495
/// use std::ptr::NonNull;
499496
///
500497
/// let slice: NonNull<[i8]> = NonNull::slice_from_raw_parts(NonNull::dangling(), 3);
@@ -514,7 +511,7 @@ impl<T> NonNull<[T]> {
514511
/// # Examples
515512
///
516513
/// ```rust
517-
/// #![feature(slice_ptr_get, nonnull_slice_from_raw_parts)]
514+
/// #![feature(slice_ptr_get)]
518515
/// use std::ptr::NonNull;
519516
///
520517
/// let slice: NonNull<[i8]> = NonNull::slice_from_raw_parts(NonNull::dangling(), 3);
@@ -534,7 +531,7 @@ impl<T> NonNull<[T]> {
534531
/// # Examples
535532
///
536533
/// ```rust
537-
/// #![feature(slice_ptr_get, nonnull_slice_from_raw_parts)]
534+
/// #![feature(slice_ptr_get)]
538535
/// use std::ptr::NonNull;
539536
///
540537
/// let slice: NonNull<[i8]> = NonNull::slice_from_raw_parts(NonNull::dangling(), 3);
@@ -668,7 +665,7 @@ impl<T> NonNull<[T]> {
668665
/// # Examples
669666
///
670667
/// ```
671-
/// #![feature(slice_ptr_get, nonnull_slice_from_raw_parts)]
668+
/// #![feature(slice_ptr_get)]
672669
/// use std::ptr::NonNull;
673670
///
674671
/// let x = &mut [1, 2, 4];

Diff for: library/std/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,6 @@
292292
#![feature(is_some_and)]
293293
#![feature(maybe_uninit_slice)]
294294
#![feature(maybe_uninit_write_slice)]
295-
#![feature(nonnull_slice_from_raw_parts)]
296295
#![feature(panic_can_unwind)]
297296
#![feature(panic_info_message)]
298297
#![feature(panic_internals)]

0 commit comments

Comments
 (0)