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

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0308`.
