Sha256: 1075752e584e3d29540753dffcb8f306515dd47c12982fd78988a0b65888c24d
Contents?: true
Size: 1.46 KB
Versions: 233
Compression:
Stored size: 1.46 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Lint # Checks for the presence of a `return` inside a `begin..end` block # in assignment contexts. # In this situation, the `return` will result in an exit from the current # method, possibly leading to unexpected behavior. # # @example # # # bad # # @some_variable ||= begin # return some_value if some_condition_is_met # # do_something # end # # @example # # # good # # @some_variable ||= begin # if some_condition_is_met # some_value # else # do_something # end # end # # # good # # some_variable = if some_condition_is_met # return if another_condition_is_met # # some_value # else # do_something # end # class NoReturnInBeginEndBlocks < Base MSG = 'Do not `return` in `begin..end` blocks in assignment contexts.' def on_lvasgn(node) node.each_node(:kwbegin) do |kwbegin_node| kwbegin_node.each_node(:return) do |return_node| add_offense(return_node) end end end alias on_or_asgn on_lvasgn alias on_op_asgn on_lvasgn end end end end
Version data entries
233 entries across 224 versions & 21 rubygems