@@ -681,10 +681,10 @@ fn check_output_impls_into_response(item_fn: &ItemFn) -> TokenStream {
681
681
#[ allow( unreachable_code) ]
682
682
#[ doc( hidden) ]
683
683
async fn #name( ) {
684
- let value = #receiver #make_value_name( ) . await ;
685
684
fn check<T >( _: T )
686
685
where T : :: axum:: response:: IntoResponse
687
686
{ }
687
+ let value = #receiver #make_value_name( ) . await ;
688
688
check( value) ;
689
689
}
690
690
}
@@ -696,12 +696,12 @@ fn check_output_impls_into_response(item_fn: &ItemFn) -> TokenStream {
696
696
async fn #name( ) {
697
697
#make
698
698
699
- let value = #make_value_name( ) . await ;
700
-
701
699
fn check<T >( _: T )
702
700
where T : :: axum:: response:: IntoResponse
703
701
{ }
704
702
703
+ let value = #make_value_name( ) . await ;
704
+
705
705
check( value) ;
706
706
}
707
707
}
@@ -732,10 +732,13 @@ fn check_future_send(item_fn: &ItemFn, kind: FunctionKind) -> TokenStream {
732
732
733
733
let name = format_ident ! ( "__axum_macros_check_{}_future" , item_fn. sig. ident) ;
734
734
735
- let do_check = quote ! {
735
+ let define_check = quote ! {
736
736
fn check<T >( _: T )
737
737
where T : :: std:: future:: Future + Send
738
738
{ }
739
+ } ;
740
+
741
+ let do_check = quote ! {
739
742
check( future) ;
740
743
} ;
741
744
@@ -745,6 +748,7 @@ fn check_future_send(item_fn: &ItemFn, kind: FunctionKind) -> TokenStream {
745
748
#[ allow( unreachable_code) ]
746
749
#[ doc( hidden) ]
747
750
fn #name( ) {
751
+ #define_check
748
752
let future = #receiver #handler_name( #( #args) , * ) ;
749
753
#do_check
750
754
}
@@ -756,6 +760,7 @@ fn check_future_send(item_fn: &ItemFn, kind: FunctionKind) -> TokenStream {
756
760
#[ doc( hidden) ]
757
761
fn #name( ) {
758
762
#item_fn
763
+ #define_check
759
764
let future = #handler_name( #( #args) , * ) ;
760
765
#do_check
761
766
}
0 commit comments