@@ -198,7 +198,7 @@ pub fn codegen(ctxt: Context, app: &App, analysis: &Analysis) -> TokenStream2 {
198
198
. collect ( ) ;
199
199
200
200
if !local_tasks_on_same_executor. is_empty ( ) {
201
- let local_spawner = util:: internal_task_ident ( ident , "LocalSpawner" ) ;
201
+ let local_spawner = util:: internal_task_ident ( t , "LocalSpawner" ) ;
202
202
fields. push ( quote ! {
203
203
/// Used to spawn tasks on the same executor
204
204
///
@@ -223,19 +223,20 @@ pub fn codegen(ctxt: Context, app: &App, analysis: &Analysis) -> TokenStream2 {
223
223
quote ! ( <' a>)
224
224
} ;
225
225
let input_vals = inputs. iter ( ) . map ( |i| & i. pat ) . collect :: < Vec < _ > > ( ) ;
226
+ let ( _input_args, _input_tupled, _input_untupled, input_ty) = util:: regroup_inputs ( & task. inputs ) ;
226
227
quote ! {
227
228
#( #attrs) *
228
229
#( #cfgs) *
229
230
#[ allow( non_snake_case) ]
230
- pub ( super ) fn #ident #generics( & self #( , #inputs) * ) {
231
+ pub ( super ) fn #ident #generics( & self #( , #inputs) * ) -> :: core :: result :: Result < ( ) , #input_ty> {
231
232
// SAFETY: This is safe to call since this can only be called
232
233
// from the same executor
233
- unsafe { super :: #internal_spawn_ident( #( #input_vals, ) * ) }
234
+ unsafe { #internal_spawn_ident( #( #input_vals, ) * ) }
234
235
}
235
236
}
236
237
} )
237
238
. collect :: < Vec < _ > > ( ) ;
238
- values. push ( quote ! ( local_spawner: #t :: LocalSpawner { _p: core:: marker:: PhantomData } ) ) ;
239
+ values. push ( quote ! ( local_spawner: #local_spawner { _p: core:: marker:: PhantomData } ) ) ;
239
240
items. push ( quote ! {
240
241
struct #local_spawner {
241
242
_p: core:: marker:: PhantomData <* mut ( ) >,
0 commit comments