error[E0308]: mismatched types --> $DIR/issue-32323.rs:5:30 | LL | pub fn f<'a, T: Tr<'a>>() -> >::Out {} | - ^^^^^^^^^^^^^^^^^^ expected associated type, found `()` | | | implicitly returns `()` as its body has no tail or `return` expression | = note: expected associated type `>::Out` found unit type `()` help: consider constraining the associated type `>::Out` to `()` | LL | pub fn f<'a, T: Tr<'a, Out = ()>>() -> >::Out {} | ++++++++++ error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.