code: private function findConflictsWithinSelectionSet(
          ValidationContext $context,
          $parentType,
          SelectionSetNode $selectionSet
      ) {
          [$fieldMap, $fragmentNames] = $this->getFieldsAndFragmentNames(
              $context,
              $parentType,
              $selectionSet
          );
  
          $conflicts = [];
  
          // (A) Find find all conflicts "within" the fields of this selection set.
          // Note: this is the *only place* `collectConflictsWithin` is called.
          $this->collectConflictsWithin(
              $context,
              $conflicts,
              $fieldMap
          );
  
          $fragmentNamesLength = count($fragmentNames);
          if ($fragmentNamesLength !== 0) {
              // (B) Then collect conflicts between these fields and those represented by
              // each spread fragment name found.
              $comparedFragments = [];
              for ($i = 0; $i < $fragmentNamesLength; $i++) {
                  $this->collectConflictsBetweenFieldsAndFragment(
                      $context,
                      $conflicts,
                      $comparedFragments,
                      false,
                      $fieldMap,
                      $fragmentNames[$i]
                  );
                  // (C) Then compare this fragment with all other fragments found in this
                  // selection set to collect conflicts between fragments spread together.
                  // This compares each item in the list of fragment names to every other item
                  // in that same list (except for itself).
                  for ($j = $i + 1; $j < $fragmentNamesLength; $j++) {
                      $this->collectConflictsBetweenFragments(
                          $context,
                          $conflicts,
                          false,
                          $fragmentNames[$i],
                          $fragmentNames[$j]
                      );
                  }
              }
          }
  
          return $conflicts;
      }
docs: Find all conflicts found "within" a selection set, including those found
  via spreading in fragments. Called when visiting each SelectionSet in the
  GraphQL Document.
  
  @param CompositeType $parentType
  
  @return mixed[]