@@ -789,8 +789,10 @@ def after_lazy(lazy_obj, field:, owner_object:, arguments:, ast_node:, result:,
789789 runtime_state . was_authorized_by_scope_items = was_authorized_by_scope_items
790790 # Wrap the execution of _this_ method with tracing,
791791 # but don't wrap the continuation below
792+ result = nil
792793 inner_obj = begin
793- if trace
794+ result = if trace
795+ @current_trace . begin_execute_field ( field , owner_object , arguments , query )
794796 @current_trace . execute_field_lazy ( field : field , query : query , object : owner_object , arguments : arguments , ast_node : ast_node ) do
795797 schema . sync_lazy ( lazy_obj )
796798 end
@@ -805,6 +807,10 @@ def after_lazy(lazy_obj, field:, owner_object:, arguments:, ast_node:, result:,
805807 rescue GraphQL ::ExecutionError => ex_err
806808 ex_err
807809 end
810+ ensure
811+ if trace
812+ @current_trace . end_execute_field ( field , owner_object , arguments , query , result )
813+ end
808814 end
809815 yield ( inner_obj , runtime_state )
810816 end
@@ -852,17 +858,18 @@ def resolve_type(type, value)
852858 resolved_type , resolved_value = @current_trace . resolve_type ( query : query , type : type , object : value ) do
853859 query . resolve_type ( type , value )
854860 end
861+ @current_trace . end_resolve_type ( type , value , context , resolved_type )
855862
856863 if lazy? ( resolved_type )
857864 GraphQL ::Execution ::Lazy . new do
865+ @current_trace . begin_resolve_type ( type , value , context )
858866 @current_trace . resolve_type_lazy ( query : query , type : type , object : value ) do
859867 rt = schema . sync_lazy ( resolved_type )
860868 @current_trace . end_resolve_type ( type , value , context , rt )
861869 rt
862870 end
863871 end
864872 else
865- @current_trace . end_resolve_type ( type , value , context , resolved_type )
866873 [ resolved_type , resolved_value ]
867874 end
868875 end
0 commit comments