class RuboCop::Cop::Lint::RedundantWithIndex


end
v
ary.each do |v|
# good
end
v
ary.each.with_index do |v|
# bad
end
v
ary.each do |v|
# good
end
v
ary.each_with_index do |v|
# bad
@example
This cop checks for redundant ‘with_index`.

def autocorrect(node)

def autocorrect(node)
  lambda do |corrector|
    redundant_with_index?(node) do |send|
      if send.method_name == :each_with_index
        corrector.replace(send.loc.selector, 'each')
      else
        corrector.remove(with_index_range(send))
        corrector.remove(send.loc.dot)
      end
    end
  end
end

def message(node)

def message(node)
  if node.method_name == :each_with_index
    MSG_EACH_WITH_INDEX
  else
    MSG_WITH_INDEX
  end
end

def on_block(node)

def on_block(node)
  redundant_with_index?(node) do |send|
    add_offense(node, location: with_index_range(send))
  end
end

def with_index_range(send)

def with_index_range(send)
  range_between(
    send.loc.selector.begin_pos,
    send.loc.expression.end_pos
  )
end