Sha256: 10873f566029f99c2345ad7cb8ebe872cd26952806309e1c7e681aa580d6df30
Contents?: true
Size: 1.01 KB
Versions: 47
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Lint # This cop checks for *return* from an *ensure* block. # Explicit return from an ensure block alters the control flow # as the return will take precedence over any exception being raised, # and the exception will be silently thrown away as if it were rescued. # # @example # # # bad # # begin # do_something # ensure # do_something_else # return # end # # @example # # # good # # begin # do_something # ensure # do_something_else # end class EnsureReturn < Cop MSG = 'Do not return from an `ensure` block.' def on_ensure(node) ensure_body = node.body return unless ensure_body ensure_body.each_node(:return) do |return_node| add_offense(return_node) end end end end end end
Version data entries
47 entries across 28 versions & 3 rubygems