From 64d98f8ee037282c35007b64c2649055c56af1db Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:03 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- tests/ui/async-await/issue-70935-complex-spans.rs | 29 +++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 tests/ui/async-await/issue-70935-complex-spans.rs (limited to 'tests/ui/async-await/issue-70935-complex-spans.rs') 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(_c: impl FnMut() -> T) where T: Future { +} + +fn foo(tx: std::sync::mpsc::Sender) -> impl Future + Send { + //[no_drop_tracking]~^ ERROR future cannot be sent between threads safely + //[drop_tracking]~^^ ERROR `Sender` 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)); +} -- cgit v1.2.3