fn f<T: Copy, const N: usize>(x: T) -> [T; N] { [x; { N }] } fn g<T, const N: usize>(x: T) -> [T; N] { [x; { N }] //~^ ERROR the trait bound `T: Copy` is not satisfied } fn main() { let x: [u32; 5] = f::<u32, 5>(3); assert_eq!(x, [3u32; 5]); }