@@ -239,15 +239,6 @@ def validate_fields(self, type_: Union[GraphQLObjectType, GraphQLInterfaceType])
239
239
# Ensure they are named correctly.
240
240
self .validate_name (field , field_name )
241
241
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
-
251
242
# Ensure the type is an output type
252
243
if not is_output_type (field .type ):
253
244
self .report_error (
@@ -513,19 +504,11 @@ def get_all_implements_interface_nodes(
513
504
def get_field_node (
514
505
type_ : Union [GraphQLObjectType , GraphQLInterfaceType ], field_name : str
515
506
) -> 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" ))),
525
510
)
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 )
529
512
530
513
531
514
def get_field_type_node (
0 commit comments