rust/tests/ui/consts/issue-104396.rs

37 lines
678 B
Rust

//@ compile-flags: -Zmir-opt-level=3
//@ check-pass
#![feature(generic_const_exprs)]
//~^ WARN the feature `generic_const_exprs` is incomplete
#[inline(always)]
fn from_fn_1<const N: usize, F: FnMut(usize) -> f32>(mut f: F) -> [f32; N] {
let mut result = [0.0; N];
let mut i = 0;
while i < N {
result[i] = f(i);
i += 1;
}
result
}
pub struct TestArray<const N: usize>
where
[(); N / 2]:,
{
array: [f32; N / 2],
}
impl<const N: usize> TestArray<N>
where
[(); N / 2]:,
{
fn from_fn_2<F: FnMut(usize) -> f32>(f: F) -> Self {
Self { array: from_fn_1(f) }
}
}
fn main() {
TestArray::<4>::from_fn_2(|i| 0.0);
}