class RuboCop::Cop::Lint::ReturnInVoidContext
end
return
def foo=(bar)
end
baz
return if bar?
foo
def initialize
# good
@example
end
return 42
def foo=(bar)
end
baz
return :qux if bar?
foo
def initialize
# bad
@example
where the value will be ignored. (initialize and setter methods)
Checks for the use of a return with a value in a context
def non_void_context(return_node)
def non_void_context(return_node) return_node.each_ancestor(:block, :def, :defs).first end
def on_return(return_node)
def on_return(return_node) return unless return_node.descendants.any? context_node = non_void_context(return_node) return unless context_node&.def_type? return unless context_node&.void_context? add_offense( return_node.loc.keyword, message: format(message, method: context_node.method_name) ) end