Sha256: 5236b3b20c96b508ace1ba974a38c811fc001bb519087eac196f7f4ff5440c6d
Contents?: true
Size: 1.27 KB
Versions: 181
Compression:
Stored size: 1.27 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Lint # Checks for the use of a return with a value in a context # where the value will be ignored. (initialize and setter methods) # # @example # # # bad # def initialize # foo # return :qux if bar? # baz # end # # def foo=(bar) # return 42 # end # # @example # # # good # def initialize # foo # return if bar? # baz # end # # def foo=(bar) # return # end class ReturnInVoidContext < Base MSG = 'Do not return a value in `%<method>s`.' 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 private def non_void_context(return_node) return_node.each_ancestor(:block, :def, :defs).first end end end end end
Version data entries
181 entries across 174 versions & 17 rubygems