@@ -97,7 +97,7 @@ func (r *Request) execSelections(ctx context.Context, sels []selected.Selection,
9797 } else {
9898 for _ , f := range fields {
9999 f .out = new (bytes.Buffer )
100- execFieldSelection (ctx , r , s , f , & pathSegment {path , f .field .Alias }, true )
100+ execFieldSelection (ctx , r , f , & pathSegment {path , f .field .Alias }, true , fixedRes , fromFixedResp )
101101 }
102102 }
103103
@@ -143,7 +143,7 @@ func collectFieldsToResolve(sels []selected.Selection, resolver reflect.Value, f
143143
144144 case * selected.TypenameField :
145145 sf := & selected.SchemaField {
146- Field : s .Meta . FieldTypename ,
146+ // Field: resolvable .Meta,
147147 Alias : sel .Alias ,
148148 FixedResult : reflect .ValueOf (typeOf (sel , resolver )),
149149 }
@@ -453,47 +453,6 @@ func (r *Request) execSelectionSet(ctx context.Context, sels []selected.Selectio
453453 }
454454}
455455
456- func (r * Request ) execList (ctx context.Context , sels []selected.Selection , typ * common.List , path * pathSegment , s * resolvable.Schema , resolver reflect.Value , out * bytes.Buffer ) {
457- l := resolver .Len ()
458- entryouts := make ([]bytes.Buffer , l )
459-
460- if selected .HasAsyncSel (sels ) {
461- var wg sync.WaitGroup
462- wg .Add (l )
463- for i := 0 ; i < l ; i ++ {
464- go func (i int ) {
465- defer wg .Done ()
466- defer r .handlePanic (ctx )
467- r .execSelectionSet (ctx , sels , typ .OfType , & pathSegment {path , i }, s , resolver .Index (i ), & entryouts [i ])
468- }(i )
469- }
470- wg .Wait ()
471- } else {
472- for i := 0 ; i < l ; i ++ {
473- r .execSelectionSet (ctx , sels , typ .OfType , & pathSegment {path , i }, s , resolver .Index (i ), & entryouts [i ])
474- }
475- }
476-
477- _ , listOfNonNull := typ .OfType .(* common.NonNull )
478-
479- out .WriteByte ('[' )
480- for i , entryout := range entryouts {
481- // If the list wraps a non-null type and one of the list elements
482- // resolves to null, then the entire list resolves to null.
483- if listOfNonNull && resolvedToNull (& entryout ) {
484- out .Reset ()
485- out .WriteString ("null" )
486- return
487- }
488-
489- if i > 0 {
490- out .WriteByte (',' )
491- }
492- out .Write (entryout .Bytes ())
493- }
494- out .WriteByte (']' )
495- }
496-
497456func unwrapNonNull (t common.Type ) (common.Type , bool ) {
498457 if nn , ok := t .(* common.NonNull ); ok {
499458 return nn .OfType , true
0 commit comments