about summary refs log tree commit diff
diff options
context:
space:
mode:
authoronestacked <chrisi.schrefl@gmail.com>2022-09-14 16:54:49 +0200
committeronestacked <chrisi.schrefl@gmail.com>2022-09-14 16:54:49 +0200
commit8d6edac7639bdd4854ab026fbdac0c4d1a22f64d (patch)
treed16a1800d267863c9243d47e3c500501c569dbee
parentc97922dca563cb7f9385b18dbf7ca8c97f8e1597 (diff)
downloadrust-8d6edac7639bdd4854ab026fbdac0c4d1a22f64d.tar.gz
rust-8d6edac7639bdd4854ab026fbdac0c4d1a22f64d.zip
Add const_slice_split_at_mut Feature gate.
-rw-r--r--library/core/src/lib.rs1
-rw-r--r--library/core/src/slice/mod.rs6
2 files changed, 5 insertions, 2 deletions
diff --git a/library/core/src/lib.rs b/library/core/src/lib.rs
index 5621d15c1cd..79dfc9cb1b1 100644
--- a/library/core/src/lib.rs
+++ b/library/core/src/lib.rs
@@ -137,6 +137,7 @@
 #![feature(const_size_of_val)]
 #![feature(const_slice_from_raw_parts_mut)]
 #![feature(const_slice_ptr_len)]
+#![feature(const_slice_split_at_mut)]
 #![feature(const_str_from_utf8_unchecked_mut)]
 #![feature(const_swap)]
 #![feature(const_trait_impl)]
diff --git a/library/core/src/slice/mod.rs b/library/core/src/slice/mod.rs
index 6a7150d2986..03c8051c5b4 100644
--- a/library/core/src/slice/mod.rs
+++ b/library/core/src/slice/mod.rs
@@ -1580,7 +1580,8 @@ impl<T> [T] {
     #[inline]
     #[track_caller]
     #[must_use]
-    pub fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
+    #[rustc_const_unstable(feature = "const_slice_split_at_mut", issue = "101804")]
+    pub const fn split_at_mut(&mut self, mid: usize) -> (&mut [T], &mut [T]) {
         assert!(mid <= self.len());
         // SAFETY: `[ptr; mid]` and `[mid; len]` are inside `self`, which
         // fulfills the requirements of `from_raw_parts_mut`.
@@ -1679,9 +1680,10 @@ impl<T> [T] {
     /// assert_eq!(v, [1, 2, 3, 4, 5, 6]);
     /// ```
     #[unstable(feature = "slice_split_at_unchecked", reason = "new API", issue = "76014")]
+    #[rustc_const_unstable(feature = "const_slice_split_at_mut", issue = "101804")]
     #[inline]
     #[must_use]
-    pub 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]) {
         let len = self.len();
         let ptr = self.as_mut_ptr();