diff --git a/lib/mutant/mutator/node/begin.rb b/lib/mutant/mutator/node/begin.rb index c69dbc74..40f0da71 100644 --- a/lib/mutant/mutator/node/begin.rb +++ b/lib/mutant/mutator/node/begin.rb @@ -16,9 +16,7 @@ module Mutant # @api private # def dispatch - Util::Array.each(children, self) do |children| - emit_child_subset(children) - end + Util::Array.each(children, self, &method(:emit_child_subset)) children.each_with_index do |child, index| mutate_child(index) emit(child) unless children.eql?([child]) diff --git a/lib/mutant/mutator/node/if.rb b/lib/mutant/mutator/node/if.rb index 2d6a78de..7130e877 100644 --- a/lib/mutant/mutator/node/if.rb +++ b/lib/mutant/mutator/node/if.rb @@ -30,8 +30,8 @@ module Mutant # @api private # def mutate_condition - emit_condition_mutations do |condition| - !n_self?(condition) + emit_condition_mutations do |node| + !n_self?(node) end emit_type(n_not(condition), if_branch, else_branch) unless n_match_current_line?(condition) emit_type(N_TRUE, if_branch, else_branch) diff --git a/spec/unit/mutant/matcher/filter_spec.rb b/spec/unit/mutant/matcher/filter_spec.rb index 8f6ee7f6..6b4393e2 100644 --- a/spec/unit/mutant/matcher/filter_spec.rb +++ b/spec/unit/mutant/matcher/filter_spec.rb @@ -6,7 +6,7 @@ RSpec.describe Mutant::Matcher::Filter do subject { object.each { |entry| yields << entry } } let(:matcher) { [subject_a, subject_b] } - let(:predicate) { ->(subject) { subject.eql?(subject_a) } } + let(:predicate) { ->(node) { node.eql?(subject_a) } } let(:subject_a) { double('Subject A') } let(:subject_b) { double('Subject B') } diff --git a/spec/unit/mutant/matcher/method/instance_spec.rb b/spec/unit/mutant/matcher/method/instance_spec.rb index 0c398cb2..00fc9817 100644 --- a/spec/unit/mutant/matcher/method/instance_spec.rb +++ b/spec/unit/mutant/matcher/method/instance_spec.rb @@ -5,7 +5,7 @@ RSpec.describe Mutant::Matcher::Method::Instance do let(:reporter) { Fixtures::TEST_CONFIG.reporter } describe '#each' do - subject { object.each { |subject| yields << subject } } + subject { object.each(&yields.method(:<<)) } let(:object) { described_class.build(env, scope, method) } let(:method) { scope.instance_method(method_name) } diff --git a/spec/unit/mutant/matcher/method/singleton_spec.rb b/spec/unit/mutant/matcher/method/singleton_spec.rb index a48b4195..3f3b9b2d 100644 --- a/spec/unit/mutant/matcher/method/singleton_spec.rb +++ b/spec/unit/mutant/matcher/method/singleton_spec.rb @@ -1,6 +1,6 @@ # rubocop:disable ClassAndModuleChildren RSpec.describe Mutant::Matcher::Method::Singleton, '#each' do - subject { object.each { |subject| yields << subject } } + subject { object.each(&yields.method(:<<)) } let(:object) { described_class.new(env, scope, method) } let(:method) { scope.method(method_name) } diff --git a/spec/unit/mutant/require_highjack_spec.rb b/spec/unit/mutant/require_highjack_spec.rb index a54dadc4..f68aed70 100644 --- a/spec/unit/mutant/require_highjack_spec.rb +++ b/spec/unit/mutant/require_highjack_spec.rb @@ -5,11 +5,9 @@ RSpec.describe Mutant::RequireHighjack do let(:require_calls) { [] } let(:target) do - require_calls = self.require_calls + acc = require_calls Module.new do - define_method(:require) do |logical_name| - require_calls << logical_name - end + define_method(:require, &acc.method(:<<)) module_function :require end end diff --git a/spec/unit/mutant/warning_filter_spec.rb b/spec/unit/mutant/warning_filter_spec.rb index 78c14bdf..24f6669d 100644 --- a/spec/unit/mutant/warning_filter_spec.rb +++ b/spec/unit/mutant/warning_filter_spec.rb @@ -8,11 +8,9 @@ RSpec.describe Mutant::WarningFilter do let(:object) { described_class.new(target) } let(:target) do - writes = self.writes + acc = writes Module.new do - define_singleton_method :write do |message| - writes << message - end + define_singleton_method(:write, &acc.method(:<<)) end end