@@ -41,9 +41,9 @@ pub fn main(attr: TokenStream, item: TokenStream) -> TokenStream {
41
41
} ;
42
42
let input = syn:: parse_macro_input!( item as syn:: ItemFn ) ;
43
43
44
- let ret = & input. decl . output ;
45
- let inputs = & input. decl . inputs ;
46
- let name = & input. ident ;
44
+ let ret = & input. sig . output ;
45
+ let args = input. sig . inputs . iter ( ) ;
46
+ let name = & input. sig . ident ;
47
47
let body = & input. block ;
48
48
let attrs = & input. attrs ;
49
49
@@ -54,7 +54,7 @@ pub fn main(attr: TokenStream, item: TokenStream) -> TokenStream {
54
54
return TokenStream :: from ( tokens) ;
55
55
}
56
56
57
- if input. asyncness . is_none ( ) {
57
+ if input. sig . asyncness . is_none ( ) {
58
58
let tokens = quote_spanned ! { input. span( ) =>
59
59
compile_error!( "the async keyword is missing from the function declaration" ) ;
60
60
} ;
@@ -64,15 +64,14 @@ pub fn main(attr: TokenStream, item: TokenStream) -> TokenStream {
64
64
let result = quote ! {
65
65
fn main( ) #ret {
66
66
#( #attrs) *
67
- async fn main( #( #inputs ) , * ) #ret {
67
+ async fn main( #( #args ) , * ) #ret {
68
68
#body
69
69
}
70
70
71
71
runtime:: raw:: enter( #rt, async {
72
72
main( ) . await
73
73
} )
74
74
}
75
-
76
75
} ;
77
76
78
77
result. into ( )
@@ -106,12 +105,12 @@ pub fn test(attr: TokenStream, item: TokenStream) -> TokenStream {
106
105
} ;
107
106
let input = syn:: parse_macro_input!( item as syn:: ItemFn ) ;
108
107
109
- let ret = & input. decl . output ;
110
- let name = & input. ident ;
108
+ let ret = & input. sig . output ;
109
+ let name = & input. sig . ident ;
111
110
let body = & input. block ;
112
111
let attrs = & input. attrs ;
113
112
114
- if input. asyncness . is_none ( ) {
113
+ if input. sig . asyncness . is_none ( ) {
115
114
let tokens = quote_spanned ! { input. span( ) =>
116
115
compile_error!( "the async keyword is missing from the function declaration" ) ;
117
116
} ;
@@ -159,12 +158,12 @@ pub fn bench(attr: TokenStream, item: TokenStream) -> TokenStream {
159
158
} ;
160
159
let input = syn:: parse_macro_input!( item as syn:: ItemFn ) ;
161
160
162
- let args = & input. decl . inputs ;
163
- let name = & input. ident ;
161
+ let args = & input. sig . inputs ;
162
+ let name = & input. sig . ident ;
164
163
let body = & input. block ;
165
164
let attrs = & input. attrs ;
166
165
167
- if input. asyncness . is_none ( ) {
166
+ if input. sig . asyncness . is_none ( ) {
168
167
let tokens = quote_spanned ! { input. span( ) =>
169
168
compile_error!( "the async keyword is missing from the function declaration" ) ;
170
169
} ;
0 commit comments