diff --git a/Cargo.toml b/Cargo.toml index 89613b3..51a5073 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,10 +20,8 @@ default = ["native"] native = [] [dependencies] -syn = { version = "0.15.33", features = ["full"] } -proc-macro2 = { version = "0.4.29", features = ["nightly"] } -quote = "0.6.12" -async-trait = "0.1.11" +syn = { version = "1.0", features = ["full"] } +quote = "1.0" [dev-dependencies] async-std = "0.99.5" diff --git a/src/lib.rs b/src/lib.rs index f4a8f5b..e3ebbce 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -65,9 +65,9 @@ use syn::spanned::Spanned; pub fn main(_attr: TokenStream, item: TokenStream) -> TokenStream { let input = syn::parse_macro_input!(item as syn::ItemFn); - let ret = &input.decl.output; - let inputs = &input.decl.inputs; - let name = &input.ident; + let ret = &input.sig.output; + let inputs = &input.sig.inputs; + let name = &input.sig.ident; let body = &input.block; let attrs = &input.attrs; @@ -77,7 +77,7 @@ pub fn main(_attr: TokenStream, item: TokenStream) -> TokenStream { }); } - if input.asyncness.is_none() { + if input.sig.asyncness.is_none() { return TokenStream::from(quote_spanned! { input.span() => compile_error!("the async keyword is missing from the function declaration"), }); @@ -86,7 +86,7 @@ pub fn main(_attr: TokenStream, item: TokenStream) -> TokenStream { let result = quote! { fn main() #ret { #(#attrs)* - async fn main(#(#inputs),*) #ret { + async fn main(#inputs) #ret { #body } @@ -115,12 +115,12 @@ pub fn main(_attr: TokenStream, item: TokenStream) -> TokenStream { pub fn test(_attr: TokenStream, item: TokenStream) -> TokenStream { let input = syn::parse_macro_input!(item as syn::ItemFn); - let ret = &input.decl.output; - let name = &input.ident; + let ret = &input.sig.output; + let name = &input.sig.ident; let body = &input.block; let attrs = &input.attrs; - if input.asyncness.is_none() { + if input.sig.asyncness.is_none() { return TokenStream::from(quote_spanned! { input.span() => compile_error!("the async keyword is missing from the function declaration"), }); @@ -159,12 +159,12 @@ pub fn test(_attr: TokenStream, item: TokenStream) -> TokenStream { pub fn bench(_attr: TokenStream, item: TokenStream) -> TokenStream { let input = syn::parse_macro_input!(item as syn::ItemFn); - let args = &input.decl.inputs; - let name = &input.ident; + let args = &input.sig.inputs; + let name = &input.sig.ident; let body = &input.block; let attrs = &input.attrs; - if input.asyncness.is_none() { + if input.sig.asyncness.is_none() { return TokenStream::from(quote_spanned! { input.span() => compile_error!("the async keyword is missing from the function declaration"), });