//@ 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 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 where [(); N / 2]:, { array: [f32; N / 2], } impl TestArray where [(); N / 2]:, { fn from_fn_2 f32>(f: F) -> Self { Self { array: from_fn_1(f) } } } fn main() { TestArray::<4>::from_fn_2(|i| 0.0); }