//@ revisions: full min #![allow(incomplete_features)] #![cfg_attr(full, feature(generic_const_exprs))] #![cfg_attr(full, allow(incomplete_features))] trait HasSize { const SIZE: usize; } impl HasSize for ArrayHolder { const SIZE: usize = X; } struct ArrayHolder([u32; X]); impl ArrayHolder { pub const fn new() -> Self { ArrayHolder([0; Self::SIZE]) //~^ ERROR mismatched types //[full]~^^ ERROR unconstrained generic constant //[min]~^^^ ERROR constant expression depends on a generic parameter } } fn main() { let mut array = ArrayHolder::new(); //~^ ERROR: type annotations needed //~| ERROR type annotations needed }