lib/rubocop/comment_config.rb in rubocop-0.91.0 vs lib/rubocop/comment_config.rb in rubocop-0.91.1

- old
+ new

@@ -39,16 +39,19 @@ def cop_disabled_line_ranges @cop_disabled_line_ranges ||= analyze end def extra_enabled_comments - extra_enabled_comments_with_names([], {}) + extra_enabled_comments_with_names( + extras: Hash.new { |h, k| h[k] = [] }, + names: Hash.new(0) + ) end private - def extra_enabled_comments_with_names(extras, names) + def extra_enabled_comments_with_names(extras:, names:) each_directive do |comment, cop_names, disabled| next unless comment_only_line?(comment.loc.expression.line) if !disabled && enable_all?(comment) handle_enable_all(names, extras, comment) @@ -188,21 +191,22 @@ names[name] -= 1 enabled_cops += 1 end - extras << [comment, 'all'] if enabled_cops.zero? + extras[comment] << 'all' if enabled_cops.zero? end + # Collect cops that have been disabled or enabled by name in a directive comment + # so that `Lint/RedundantCopEnableDirective` can register offenses correctly. def handle_switch(cop_names, names, disabled, extras, comment) cop_names.each do |name| - names[name] ||= 0 if disabled names[name] += 1 elsif (names[name]).positive? names[name] -= 1 else - extras << [comment, name] + extras[comment] << name end end end end end