knownFragmentNames = []; return [ NodeKind::OPERATION_DEFINITION => function () { return Visitor::skipNode(); }, NodeKind::FRAGMENT_DEFINITION => function (FragmentDefinitionNode $node) use ($context) { $fragmentName = $node->name->value; if (!empty($this->knownFragmentNames[$fragmentName])) { $context->reportError(new Error( self::duplicateFragmentNameMessage($fragmentName), [ $this->knownFragmentNames[$fragmentName], $node->name ] )); } else { $this->knownFragmentNames[$fragmentName] = $node->name; } return Visitor::skipNode(); } ]; } }