GraphQL\Validator\Rules\UniqueInputFieldNames::__invoke PHP Method

__invoke() public method

public __invoke ( ValidationContext $context )
$context GraphQL\Validator\ValidationContext
    public function __invoke(ValidationContext $context)
    {
        $this->knownNames = [];
        $this->knownNameStack = [];
        return [NodeKind::OBJECT => ['enter' => function () {
            $this->knownNameStack[] = $this->knownNames;
            $this->knownNames = [];
        }, 'leave' => function () {
            $this->knownNames = array_pop($this->knownNameStack);
        }], NodeKind::OBJECT_FIELD => function (ObjectFieldNode $node) use($context) {
            $fieldName = $node->name->value;
            if (!empty($this->knownNames[$fieldName])) {
                $context->reportError(new Error(self::duplicateInputFieldMessage($fieldName), [$this->knownNames[$fieldName], $node->name]));
            } else {
                $this->knownNames[$fieldName] = $node->name;
            }
            return Visitor::skipNode();
        }];
    }