src/Validator/Rules/OverlappingFieldsCanBeMerged.php
private function getFieldsAndFragmentNames(
        ValidationContext $context,
        $parentType,
        SelectionSetNode $selectionSet
    ) {
        if (isset($this->cachedFieldsAndFragmentNames[$selectionSet])) {
            $cached = $this->cachedFieldsAndFragmentNames[$selectionSet];
        } else {
            $astAndDefs    = [];
            $fragmentNames = [];

            $this->internalCollectFieldsAndFragmentNames(
                $context,
                $parentType,
                $selectionSet,
                $astAndDefs,
                $fragmentNames
            );
            $cached                                            = [$astAndDefs, array_keys($fragmentNames)];
            $this->cachedFieldsAndFragmentNames[$selectionSet] = $cached;
        }

        return $cached;
    }
private function getFieldsAndFragmentNames(
        ValidationContext $context,
        $parentType,
        SelectionSetNode $selectionSet
    ) {
        if (isset($this->cachedFieldsAndFragmentNames[$selectionSet])) {
            $cached = $this->cachedFieldsAndFragmentNames[$selectionSet];
        } else {
            $astAndDefs    = [];
            $fragmentNames = [];

            $this->internalCollectFieldsAndFragmentNames(
                $context,
                $parentType,
                $selectionSet,
                $astAndDefs,
                $fragmentNames
            );
            $cached                                            = [$astAndDefs, array_keys($fragmentNames)];
            $this->cachedFieldsAndFragmentNames[$selectionSet] = $cached;
        }

        return $cached;
    }
private function getFieldsAndFragmentNames ( ValidationContext $ context , $ parentType , SelectionSetNode $ selectionSet ) { if ( isset ( $ this -> cachedFieldsAndFragmentNames [ $ selectionSet ] ) ) { $ cached = $ this -> cachedFieldsAndFragmentNames [ $ selectionSet ] ; } else { $ astAndDefs = [ ] ; $ fragmentNames = [ ] ; $ this -> internalCollectFieldsAndFragmentNames ( $ context , $ parentType , $ selectionSet , $ astAndDefs , $ fragmentNames ) ; $ cached = [ $ astAndDefs , array_keys ( $ fragmentNames ) ] ; $ this -> cachedFieldsAndFragmentNames [ $ selectionSet ] = $ cached ; } return $ cached ; }
Given a selection set, return the collection of fields (a mapping of response
name to field ASTs and definitions) as well as a list of fragment names
referenced via fragment spreads.

@param CompositeType $parentType

@return mixed[]|SplObjectStorage
Given a selection set return the collection of fields ( a mapping of response name to field ASTs and definitions ) as well as a list of fragment names referenced via fragment spreads .