@@ -37,9 +37,9 @@ def get_subfield_asts(context, return_type, field_asts):
3737
3838def get_resolvers (context , type , field_asts ):
3939 from .resolver import field_resolver
40+ subfield_asts = get_subfield_asts (context , type , field_asts )
4041
41- resolvers = []
42- for response_name , field_asts in field_asts .items ():
42+ for response_name , field_asts in subfield_asts .items ():
4343 field_ast = field_asts [0 ]
4444 field_name = field_ast .name .value
4545 field_def = get_field_def (context and context .schema , type , field_name )
@@ -61,7 +61,7 @@ def get_resolvers(context, type, field_asts):
6161 if isinstance (field_base_type , GraphQLObjectType ):
6262 field_fragment = Fragment (
6363 type = field_base_type ,
64- field_asts = get_subfield_asts ( context , field_base_type , field_asts ) ,
64+ field_asts = field_asts ,
6565 info = info ,
6666 context = context
6767 )
@@ -78,8 +78,7 @@ def get_resolvers(context, type, field_asts):
7878 field_ast .arguments ,
7979 context and context .variable_values
8080 )
81- resolvers .append ((response_name , resolver , args , context and context .context_value , info ))
82- return resolvers
81+ yield (response_name , resolver , args , context and context .context_value , info )
8382
8483
8584class Fragment (object ):
@@ -92,11 +91,11 @@ def __init__(self, type, field_asts, context=None, info=None):
9291
9392 @cached_property
9493 def partial_resolvers (self ):
95- return get_resolvers (
94+ return list ( get_resolvers (
9695 self .context ,
9796 self .type ,
9897 self .field_asts
99- )
98+ ))
10099
101100 def have_type (self , root ):
102101 return not self .type .is_type_of or self .type .is_type_of (root , self .context .context_value , self .info )
@@ -191,7 +190,7 @@ def get_fragment(self, type):
191190 ).format (type , self .abstract_type )
192191 self ._fragments [type ] = Fragment (
193192 type ,
194- get_subfield_asts ( self .context , type , self . field_asts ) ,
193+ self .field_asts ,
195194 self .context ,
196195 self .info
197196 )
0 commit comments