//@ run-rustfix //@ edition: 2021 #![allow(unused)] trait Foo { fn test() -> impl std::future::Future + Send { async {} } fn test2() -> impl std::future::Future + Send {async { 1 + 2 } } } fn bar() { fn needs_send(_: impl Send) {} needs_send(T::test()); //~^ ERROR `impl Future` cannot be sent between threads safely needs_send(T::test2()); //~^ ERROR `impl Future` cannot be sent between threads safely } fn main() {}