//@ check-pass //@ compile-flags: -Znext-solver trait Reader: Default { fn read_u8_array(&self) -> Result { todo!() } fn read_u8(&self) -> Result { let a: [u8; 1] = self.read_u8_array::<_>()?; // This results in a nested ` as Try>::Residual: Sized` goal. // The self type normalizes to `?0`. We previously did not force that to be // ambiguous but instead incompletely applied the `Self: Sized` candidate // from the `ParamEnv`, resulting in a type error. Ok(a[0]) } } fn main() {}