| // Regression test for #64477. | |
| // | |
| // We were incorrectly claiming that the `f(x).await` future captured | |
| // a value of type `T`, and hence that `T: Send` would have to hold. | |
| // | |
| //@ check-pass | |
| //@ edition:2018 | |
| use std::future::Future; | |
| use std::pin::Pin; | |
| fn f<T>(_: &T) -> Pin<Box<dyn Future<Output = ()> + Send>> { | |
| unimplemented!() | |
| } | |
| pub fn g<T: Sync>(x: &'static T) -> impl Future<Output = ()> + Send { | |
| async move { f(x).await } | |
| } | |
| fn main() { } |