Skip to content

Commit 51beb4e

Browse files
committed
refactor(kernel): use Range: const Iterator and const_for
1 parent 261914a commit 51beb4e

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

src/r3_kernel/src/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#![feature(const_maybe_uninit_assume_init)]
44
#![feature(const_slice_from_raw_parts_mut)]
55
#![feature(maybe_uninit_array_assume_init)]
6+
#![feature(const_intoiterator_identity)]
67
#![feature(maybe_uninit_uninit_array)]
78
#![feature(const_precise_live_drops)]
89
#![feature(const_raw_ptr_comparison)]
@@ -24,9 +25,11 @@
2425
#![feature(const_option)]
2526
#![feature(const_deref)]
2627
#![feature(const_heap)]
28+
#![feature(const_iter)]
2729
#![feature(const_swap)]
2830
#![feature(never_type)] // `!`
2931
#![feature(decl_macro)]
32+
#![feature(const_for)]
3033
#![feature(doc_cfg)] // `#[doc(cfg(...))]`
3134
#![deny(unsafe_op_in_unsafe_fn)]
3235
#![cfg_attr(

src/r3_kernel/src/utils/ctz.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,10 @@ fn ctz_array_lut<const LEN: usize>(x: usize) -> u32 {
209209
impl<const LEN: usize> LutTrait for Lut<LEN> {
210210
const LUT: &'static [u8] = &{
211211
let mut array = [0u8; LEN];
212-
// `for` is unusable in `const fn` [ref:const_for]
213-
let mut i = 0;
214-
while i < array.len() {
212+
// `[T]::iter_mut` is unusable in `const fn` [ref:const_slice_iter]
213+
// `core::array::from_fn` is not `const fn` [ref:const_array_from_fn]
214+
for i in 0..array.len() {
215215
array[i] = i.trailing_zeros() as u8;
216-
i += 1;
217216
}
218217
array
219218
};

0 commit comments

Comments
 (0)