class RuboCop::Cop::Lint::DuplicateSetElement

def on_send(node)

def on_send(node)
  return unless (set_elements = set_init_elements(node))
  seen_elements = Set[]
  set_elements.each_with_index do |set_element, index|
    # NOTE: Skip due to the possibility of corner cases where Set elements
    # may have changing return values if they are not literals, constants, or variables.
    next if !set_element.literal? && !set_element.const_type? && !set_element.variable?
    if seen_elements.include?(set_element)
      register_offense(set_element, set_elements[index - 1])
    else
      seen_elements << set_element
    end
  end
end