mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 08:44:35 +00:00
Stabilize const_slice_split_at_mut
and const_slice_first_last_chunk
This commit is contained in:
parent
d30c3924a4
commit
d0e6758677
@ -146,7 +146,6 @@
|
|||||||
#![feature(const_size_of_val)]
|
#![feature(const_size_of_val)]
|
||||||
#![feature(const_size_of_val_raw)]
|
#![feature(const_size_of_val_raw)]
|
||||||
#![feature(const_slice_from_ref)]
|
#![feature(const_slice_from_ref)]
|
||||||
#![feature(const_slice_split_at_mut)]
|
|
||||||
#![feature(const_strict_overflow_ops)]
|
#![feature(const_strict_overflow_ops)]
|
||||||
#![feature(const_swap)]
|
#![feature(const_swap)]
|
||||||
#![feature(const_try)]
|
#![feature(const_try)]
|
||||||
|
@ -356,7 +356,8 @@ impl<T> [T] {
|
|||||||
/// ```
|
/// ```
|
||||||
#[inline]
|
#[inline]
|
||||||
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
||||||
#[rustc_const_unstable(feature = "const_slice_first_last_chunk", issue = "111774")]
|
#[rustc_const_stable(feature = "const_slice_first_last_chunk", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
pub const fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]> {
|
pub const fn first_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]> {
|
||||||
if self.len() < N {
|
if self.len() < N {
|
||||||
None
|
None
|
||||||
@ -421,7 +422,8 @@ impl<T> [T] {
|
|||||||
/// ```
|
/// ```
|
||||||
#[inline]
|
#[inline]
|
||||||
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
||||||
#[rustc_const_unstable(feature = "const_slice_first_last_chunk", issue = "111774")]
|
#[rustc_const_stable(feature = "const_slice_first_last_chunk", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
pub const fn split_first_chunk_mut<const N: usize>(
|
pub const fn split_first_chunk_mut<const N: usize>(
|
||||||
&mut self,
|
&mut self,
|
||||||
) -> Option<(&mut [T; N], &mut [T])> {
|
) -> Option<(&mut [T; N], &mut [T])> {
|
||||||
@ -491,7 +493,8 @@ impl<T> [T] {
|
|||||||
/// ```
|
/// ```
|
||||||
#[inline]
|
#[inline]
|
||||||
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
||||||
#[rustc_const_unstable(feature = "const_slice_first_last_chunk", issue = "111774")]
|
#[rustc_const_stable(feature = "const_slice_first_last_chunk", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
pub const fn split_last_chunk_mut<const N: usize>(
|
pub const fn split_last_chunk_mut<const N: usize>(
|
||||||
&mut self,
|
&mut self,
|
||||||
) -> Option<(&mut [T], &mut [T; N])> {
|
) -> Option<(&mut [T], &mut [T; N])> {
|
||||||
@ -560,7 +563,8 @@ impl<T> [T] {
|
|||||||
/// ```
|
/// ```
|
||||||
#[inline]
|
#[inline]
|
||||||
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
#[stable(feature = "slice_first_last_chunk", since = "1.77.0")]
|
||||||
#[rustc_const_unstable(feature = "const_slice_first_last_chunk", issue = "111774")]
|
#[rustc_const_stable(feature = "const_slice_first_last_chunk", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
pub const fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]> {
|
pub const fn last_chunk_mut<const N: usize>(&mut self) -> Option<&mut [T; N]> {
|
||||||
if self.len() < N {
|
if self.len() < N {
|
||||||
None
|
None
|
||||||
@ -1903,7 +1907,8 @@ impl<T> [T] {
|
|||||||
#[inline]
|
#[inline]
|
||||||
#[track_caller]
|
#[track_caller]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
#[rustc_const_unstable(feature = "const_slice_split_at_mut", issue = "101804")]
|
#[rustc_const_stable(feature = "const_slice_split_at_mut", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
pub const fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
|
pub const fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
|
||||||
match self.split_at_mut_checked(mid) {
|
match self.split_at_mut_checked(mid) {
|
||||||
Some(pair) => pair,
|
Some(pair) => pair,
|
||||||
@ -2005,7 +2010,8 @@ impl<T> [T] {
|
|||||||
/// assert_eq!(v, [1, 2, 3, 4, 5, 6]);
|
/// assert_eq!(v, [1, 2, 3, 4, 5, 6]);
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "slice_split_at_unchecked", since = "1.79.0")]
|
#[stable(feature = "slice_split_at_unchecked", since = "1.79.0")]
|
||||||
#[rustc_const_unstable(feature = "const_slice_split_at_mut", issue = "101804")]
|
#[rustc_const_stable(feature = "const_slice_split_at_mut", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
#[inline]
|
#[inline]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub const unsafe fn split_at_mut_unchecked(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
|
pub const unsafe fn split_at_mut_unchecked(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
|
||||||
@ -2105,7 +2111,8 @@ impl<T> [T] {
|
|||||||
/// assert_eq!(None, v.split_at_mut_checked(7));
|
/// assert_eq!(None, v.split_at_mut_checked(7));
|
||||||
/// ```
|
/// ```
|
||||||
#[stable(feature = "split_at_checked", since = "1.80.0")]
|
#[stable(feature = "split_at_checked", since = "1.80.0")]
|
||||||
#[rustc_const_unstable(feature = "const_slice_split_at_mut", issue = "101804")]
|
#[rustc_const_stable(feature = "const_slice_split_at_mut", since = "CURRENT_RUSTC_VERSION")]
|
||||||
|
#[cfg_attr(bootstrap, rustc_allow_const_fn_unstable(const_mut_refs))]
|
||||||
#[inline]
|
#[inline]
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub const fn split_at_mut_checked(&mut self, mid: usize) -> Option<(&mut [T], &mut [T])> {
|
pub const fn split_at_mut_checked(&mut self, mid: usize) -> Option<(&mut [T], &mut [T])> {
|
||||||
|
Loading…
Reference in New Issue
Block a user