@@ -239,15 +239,6 @@ def validate_fields(self, type_: Union[GraphQLObjectType, GraphQLInterfaceType])
239239 # Ensure they are named correctly.
240240 self .validate_name (field , field_name )
241241
242- # Ensure they were defined at most once.
243- field_nodes = get_all_field_nodes (type_ , field_name )
244- if len (field_nodes ) > 1 :
245- self .report_error (
246- f"Field { type_ .name } .{ field_name } can only be defined once." ,
247- field_nodes ,
248- )
249- continue
250-
251242 # Ensure the type is an output type
252243 if not is_output_type (field .type ):
253244 self .report_error (
@@ -513,19 +504,11 @@ def get_all_implements_interface_nodes(
513504def get_field_node (
514505 type_ : Union [GraphQLObjectType , GraphQLInterfaceType ], field_name : str
515506) -> Optional [FieldDefinitionNode ]:
516- nodes = get_all_field_nodes (type_ , field_name )
517- return nodes [0 ] if nodes else None
518-
519-
520- def get_all_field_nodes (
521- type_ : Union [GraphQLObjectType , GraphQLInterfaceType ], field_name : str
522- ) -> List [FieldDefinitionNode ]:
523- field_nodes = cast (
524- List [FieldDefinitionNode ], get_all_sub_nodes (type_ , attrgetter ("fields" ))
507+ all_field_nodes = filter (
508+ lambda field_node : field_node .name .value == field_name ,
509+ cast (List [FieldDefinitionNode ], get_all_sub_nodes (type_ , attrgetter ("fields" ))),
525510 )
526- return [
527- field_node for field_node in field_nodes if field_node .name .value == field_name
528- ]
511+ return next (all_field_nodes , None )
529512
530513
531514def get_field_type_node (
0 commit comments