From 1376c5a617be5c25655d0d7cb63e3beaa5a6e026 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:20:39 +0200 Subject: Merging upstream version 1.70.0+dfsg1. Signed-off-by: Daniel Baumann --- vendor/futures-macro/src/executor.rs | 1 + vendor/futures-macro/src/join.rs | 13 +++++++------ vendor/futures-macro/src/select.rs | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) (limited to 'vendor/futures-macro/src') diff --git a/vendor/futures-macro/src/executor.rs b/vendor/futures-macro/src/executor.rs index 40a091f94..7f1d0a93f 100644 --- a/vendor/futures-macro/src/executor.rs +++ b/vendor/futures-macro/src/executor.rs @@ -44,6 +44,7 @@ pub(crate) fn test(args: TokenStream, item: TokenStream) -> TokenStream { #path::block_on(async #body) }) .unwrap(), + None, )]; let gen = quote! { diff --git a/vendor/futures-macro/src/join.rs b/vendor/futures-macro/src/join.rs index d427da27a..94e356f72 100644 --- a/vendor/futures-macro/src/join.rs +++ b/vendor/futures-macro/src/join.rs @@ -38,6 +38,7 @@ fn bind_futures(fut_exprs: Vec, span: Span) -> (Vec, Vec TokenStream { let poll_futures = future_names.iter().map(|fut| { quote! { __all_done &= __futures_crate::future::Future::poll( - unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }, __cx).is_ready(); + #fut.as_mut(), __cx).is_ready(); } }); let take_outputs = future_names.iter().map(|fut| { quote! { - unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.take_output().unwrap(), + #fut.as_mut().take_output().unwrap(), } }); @@ -96,17 +97,17 @@ pub(crate) fn try_join(input: TokenStream) -> TokenStream { let poll_futures = future_names.iter().map(|fut| { quote! { if __futures_crate::future::Future::poll( - unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }, __cx).is_pending() + #fut.as_mut(), __cx).is_pending() { __all_done = false; - } else if unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.output_mut().unwrap().is_err() { + } else if #fut.as_mut().output_mut().unwrap().is_err() { // `.err().unwrap()` rather than `.unwrap_err()` so that we don't introduce // a `T: Debug` bound. // Also, for an error type of ! any code after `err().unwrap()` is unreachable. #[allow(unreachable_code)] return __futures_crate::task::Poll::Ready( __futures_crate::Err( - unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.take_output().unwrap().err().unwrap() + #fut.as_mut().take_output().unwrap().err().unwrap() ) ); } @@ -118,7 +119,7 @@ pub(crate) fn try_join(input: TokenStream) -> TokenStream { // an `E: Debug` bound. // Also, for an ok type of ! any code after `ok().unwrap()` is unreachable. #[allow(unreachable_code)] - unsafe { __futures_crate::Pin::new_unchecked(&mut #fut) }.take_output().unwrap().ok().unwrap(), + #fut.as_mut().take_output().unwrap().ok().unwrap(), } }); diff --git a/vendor/futures-macro/src/select.rs b/vendor/futures-macro/src/select.rs index 0c8e5f1ca..2789b3e65 100644 --- a/vendor/futures-macro/src/select.rs +++ b/vendor/futures-macro/src/select.rs @@ -51,7 +51,7 @@ impl Parse for Select { CaseKind::Default } else { // ` = ` - let pat = input.parse()?; + let pat = Pat::parse_multi_with_leading_vert(input)?; input.parse::()?; let expr = input.parse()?; CaseKind::Normal(pat, expr) -- cgit v1.2.3