code: func (rule *overlappingFieldsCanBeMergedRule) collectConflictsBetweenFieldsAndFragment(conflicts []conflict, areMutuallyExclusive bool, fieldsInfo *fieldsAndFragmentNames, fragmentName string) []conflict {
  	fragment := rule.context.Fragment(fragmentName)
  	if fragment == nil {
  		return conflicts
  	}
  
  	fieldsInfo2 := rule.getReferencedFieldsAndFragmentNames(fragment)
  
  	// (D) First collect any conflicts between the provided collection of fields
  	// and the collection of fields represented by the given fragment.
  	conflicts = rule.collectConflictsBetween(conflicts, areMutuallyExclusive, fieldsInfo, fieldsInfo2)
  
  	// (E) Then collect any conflicts between the provided collection of fields
  	// and any fragment names found in the given fragment.
  	for _, fragmentName2 := range fieldsInfo2.fragmentNames {
  		conflicts = rule.collectConflictsBetweenFieldsAndFragment(conflicts, areMutuallyExclusive, fieldsInfo2, fragmentName2)
  	}
  
  	return conflicts
  
  }
docs: // Collect all conflicts found between a set of fields and a fragment reference
  // including via spreading in any nested fragments.