//@ build-pass #![feature(default_field_values)] struct W; impl W { const fn new() -> Self { W } } struct Z { // No inference. one: W = W::::new(), // Inference works too. two: W = W::new(), // An anon const that is too generic before substitution. too_generic: usize = X + 1, } fn use_generically() { let x: Z = Z { .. }; } fn main() { let x: Z<0> = Z { .. }; use_generically::<0>(); }