error[E0308]: mismatched types --> $DIR/issue-107860.rs:3:36 | LL | async fn str(T: &str) -> &str { &str } | ^^^^ expected `&str`, found `&fn(&str) -> ... {str::<...>}` | = note: expected reference `&str` found reference `&for<'a> fn(&'a str) -> impl Future {str::<_>}` error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.