error[E0308]: mismatched types --> $DIR/issue-68648-2.rs:12:17 | LL | fn bug<'a, T: Fun = T>>(t: T) -> T::F<'a> { | - this type parameter LL | T::identity(()) | ----------- ^^ expected type parameter `T`, found `()` | | | arguments to this function are incorrect | = note: expected type parameter `T` found unit type `()` note: associated function defined here --> $DIR/issue-68648-2.rs:4:8 | LL | fn identity<'a>(t: Self::F<'a>) -> Self::F<'a> { t } | ^^^^^^^^ -------------- error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.