diff options
Diffstat (limited to 'tests/ui/async-await/issue-70935-complex-spans.rs')
-rw-r--r-- | tests/ui/async-await/issue-70935-complex-spans.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/async-await/issue-70935-complex-spans.rs b/tests/ui/async-await/issue-70935-complex-spans.rs new file mode 100644 index 000000000..b6d17f93a --- /dev/null +++ b/tests/ui/async-await/issue-70935-complex-spans.rs @@ -0,0 +1,29 @@ +// edition:2018 +// revisions: no_drop_tracking drop_tracking +// [no_drop_tracking]compile-flags:-Zdrop-tracking=no +// [drop_tracking]compile-flags:-Zdrop-tracking +// #70935: Check if we do not emit snippet +// with newlines which lead complex diagnostics. + +use std::future::Future; + +async fn baz<T>(_c: impl FnMut() -> T) where T: Future<Output=()> { +} + +fn foo(tx: std::sync::mpsc::Sender<i32>) -> impl Future + Send { + //[no_drop_tracking]~^ ERROR future cannot be sent between threads safely + //[drop_tracking]~^^ ERROR `Sender<i32>` cannot be shared between threads + async move { + baz(|| async{ + foo(tx.clone()); + }).await; + } +} + +fn bar(_s: impl Future + Send) { +} + +fn main() { + let (tx, _rx) = std::sync::mpsc::channel(); + bar(foo(tx)); +} |