class RuboCop::Cop::Style::RedundantArrayConstructor


Array.new(3) { ‘foo’ }
Array.new(3, ‘foo’)
[‘foo’, ‘foo’, ‘foo’]
[]
# good
Array([‘foo’, ‘foo’, ‘foo’])
Array[‘foo’, ‘foo’, ‘foo’]
Array.new([‘foo’, ‘foo’, ‘foo’])
Array([])
Array[]
Array.new([])
# bad
@example
Autocorrect replaces to array literal which is the simplest and fastest.
Checks for the instantiation of array using redundant ‘Array` constructor.

def on_send(node)

def on_send(node)
  return unless (array_literal = redundant_array_constructor(node))
  receiver = node.receiver
  selector = node.loc.selector
  if node.method?(:new)
    range = receiver.source_range.join(selector)
    replacement = array_literal
  elsif node.method?(:Array)
    range = selector
    replacement = array_literal
  else
    range = receiver
    replacement = selector.begin.join(node.source_range.end)
  end
  register_offense(range, node, replacement)
end

def register_offense(range, node, replacement)

def register_offense(range, node, replacement)
  add_offense(range) do |corrector|
    corrector.replace(node, replacement.source)
  end
end