Merge pull request #10758 from Homebrew/dependabot/bundler/Library/Homebrew/rubocop-performance-1.10.1

build(deps): bump rubocop-performance from 1.10.0 to 1.10.1 in /Library/Homebrew
This commit is contained in:
Mike McQuaid 2021-03-02 16:10:07 +00:00 committed by GitHub
commit b024954a0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
56 changed files with 29 additions and 22 deletions

View File

@ -119,7 +119,7 @@ GEM
unicode-display_width (>= 1.4.0, < 3.0) unicode-display_width (>= 1.4.0, < 3.0)
rubocop-ast (1.4.1) rubocop-ast (1.4.1)
parser (>= 2.7.1.5) parser (>= 2.7.1.5)
rubocop-performance (1.10.0) rubocop-performance (1.10.1)
rubocop (>= 0.90.0, < 2.0) rubocop (>= 0.90.0, < 2.0)
rubocop-ast (>= 0.4.0) rubocop-ast (>= 0.4.0)
rubocop-rails (2.9.1) rubocop-rails (2.9.1)

View File

@ -492,11 +492,14 @@ class RuboCop::Cop::Performance::RedundantEqualityComparisonBlock < ::RuboCop::C
def new_argument(block_argument, block_body); end def new_argument(block_argument, block_body); end
def offense_range(node); end def offense_range(node); end
def same_block_argument_and_is_a_argument?(block_body, block_argument); end
def use_equality_comparison_block?(block_body); end def use_equality_comparison_block?(block_body); end
end end
RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::COMPARISON_METHODS = T.let(T.unsafe(nil), Array) RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::COMPARISON_METHODS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::IS_A_METHODS = T.let(T.unsafe(nil), Array)
RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::MSG = T.let(T.unsafe(nil), String) RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::MSG = T.let(T.unsafe(nil), String)
RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::TARGET_METHODS = T.let(T.unsafe(nil), Array) RuboCop::Cop::Performance::RedundantEqualityComparisonBlock::TARGET_METHODS = T.let(T.unsafe(nil), Array)
@ -588,9 +591,8 @@ class RuboCop::Cop::Performance::RedundantSplitRegexpArgument < ::RuboCop::Cop::
private private
def autocorrect(corrector, node); end def determinist_regexp?(regexp_node); end
def determinist_regexp?(first_argument); end def replacement(regexp_node); end
def replacement(node); end
end end
RuboCop::Cop::Performance::RedundantSplitRegexpArgument::DETERMINISTIC_REGEX = T.let(T.unsafe(nil), Regexp) RuboCop::Cop::Performance::RedundantSplitRegexpArgument::DETERMINISTIC_REGEX = T.let(T.unsafe(nil), Regexp)

View File

@ -82,7 +82,7 @@ $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-ast-1.4.1/lib
$:.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.0.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/unicode-display_width-2.0.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-1.10.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-1.10.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.10.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-performance-1.10.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rails-2.9.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rails-2.9.1/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-2.2.0/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-rspec-2.2.0/lib"
$:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.5.1/lib" $:.unshift "#{path}/../#{ruby_engine}/#{ruby_version}/gems/rubocop-sorbet-0.5.1/lib"

View File

@ -32,13 +32,15 @@ module RuboCop
TARGET_METHODS = %i[all? any? one? none?].freeze TARGET_METHODS = %i[all? any? one? none?].freeze
COMPARISON_METHODS = %i[== === is_a? kind_of?].freeze COMPARISON_METHODS = %i[== === is_a? kind_of?].freeze
IS_A_METHODS = %i[is_a? kind_of?].freeze
def on_block(node) def on_block(node)
return unless TARGET_METHODS.include?(node.method_name) return unless TARGET_METHODS.include?(node.method_name) && node.arguments.one?
block_argument = node.arguments.first block_argument = node.arguments.first
block_body = node.body block_body = node.body
return unless use_equality_comparison_block?(block_body) return unless use_equality_comparison_block?(block_body)
return if same_block_argument_and_is_a_argument?(block_body, block_argument)
return unless (new_argument = new_argument(block_argument, block_body)) return unless (new_argument = new_argument(block_argument, block_body))
range = offense_range(node) range = offense_range(node)
@ -55,6 +57,12 @@ module RuboCop
block_body.send_type? && COMPARISON_METHODS.include?(block_body.method_name) block_body.send_type? && COMPARISON_METHODS.include?(block_body.method_name)
end end
def same_block_argument_and_is_a_argument?(block_body, block_argument)
return false unless IS_A_METHODS.include?(block_body.method_name)
block_argument.source == block_body.first_argument.source
end
def new_argument(block_argument, block_body) def new_argument(block_argument, block_body)
if block_argument.source == block_body.receiver.source if block_argument.source == block_body.receiver.source
block_body.first_argument.source block_body.first_argument.source

View File

@ -21,32 +21,29 @@ module RuboCop
STR_SPECIAL_CHARS = %w[\n \" \' \\\\ \t \b \f \r].freeze STR_SPECIAL_CHARS = %w[\n \" \' \\\\ \t \b \f \r].freeze
def_node_matcher :split_call_with_regexp?, <<~PATTERN def_node_matcher :split_call_with_regexp?, <<~PATTERN
{(send !nil? :split {regexp})} {(send !nil? :split $regexp)}
PATTERN PATTERN
def on_send(node) def on_send(node)
return unless split_call_with_regexp?(node) return unless (regexp_node = split_call_with_regexp?(node))
return unless determinist_regexp?(node.first_argument) return if regexp_node.ignore_case?
return unless determinist_regexp?(regexp_node)
add_offense(node.first_argument) do |corrector| add_offense(regexp_node) do |corrector|
autocorrect(corrector, node) new_argument = replacement(regexp_node)
corrector.replace(regexp_node, "\"#{new_argument}\"")
end end
end end
private private
def determinist_regexp?(first_argument) def determinist_regexp?(regexp_node)
DETERMINISTIC_REGEX.match?(first_argument.source) DETERMINISTIC_REGEX.match?(regexp_node.source)
end end
def autocorrect(corrector, node) def replacement(regexp_node)
new_argument = replacement(node) regexp_content = regexp_node.content
corrector.replace(node.first_argument, "\"#{new_argument}\"")
end
def replacement(node)
regexp_content = node.first_argument.content
stack = [] stack = []
chars = regexp_content.chars.each_with_object([]) do |char, strings| chars = regexp_content.chars.each_with_object([]) do |char, strings|
if stack.empty? && char == '\\' if stack.empty? && char == '\\'

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.10.0' STRING = '1.10.1'
def self.document_version def self.document_version
STRING.match('\d+\.\d+').to_s STRING.match('\d+\.\d+').to_s