diff options
Diffstat (limited to 'tests/ui/impl-trait/auto-trait-contains-err.rs')
| -rw-r--r-- | tests/ui/impl-trait/auto-trait-contains-err.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/impl-trait/auto-trait-contains-err.rs b/tests/ui/impl-trait/auto-trait-contains-err.rs new file mode 100644 index 00000000000..d7f094211d7 --- /dev/null +++ b/tests/ui/impl-trait/auto-trait-contains-err.rs @@ -0,0 +1,25 @@ +//@ compile-flags: --edition=2021 + +use std::future::Future; + +fn invalid_future() -> impl Future {} +//~^ ERROR `()` is not a future + +fn create_complex_future() -> impl Future<Output = impl ReturnsSend> { + async { &|| async { invalid_future().await } } +} + +fn coerce_impl_trait() -> impl Future<Output = impl Send> { + create_complex_future() +} + +trait ReturnsSend {} + +impl<F, R> ReturnsSend for F +where + F: Fn() -> R, + R: Send, +{ +} + +fn main() {} |
