// check-pass trait Trait { type Assoc; } impl Trait for () { type Assoc = (); } fn unit() -> impl Into<<() as Trait>::Assoc> {} pub fn ice() { Into::into(unit()); } fn main() {}