File tree 1 file changed +9
-11
lines changed
1 file changed +9
-11
lines changed Original file line number Diff line number Diff line change @@ -143,22 +143,20 @@ pub fn test(_attr: TokenStream, item: TokenStream) -> TokenStream {
143
143
///
144
144
/// ```ignore
145
145
/// #![feature(test)]
146
- ///
147
146
/// extern crate test;
148
147
///
149
- /// use async_std::task;
150
- ///
151
- /// #[async_attributes::test]
152
- /// async fn spawn_and_await() {
153
- /// task::spawn(async {
148
+ /// #[async_attributes::bench]
149
+ /// async fn bench_1(b: &mut test::Bencher) {
150
+ /// b.iter(|| {
154
151
/// println!("hello world");
155
- /// }).await;
152
+ /// })
156
153
/// }
157
154
/// ```
158
155
#[ proc_macro_attribute]
159
156
pub fn bench ( _attr : TokenStream , item : TokenStream ) -> TokenStream {
160
157
let input = syn:: parse_macro_input!( item as syn:: ItemFn ) ;
161
158
159
+ let ret = & input. sig . output ;
162
160
let args = & input. sig . inputs ;
163
161
let name = & input. sig . ident ;
164
162
let body = & input. block ;
@@ -179,10 +177,10 @@ pub fn bench(_attr: TokenStream, item: TokenStream) -> TokenStream {
179
177
let result = quote ! {
180
178
#[ bench]
181
179
#( #attrs) *
182
- fn #name( b: & mut test:: Bencher ) {
183
- b . iter ( || {
184
- let _ = async_std :: task :: block_on ( async { #body } ) ;
185
- } ) ;
180
+ fn #name( b: & mut test:: Bencher ) #ret {
181
+ task :: block_on ( task :: spawn ( async {
182
+ #body
183
+ } ) )
186
184
}
187
185
} ;
188
186
You can’t perform that action at this time.
0 commit comments