@@ -455,7 +455,6 @@ def evaluate_selection(result_name, field_ast_nodes_or_ast_node, owner_object, o
455455 evaluate_selection_with_args ( resolved_arguments , field_defn , ast_node , field_ast_nodes , owner_type , object , is_eager_field , result_name , selections_result , parent_object , return_type )
456456 end
457457 else
458- # TODO remove all arguments(...) usages?
459458 @query . arguments_cache . dataload_for ( ast_node , field_defn , object ) do |resolved_arguments |
460459 evaluate_selection_with_args ( resolved_arguments , field_defn , ast_node , field_ast_nodes , owner_type , object , is_eager_field , result_name , selections_result , parent_object , return_type )
461460 end
@@ -469,9 +468,13 @@ def evaluate_selection_with_args(arguments, field_defn, ast_node, field_ast_node
469468 next
470469 end
471470
472- kwarg_arguments = if resolved_arguments . empty? && field_defn . extras . empty?
473- # We can avoid allocating the `{ Symbol => Object }` hash in this case
474- NO_ARGS
471+ kwarg_arguments = if field_defn . extras . empty?
472+ if resolved_arguments . empty?
473+ # We can avoid allocating the `{ Symbol => Object }` hash in this case
474+ NO_ARGS
475+ else
476+ resolved_arguments . keyword_arguments
477+ end
475478 else
476479 # Bundle up the extras, then make a new arguments instance
477480 # that includes the extras, too.
@@ -510,7 +513,7 @@ def evaluate_selection_with_args(arguments, field_defn, ast_node, field_ast_node
510513 resolved_arguments . keyword_arguments
511514 end
512515
513- evaluate_selection_with_resolved_keyword_args ( kwarg_arguments , arguments , field_defn , ast_node , field_ast_nodes , owner_type , object , is_eager_field , result_name , selection_result , parent_object , return_type )
516+ evaluate_selection_with_resolved_keyword_args ( kwarg_arguments , resolved_arguments , field_defn , ast_node , field_ast_nodes , owner_type , object , is_eager_field , result_name , selection_result , parent_object , return_type )
514517 end
515518 end
516519
0 commit comments