mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-21 00:00:10 +02:00
macros: fix span of body variable (#5244)
This commit is contained in:
@@ -383,6 +383,7 @@ fn parse_knobs(mut input: syn::ItemFn, is_test: bool, config: FinalConfig) -> To
|
||||
|
||||
let body = &input.block;
|
||||
let brace_token = input.block.brace_token;
|
||||
let body_ident = quote! { body };
|
||||
let block_expr = quote_spanned! {last_stmt_end_span=>
|
||||
#[allow(clippy::expect_used, clippy::diverging_sub_expression)]
|
||||
{
|
||||
@@ -390,7 +391,7 @@ fn parse_knobs(mut input: syn::ItemFn, is_test: bool, config: FinalConfig) -> To
|
||||
.enable_all()
|
||||
.build()
|
||||
.expect("Failed building the Runtime")
|
||||
.block_on(body);
|
||||
.block_on(#body_ident);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -479,7 +480,7 @@ pub(crate) fn test(args: TokenStream, item: TokenStream, rt_multi_thread: bool)
|
||||
};
|
||||
let config = if let Some(attr) = input.attrs.iter().find(|attr| attr.path.is_ident("test")) {
|
||||
let msg = "second test attribute is supplied";
|
||||
Err(syn::Error::new_spanned(&attr, msg))
|
||||
Err(syn::Error::new_spanned(attr, msg))
|
||||
} else {
|
||||
AttributeArgs::parse_terminated
|
||||
.parse(args)
|
||||
|
||||
@@ -71,3 +71,18 @@ pub mod clippy_semicolon_if_nothing_returned {
|
||||
// To trigger clippy::semicolon_if_nothing_returned lint, the block needs to contain newline.
|
||||
}
|
||||
}
|
||||
|
||||
// https://github.com/tokio-rs/tokio/issues/5243
|
||||
pub mod issue_5243 {
|
||||
macro_rules! mac {
|
||||
(async fn $name:ident() $b:block) => {
|
||||
#[::tokio::test]
|
||||
async fn $name() {
|
||||
$b
|
||||
}
|
||||
};
|
||||
}
|
||||
mac!(
|
||||
async fn foo() {}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user