error: constant expression depends on a generic parameter --> $DIR/issue-62504.rs:18:25 | LL | ArrayHolder([0; Self::SIZE]) | ^^^^^^^^^^ | = note: this may fail depending on what value the parameter takes error[E0308]: mismatched types --> $DIR/issue-62504.rs:18:21 | LL | ArrayHolder([0; Self::SIZE]) | ----------- ^^^^^^^^^^^^^^^ expected `X`, found `Self::SIZE` | | | arguments to this struct are incorrect | = note: expected array `[u32; X]` found array `[u32; Self::SIZE]` note: tuple struct defined here --> $DIR/issue-62504.rs:14:8 | LL | struct ArrayHolder([u32; X]); | ^^^^^^^^^^^ error[E0282]: type annotations needed for `ArrayHolder` --> $DIR/issue-62504.rs:26:9 | LL | let mut array = ArrayHolder::new(); | ^^^^^^^^^ | help: consider giving `array` an explicit type, where the value of const parameter `X` is specified | LL | let mut array: ArrayHolder = ArrayHolder::new(); | ++++++++++++++++ error: aborting due to 3 previous errors Some errors have detailed explanations: E0282, E0308. For more information about an error, try `rustc --explain E0282`.