Sha256: b4e4ef699f5dd1a8c32e203446edeba8e278b55975731477c1d72d7e90158c03
Contents?: true
Size: 1.01 KB
Versions: 255
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Metrics module Utils # @api private # # Identifies repetitions `&.` on the same variable: # # my_var&.foo # my_var&.bar # => repeated # my_var = baz # => reset # my_var&.qux # => not repeated module RepeatedCsendDiscount def reset_repeated_csend @repeated_csend = {} end 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) var_name = node.children.first @repeated_csend.delete(var_name) end end end end end end
Version data entries
255 entries across 246 versions & 24 rubygems