class RuboCop::Cop::Performance::RedundantMerge::EachWithObjectInspector
‘each_with_object` call.
A utility class for checking the use of values within an
def eligible_receiver?
def eligible_receiver? receiver.respond_to?(:lvar_type?) && receiver.lvar_type? end
def initialize(node, receiver)
def initialize(node, receiver) @node = node @receiver = unwind(receiver) end
def second_argument
def second_argument parent = node.parent parent = parent.parent if parent.begin_type? @second_argument ||= each_with_object_node(parent) end
def unwind(receiver)
def unwind(receiver) receiver, = *receiver while receiver.respond_to?(:send_type?) && receiver.send_type? receiver end
def value_used?
def value_used? return false unless eligible_receiver? && second_argument receiver.loc.name.source == second_argument.loc.name.source end