Merge pull request #428 from crystal-ameba/revert-incorrect-excessive-allocations-condition

Revert "Fix `Performance/ExcessiveAllocations` to exclude `each` call…
This commit is contained in:
Sijawusz Pur Rahnama 2023-11-18 09:50:45 +01:00 committed by GitHub
commit 9f9d5fae32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 1 additions and 2 deletions

View file

@ -6,7 +6,6 @@ module Ameba::Rule::Performance
describe ExcessiveAllocations do describe ExcessiveAllocations do
it "passes if there is no potential performance improvements" do it "passes if there is no potential performance improvements" do
expect_no_issues subject, <<-CRYSTAL expect_no_issues subject, <<-CRYSTAL
"Alice".chars.each
"Alice".chars.each(arg) { |c| puts c } "Alice".chars.each(arg) { |c| puts c }
"Alice".chars(arg).each { |c| puts c } "Alice".chars(arg).each { |c| puts c }
"Alice\nBob".lines.each(arg) { |l| puts l } "Alice\nBob".lines.each(arg) { |l| puts l }

View file

@ -52,7 +52,7 @@ module Ameba::Rule::Performance
end end
def test(source, node : Crystal::Call) def test(source, node : Crystal::Call)
return unless node.name == "each" && node.args.empty? && node.block return unless node.name == "each" && node.args.empty?
return unless (obj = node.obj).is_a?(Crystal::Call) return unless (obj = node.obj).is_a?(Crystal::Call)
return unless obj.args.empty? && obj.block.nil? return unless obj.args.empty? && obj.block.nil?
return unless method = call_names[obj.name]? return unless method = call_names[obj.name]?