class RuboCop::Cop::InternalAffairs::RedundantSourceRange


add_offense(node) { |corrector| corrector.swap(node, before, after) }
add_offense(node) { |corrector| corrector.insert_after_multi(node, prefer) }
add_offense(node) { |corrector| corrector.insert_after(node, prefer) }
add_offense(node) { |corrector| corrector.insert_before_multi(node, prefer) }
add_offense(node) { |corrector| corrector.insert_before(node, prefer) }
add_offense(node) { |corrector| corrector.replace(node, prefer) }
# good
add_offense(node) { |corrector| corrector.swap(node.source_range, before, after) }
add_offense(node) { |corrector| corrector.insert_after_multi(node.source_range, prefer) }
add_offense(node) { |corrector| corrector.insert_after(node.source_range, prefer) }
add_offense(node) { |corrector| corrector.insert_before_multi(node.source_range, prefer) }
add_offense(node) { |corrector| corrector.insert_before(node.source_range, prefer) }
add_offense(node) { |corrector| corrector.replace(node.source_range, prefer) }
# bad
node.source
# good
node.source_range.source
# bad
@example
Checks for redundant ‘source_range`.

def on_send(node)

def on_send(node)
  return unless (source_range = redundant_source_range(node))
  return if source_range.receiver.send_type? && source_range.receiver.method?(:buffer)
  selector = source_range.loc.selector
  add_offense(selector) do |corrector|
    corrector.remove(source_range.loc.dot.join(selector))
  end
end