-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Closed
Labels
F-async_fn_in_traitStatic async fn in traitsStatic async fn in traits
Description
trait TcpStack {
type Connection<'a>: Sized where Self: 'a;
async fn connect<'a>(&'a self) -> Self::Connection<'a>;
}
fails with
error[E0309]: the parameter type `Self` may not live long enough
--> src/lib.rs:6:39
|
6 | async fn connect<'a>(&'a self) -> Self::Connection<'a>;
| ^^^^^^^^^^^^^^^^^^^^
|
= help: consider adding an explicit lifetime bound `Self: 'a`...
= note: ...so that the type `Self` will meet its required lifetime bounds...
note: ...that is required by this bound
--> src/lib.rs:5:44
|
5 | type Connection<'a>: Sized where Self: 'a;
| ^^
However, in the method context, Self: 'a
is already implied by having a &'a self
argument. The equivalent without async
builds fine thanks to that, I think the async
one should too.
@rustbot label F-async_fn_in_trait
Metadata
Metadata
Assignees
Labels
F-async_fn_in_traitStatic async fn in traitsStatic async fn in traits