| //@ edition:2018 | |
| use ::core::pin::Pin; | |
| use ::core::future::Future; | |
| use ::core::marker::Send; | |
| trait Foo { | |
| fn bar<'me, 'async_trait, T: Send>(x: &'me T) | |
| -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> | |
| where 'me: 'async_trait; | |
| } | |
| impl Foo for () { | |
| fn bar<'me, 'async_trait, T: Send>(x: &'me T) | |
| -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>> | |
| where 'me:'async_trait { | |
| Box::pin( //~ ERROR future cannot be sent between threads safely | |
| async move { | |
| let x = x; | |
| } | |
| ) | |
| } | |
| } | |
| fn main() { } |