From d7800612a5eda90336249cafe88ad0fdf30743b1 Mon Sep 17 00:00:00 2001 From: daxpedda Date: Mon, 9 Dec 2019 11:51:45 +0100 Subject: [PATCH] Macro improvements. --- actix-macros/src/lib.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index ea160925..631fa28f 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -18,24 +18,23 @@ use quote::quote; #[cfg(not(test))] // Work around for rust-lang/rust#62127 pub fn main(_: TokenStream, item: TokenStream) -> TokenStream { let input = syn::parse_macro_input!(item as syn::ItemFn); - - let ret = &input.sig.output; - let name = &input.sig.ident; - let inputs = &input.sig.inputs; - let body = &input.block; let attrs = &input.attrs; + let vis = &input.vis; + let sig = &input.sig; + let body = &input.block; + let name = &sig.ident; - if input.sig.asyncness.is_none() { - return syn::Error::new_spanned(input.sig.fn_token, "only async fn is supported") + if sig.asyncness.is_none() { + return syn::Error::new_spanned(sig.fn_token, "only async fn is supported") .to_compile_error() .into(); } (quote! { #(#attrs)* - fn #name(#inputs) #ret { - actix_rt::System::new("main") - .block_on(async { #body }) + #vis #sig { + actix_rt::System::new(stringify!(#name)) + .block_on(async move { #body }) } }) .into()