class RuboCop::Cop::Style::NilLambda


Proc.new { nil if x }
proc {}
-> (x) { nil if x }
end
lambda do
-> {}
# good
end
break nil
Proc.new do
proc { nil }
end
next nil
lambda do
-> { nil }
# bad
@example
which can be replaced with an empty lambda or proc instead.
This cop checks for lambdas and procs that always return nil,

def autocorrect(corrector, node)

def autocorrect(corrector, node)
  range = if node.single_line?
            range_with_surrounding_space(range: node.body.loc.expression)
          else
            range_by_whole_lines(node.body.loc.expression, include_final_newline: true)
          end
  corrector.remove(range)
end

def on_block(node)

def on_block(node)
  return unless node.lambda? || node.proc?
  return unless nil_return?(node.body)
  message = format(MSG, type: node.lambda? ? 'lambda' : 'proc')
  add_offense(node, message: message) do |corrector|
    autocorrect(corrector, node)
  end
end