// revisions: no_drop_tracking drop_tracking drop_tracking_mir // [drop_tracking] compile-flags: -Zdrop-tracking // [drop_tracking_mir] compile-flags: -Zdrop-tracking-mir // 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 + Send + 'async_trait>> where 'me: 'async_trait; } impl Foo for () { fn bar<'me, 'async_trait, T: Send>(x: &'me T) -> Pin + Send + 'async_trait>> where 'me:'async_trait { Box::pin( //~ ERROR future cannot be sent between threads safely async move { let x = x; } ) } } fn main() { }