Merge pull request #12971 from Homebrew/dependabot/bundler/Library/Homebrew/rubocop-performance-1.13.3

build(deps): bump rubocop-performance from 1.13.2 to 1.13.3 in /Library/Homebrew
This commit is contained in:
Mike McQuaid 2022-03-08 08:27:03 +00:00 committed by GitHub
commit 5f044f0c53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 14 additions and 20 deletions

View File

@ -134,7 +134,7 @@ GEM
unicode-display_width (>= 1.4.0, < 3.0) unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.16.0) rubocop-ast (1.16.0)
parser (>= 3.1.1.0) parser (>= 3.1.1.0)
rubocop-performance (1.13.2) rubocop-performance (1.13.3)
rubocop (>= 1.7.0, < 2.0) rubocop (>= 1.7.0, < 2.0)
rubocop-ast (>= 0.4.0) rubocop-ast (>= 0.4.0)
rubocop-rails (2.13.2) rubocop-rails (2.13.2)

View File

@ -405,8 +405,8 @@ class RuboCop::Cop::Performance::MapCompact < ::RuboCop::Cop::Base
def compact_method_with_final_newline_range(compact_method_range); end def compact_method_with_final_newline_range(compact_method_range); end
def invoke_method_after_map_compact_on_same_line?(compact_node, chained_method); end def invoke_method_after_map_compact_on_same_line?(compact_node, chained_method); end
def map_method_and_compact_method_on_same_line?(compact_node); end def map_method_and_compact_method_on_same_line?(map_node, compact_node); end
def remove_compact_method(corrector, compact_node, chained_method); end def remove_compact_method(corrector, map_node, compact_node, chained_method); end
end end
RuboCop::Cop::Performance::MapCompact::MSG = T.let(T.unsafe(nil), String) RuboCop::Cop::Performance::MapCompact::MSG = T.let(T.unsafe(nil), String)

View File

@ -85,7 +85,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-ast-1.16.0/li
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-progressbar-1.11.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/ruby-progressbar-1.11.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-2.1.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-2.1.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-1.25.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-1.25.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.13.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.13.3/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rails-2.13.2/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rails-2.13.2/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-2.9.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-2.9.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.6.7/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.6.7/lib"

View File

@ -3,18 +3,16 @@
module RuboCop module RuboCop
module Cop module Cop
module Performance module Performance
# This cop is used to identify usages of # This cop is used to identify usages of `array.compact.flatten.map { |x| x.downcase }`.
# Each of these methods (`compact`, `flatten`, `map`) will generate a new intermediate array
# that is promptly thrown away. Instead it is faster to mutate when we know it's safe.
#
# @example # @example
# # bad # # bad
# array = ["a", "b", "c"] # array = ["a", "b", "c"]
# array.compact.flatten.map { |x| x.downcase } # array.compact.flatten.map { |x| x.downcase }
# #
# Each of these methods (`compact`, `flatten`, `map`) will generate a # # good
# new intermediate array that is promptly thrown away. Instead it is
# faster to mutate when we know it's safe.
#
# @example
# # good.
# array = ["a", "b", "c"] # array = ["a", "b", "c"]
# array.compact! # array.compact!
# array.flatten! # array.flatten!

View File

@ -58,17 +58,17 @@ module RuboCop
add_offense(range) do |corrector| add_offense(range) do |corrector|
corrector.replace(map_node.loc.selector, 'filter_map') corrector.replace(map_node.loc.selector, 'filter_map')
remove_compact_method(corrector, node, node.parent) remove_compact_method(corrector, map_node, node, node.parent)
end end
end end
private private
def remove_compact_method(corrector, compact_node, chained_method) def remove_compact_method(corrector, map_node, compact_node, chained_method)
compact_method_range = compact_node.loc.selector compact_method_range = compact_node.loc.selector
if compact_node.multiline? && chained_method&.loc.respond_to?(:selector) && chained_method.dot? && if compact_node.multiline? && chained_method&.loc.respond_to?(:selector) && chained_method.dot? &&
!map_method_and_compact_method_on_same_line?(compact_node) && !map_method_and_compact_method_on_same_line?(map_node, compact_node) &&
!invoke_method_after_map_compact_on_same_line?(compact_node, chained_method) !invoke_method_after_map_compact_on_same_line?(compact_node, chained_method)
compact_method_range = compact_method_with_final_newline_range(compact_method_range) compact_method_range = compact_method_with_final_newline_range(compact_method_range)
else else
@ -78,11 +78,7 @@ module RuboCop
corrector.remove(compact_method_range) corrector.remove(compact_method_range)
end end
def map_method_and_compact_method_on_same_line?(compact_node) def map_method_and_compact_method_on_same_line?(map_node, compact_node)
return false unless compact_node.children.first.respond_to?(:send_node)
map_node = compact_node.children.first.send_node
compact_node.loc.selector.line == map_node.loc.selector.line compact_node.loc.selector.line == map_node.loc.selector.line
end end

View File

@ -4,7 +4,7 @@ module RuboCop
module Performance module Performance
# This module holds the RuboCop Performance version information. # This module holds the RuboCop Performance version information.
module Version module Version
STRING = '1.13.2' STRING = '1.13.3'
def self.document_version def self.document_version
STRING.match('\d+\.\d+').to_s STRING.match('\d+\.\d+').to_s