diff --git a/lib/mutant.rb b/lib/mutant.rb index 7294ddf3..81f885c4 100644 --- a/lib/mutant.rb +++ b/lib/mutant.rb @@ -59,6 +59,7 @@ require 'mutant/mutator/node/literal/array' require 'mutant/mutator/node/literal/hash' require 'mutant/mutator/node/literal/regex' require 'mutant/mutator/node/literal/nil' +require 'mutant/mutator/node/and_asgn' require 'mutant/mutator/node/argument' require 'mutant/mutator/node/arguments' require 'mutant/mutator/node/begin' diff --git a/lib/mutant/mutator/node/and_asgn.rb b/lib/mutant/mutator/node/and_asgn.rb new file mode 100644 index 00000000..99fae971 --- /dev/null +++ b/lib/mutant/mutator/node/and_asgn.rb @@ -0,0 +1,30 @@ +# encoding: utf-8 + +module Mutant + class Mutator + class Node + + # AndAsgn mutator + class AndAsgn < Generic + + handle(:and_asgn) + + children :left, :right + + private + + # Emit mutations + # + # @return [undefined] + # + # @api private + # + def dispatch + super + emit_nil + end + + end # AndAsgn + end # Node + end # Mutator +end # Mutant diff --git a/lib/mutant/mutator/node/generic.rb b/lib/mutant/mutator/node/generic.rb index 6d27ad77..6518a483 100644 --- a/lib/mutant/mutator/node/generic.rb +++ b/lib/mutant/mutator/node/generic.rb @@ -12,7 +12,7 @@ module Mutant handle( :next, :break, :ensure, :dsym, :yield, :rescue, :redo, :defined?, - :blockarg, :and_asgn, + :blockarg, :regopt, :restarg, :resbody, :retry, :arg_expr, :kwrestarg, :kwoptarg, :kwarg, :undef, :module, :empty, :alias, :for, :xstr, :back_ref, :class, diff --git a/spec/unit/mutant/mutator/node/and_asgn/mutation_spec.rb b/spec/unit/mutant/mutator/node/and_asgn/mutation_spec.rb index 72d3eec7..b9369ec3 100644 --- a/spec/unit/mutant/mutator/node/and_asgn/mutation_spec.rb +++ b/spec/unit/mutant/mutator/node/and_asgn/mutation_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -describe Mutant::Mutator::Node::Generic, 'and_asgn' do +describe Mutant::Mutator::Node::AndAsgn, 'and_asgn' do let(:random_fixnum) { 5 } let(:random_string) { 'random' } @@ -16,6 +16,7 @@ describe Mutant::Mutator::Node::Generic, 'and_asgn' do mutations << 'a &&= -1' mutations << 'a &&= 2' mutations << 'a &&= 5' + mutations << 'nil' end before do