static function (DocumentNode $node) use ($context) : VisitorOperation { /** @var ExecutableDefinitionNode|TypeSystemDefinitionNode $definition */ foreach ($node->definitions as $definition) { if ($definition instanceof ExecutableDefinitionNode) { continue; } $context->reportError(new Error( self::nonExecutableDefinitionMessage($definition->name->value), [$definition->name] )); } return Visitor::skipNode(); }, ]; } public static function nonExecutableDefinitionMessage($defName) { return sprintf('The "%s" definition is not executable.', $defName); } }