Skip to content

Commit ddbfc0f

Browse files
committed
Make split_array_*() methods const
1 parent 1fc0dc1 commit ddbfc0f

File tree

2 files changed

+12
-12
lines changed

2 files changed

+12
-12
lines changed

library/core/src/array/mod.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -662,10 +662,10 @@ impl<T, const N: usize> [T; N] {
662662
issue = "90091"
663663
)]
664664
#[inline]
665-
pub fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T]) {
665+
pub const fn split_array_ref<const M: usize>(&self) -> (&[T; M], &[T]) {
666666
// FIXME: remove once constraint is encoded in return type
667667
const { assert!(M <= N) }
668-
(&self[..]).split_array_ref::<M>().unwrap()
668+
self.as_slice().split_array_ref::<M>().unwrap()
669669
}
670670

671671
/// Divides one mutable array reference into two at an index.
@@ -693,10 +693,10 @@ impl<T, const N: usize> [T; N] {
693693
issue = "90091"
694694
)]
695695
#[inline]
696-
pub fn split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T]) {
696+
pub const fn split_array_mut<const M: usize>(&mut self) -> (&mut [T; M], &mut [T]) {
697697
// FIXME: remove once constraint is encoded in return type
698698
const { assert!(M <= N) }
699-
(&mut self[..]).split_array_mut::<M>().unwrap()
699+
(self as &mut [T]).split_array_mut::<M>().unwrap()
700700
}
701701

702702
/// Divides one array reference into two at an index from the end.
@@ -736,10 +736,10 @@ impl<T, const N: usize> [T; N] {
736736
issue = "90091"
737737
)]
738738
#[inline]
739-
pub fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M]) {
739+
pub const fn rsplit_array_ref<const M: usize>(&self) -> (&[T], &[T; M]) {
740740
// FIXME: remove once constraint is encoded in return type
741741
const { assert!(M <= N) }
742-
(&self[..]).rsplit_array_ref::<M>().unwrap()
742+
self.as_slice().rsplit_array_ref::<M>().unwrap()
743743
}
744744

745745
/// Divides one mutable array reference into two at an index from the end.
@@ -767,10 +767,10 @@ impl<T, const N: usize> [T; N] {
767767
issue = "90091"
768768
)]
769769
#[inline]
770-
pub fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M]) {
770+
pub const fn rsplit_array_mut<const M: usize>(&mut self) -> (&mut [T], &mut [T; M]) {
771771
// FIXME: remove once constraint is encoded in return type
772772
const { assert!(M <= N) }
773-
(&mut self[..]).rsplit_array_mut::<M>().unwrap()
773+
(self as &mut [T]).rsplit_array_mut::<M>().unwrap()
774774
}
775775
}
776776

library/core/src/slice/mod.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -1797,7 +1797,7 @@ impl<T> [T] {
17971797
#[inline]
17981798
#[track_caller]
17991799
#[must_use]
1800-
pub fn split_array_ref<const N: usize>(&self) -> Option<(&[T; N], &[T])> {
1800+
pub const fn split_array_ref<const N: usize>(&self) -> Option<(&[T; N], &[T])> {
18011801
if N > self.len() {
18021802
None
18031803
} else {
@@ -1835,7 +1835,7 @@ impl<T> [T] {
18351835
#[inline]
18361836
#[track_caller]
18371837
#[must_use]
1838-
pub fn split_array_mut<const N: usize>(&mut self) -> Option<(&mut [T; N], &mut [T])> {
1838+
pub const fn split_array_mut<const N: usize>(&mut self) -> Option<(&mut [T; N], &mut [T])> {
18391839
if N > self.len() {
18401840
None
18411841
} else {
@@ -1885,7 +1885,7 @@ impl<T> [T] {
18851885
#[unstable(feature = "split_array", reason = "new API", issue = "90091")]
18861886
#[inline]
18871887
#[must_use]
1888-
pub fn rsplit_array_ref<const N: usize>(&self) -> Option<(&[T], &[T; N])> {
1888+
pub const fn rsplit_array_ref<const N: usize>(&self) -> Option<(&[T], &[T; N])> {
18891889
if N > self.len() {
18901890
None
18911891
} else {
@@ -1923,7 +1923,7 @@ impl<T> [T] {
19231923
#[unstable(feature = "split_array", reason = "new API", issue = "90091")]
19241924
#[inline]
19251925
#[must_use]
1926-
pub fn rsplit_array_mut<const N: usize>(&mut self) -> Option<(&mut [T], &mut [T; N])> {
1926+
pub const fn rsplit_array_mut<const N: usize>(&mut self) -> Option<(&mut [T], &mut [T; N])> {
19271927
if N > self.len() {
19281928
None
19291929
} else {

0 commit comments

Comments
 (0)