This commit is contained in:
bendn 2025-09-26 22:51:53 +07:00
parent 7b9905edb4
commit eddf2f8c68
No known key found for this signature in database
GPG key ID: 0D9D3A2A3B2A93D6
2 changed files with 16 additions and 0 deletions

View file

@ -724,3 +724,17 @@ fn array_eq() {
let not_true = [0u8] == [].as_slice();
assert!(!not_true);
}
#[test]
fn const_array_ops() {
const fn doubler(x: usize) -> usize {
x * 2
}
const fn maybe_doubler(x: usize) -> Option<usize> {
x.checked_mul(2)
}
assert_eq!(const { std::array::from_fn::<_, 5, _>(doubler) }, [0, 2, 4, 6, 8]);
assert_eq!(const { [5, 6, 1, 2].map(doubler) }, [10, 12, 2, 4]);
assert_eq!(const { [1, usize::MAX, 2, 8].try_map(maybe_doubler) }, None);
assert_eq!(const { std::array::try_from_fn::<_, 5, _>(maybe_doubler) }, Some([0, 2, 4, 6, 8]));
}

View file

@ -4,6 +4,7 @@
#![feature(alloc_layout_extra)]
#![feature(array_ptr_get)]
#![feature(array_try_from_fn)]
#![feature(array_try_map)]
#![feature(array_windows)]
#![feature(ascii_char)]
#![feature(ascii_char_variants)]
@ -17,6 +18,7 @@
#![feature(char_max_len)]
#![feature(clone_to_uninit)]
#![feature(const_cell_traits)]
#![feature(const_array)]
#![feature(const_cmp)]
#![feature(const_convert)]
#![feature(const_destruct)]