class RuboCop::Cop::Lint::RedundantWithObject


end
v
ary.each do |v|
# good
end
v
ary.each.with_object([]) do |v|
# bad
end
v
ary.each do |v|
# good
end
v
ary.each_with_object([]) do |v|
# bad
@example
Checks for redundant ‘with_object`.

def message(node)

def message(node)
  if node.method?(:each_with_object)
    MSG_EACH_WITH_OBJECT
  else
    MSG_WITH_OBJECT
  end
end

def on_block(node)

def on_block(node)
  return unless (send = redundant_with_object?(node))
  range = with_object_range(send)
  add_offense(range, message: message(send)) do |corrector|
    if send.method?(:each_with_object)
      corrector.replace(range, 'each')
    else
      corrector.remove(range)
      corrector.remove(send.loc.dot)
    end
  end
end

def with_object_range(send)

def with_object_range(send)
  range_between(send.loc.selector.begin_pos, send.source_range.end_pos)
end