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.
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(node.body.source_range) else range_by_whole_lines(node.body.source_range, include_final_newline: true) end corrector.remove(range) end
def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler
def on_block(node) # rubocop:disable InternalAffairs/NumblockHandler return unless node.lambda_or_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