Sha256: 0de0e262ff832a3feb0349cd535462761bfb6928c8f4fb6afc83ba5913cd817c
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Lint # This cop checks for top level return with arguments. If there is a # top-level return statement with an argument, then the argument is # always ignored. This is detected automatically since Ruby 2.7. # # @example # # # Detected since Ruby 2.7 # return 1 # 1 is always ignored. class TopLevelReturnWithArgument < Cop # This cop works by validating the ancestors of the return node. A # top-level return node's ancestors should not be of block, def, or # defs type. MSG = 'Top level return with argument detected.' def on_return(return_node) add_offense(return_node) if return_node.arguments? && ancestors_valid?(return_node) end private def ancestors_valid?(return_node) prohibited_ancestors = return_node.each_ancestor(:block, :def, :defs) prohibited_ancestors.none? end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rubocop-0.89.1 | lib/rubocop/cop/lint/top_level_return_with_argument.rb |
rubocop-0.89.0 | lib/rubocop/cop/lint/top_level_return_with_argument.rb |