@@ -41,12 +41,11 @@ public MergedSelectionSet collectFields(FieldCollectorParameters parameters, Mer
4141 public MergedSelectionSet collectFields (FieldCollectorParameters parameters , MergedField mergedField , boolean incrementalSupport ) {
4242 Map <String , MergedField > subFields = new LinkedHashMap <>();
4343 Set <String > visitedFragments = new LinkedHashSet <>();
44- for ( Field field : mergedField .getFields ()) {
45- if (field .getSelectionSet () = = null ) {
46- continue ;
44+ mergedField .forEach ( field -> {
45+ if (field .getSelectionSet () ! = null ) {
46+ this . collectFields ( parameters , field . getSelectionSet (), visitedFragments , subFields , null , incrementalSupport ) ;
4747 }
48- this .collectFields (parameters , field .getSelectionSet (), visitedFragments , subFields , null , incrementalSupport );
49- }
48+ });
5049 return newMergedSelectionSet ().subFields (subFields ).build ();
5150 }
5251
@@ -142,11 +141,8 @@ private void collectField(FieldCollectorParameters parameters, Map<String, Merge
142141 }
143142 String name = field .getResultKey ();
144143 if (fields .containsKey (name )) {
145- MergedField curFields = fields .get (name );
146- fields .put (name , curFields .transform (builder -> builder
147- .addField (field )
148- .addDeferredExecution (deferredExecution ))
149- );
144+ MergedField currentMergedField = fields .get (name );
145+ fields .put (name , currentMergedField .newMergedFieldWith (field ,deferredExecution ));
150146 } else {
151147 fields .put (name , MergedField .newSingletonMergedField (field , deferredExecution ));
152148 }
0 commit comments