@@ -29,6 +29,7 @@ import graphql.nadel.engine.transform.result.NadelResultTransformer
2929import graphql.nadel.engine.util.MutableJsonMap
3030import graphql.nadel.engine.util.beginExecute
3131import graphql.nadel.engine.util.compileToDocument
32+ import graphql.nadel.engine.util.getFieldDefinitionSequence
3233import graphql.nadel.engine.util.getOperationDefinitionOrNull
3334import graphql.nadel.engine.util.getOperationKind
3435import graphql.nadel.engine.util.newExecutionResult
@@ -51,6 +52,8 @@ import graphql.nadel.instrumentation.parameters.child
5152import graphql.nadel.result.NadelResultMerger
5253import graphql.nadel.result.NadelResultTracker
5354import graphql.nadel.time.NadelInternalLatencyTracker
55+ import graphql.nadel.util.NamespacedUtil
56+ import graphql.nadel.util.NamespacedUtil.isNamespacedFieldLike
5457import graphql.nadel.util.OperationNameUtil
5558import graphql.nadel.validation.NadelSchemaValidation
5659import graphql.normalized.ExecutableNormalizedField
@@ -479,16 +482,13 @@ internal class NextgenEngine(
479482 ): Boolean {
480483 val topLevelField = topLevelFields.singleOrNull() ? : return false
481484
482- if (topLevelField.fieldName == TypeNameMetaFieldDef .name) {
485+ if (topLevelField.name == TypeNameMetaFieldDef .name) {
483486 return true
484487 }
485- val operationType = service.underlyingSchema.getTypeAs<GraphQLObjectType >(topLevelField.singleObjectTypeName)
486- val topLevelFieldDefinition = operationType.getField(topLevelField.name)
487- val isNamespacedLike = topLevelFieldDefinition?.arguments?.isEmpty() == true
488- && topLevelFieldDefinition.type is GraphQLObjectType
489- return isNamespacedLike &&
490- topLevelField.hasChildren() &&
491- topLevelField.children.all { it.name == TypeNameMetaFieldDef .name }
488+
489+ return isNamespacedFieldLike(service, topLevelField)
490+ && topLevelField.hasChildren()
491+ && topLevelField.children.all { it.name == TypeNameMetaFieldDef .name }
492492 }
493493
494494 private fun getDocumentVariablePredicate (hints : NadelExecutionHints , service : Service ): VariablePredicate {
0 commit comments