class RuboCop::Cop::Lint::IdentityComparison


!foo.equal?(baz)
foo.equal?(bar)
# good
foo.object_id != baz.object_id
foo.object_id == bar.object_id
# bad
@example
`Object#==‘ is provided for the purpose of doing value comparison.
`Object#equal?` is provided to compare objects for identity, and in contrast
Prefer `equal?` over `==` when comparing `object_id`.

def on_send(node)

def on_send(node)
  return unless (comparison_method = object_id_comparison(node))
  bang = comparison_method == :== ? '' : '!'
  add_offense(node,
              message: format(MSG, comparison_method: comparison_method,
                                   bang: bang)) do |corrector|
    receiver = node.receiver.receiver
    argument = node.first_argument.receiver
    return unless receiver && argument
    replacement = "#{bang}#{receiver.source}.equal?(#{argument.source})"
    corrector.replace(node, replacement)
  end
end