module RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount

def discount_for_repeated_csend?(csend_node)

def discount_for_repeated_csend?(csend_node)
  receiver = csend_node.receiver
  return false unless receiver.lvar_type?
  var_name = receiver.children.first
  seen = @repeated_csend.fetch(var_name) do
    @repeated_csend[var_name] = csend_node
    return false
  end
  !seen.equal?(csend_node)
end

def reset_on_lvasgn(node)

def reset_on_lvasgn(node)
  var_name = node.children.first
  @repeated_csend.delete(var_name)
end

def reset_repeated_csend

def reset_repeated_csend
  @repeated_csend = {}
end