mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-02 10:18:25 +00:00
Rollup merge of #143383 - fee1-dead-contrib:push-mstmlwuskxyy, r=dtolnay
stabilize `const_array_each_ref` cc rust-lang/rust#133289, needs FCP.
This commit is contained in:
commit
8e62f0f0c3
@ -621,11 +621,11 @@ impl<T, const N: usize> [T; N] {
|
||||
/// assert_eq!(strings.len(), 3);
|
||||
/// ```
|
||||
#[stable(feature = "array_methods", since = "1.77.0")]
|
||||
#[rustc_const_unstable(feature = "const_array_each_ref", issue = "133289")]
|
||||
#[rustc_const_stable(feature = "const_array_each_ref", since = "CURRENT_RUSTC_VERSION")]
|
||||
pub const fn each_ref(&self) -> [&T; N] {
|
||||
let mut buf = [null::<T>(); N];
|
||||
|
||||
// FIXME(const-hack): We would like to simply use iterators for this (as in the original implementation), but this is not allowed in constant expressions.
|
||||
// FIXME(const_trait_impl): We would like to simply use iterators for this (as in the original implementation), but this is not allowed in constant expressions.
|
||||
let mut i = 0;
|
||||
while i < N {
|
||||
buf[i] = &raw const self[i];
|
||||
@ -652,11 +652,11 @@ impl<T, const N: usize> [T; N] {
|
||||
/// assert_eq!(floats, [0.0, 2.7, -1.0]);
|
||||
/// ```
|
||||
#[stable(feature = "array_methods", since = "1.77.0")]
|
||||
#[rustc_const_unstable(feature = "const_array_each_ref", issue = "133289")]
|
||||
#[rustc_const_stable(feature = "const_array_each_ref", since = "CURRENT_RUSTC_VERSION")]
|
||||
pub const fn each_mut(&mut self) -> [&mut T; N] {
|
||||
let mut buf = [null_mut::<T>(); N];
|
||||
|
||||
// FIXME(const-hack): We would like to simply use iterators for this (as in the original implementation), but this is not allowed in constant expressions.
|
||||
// FIXME(const_trait_impl): We would like to simply use iterators for this (as in the original implementation), but this is not allowed in constant expressions.
|
||||
let mut i = 0;
|
||||
while i < N {
|
||||
buf[i] = &raw mut self[i];
|
||||
|
Loading…
x
Reference in New Issue
Block a user