free_mutant/lib/mutant/mutator/node/literal/array.rb
Markus Schirp 30884c22a2 Remove literal array mutation that adds an element
It turns out this mutation is not "universal". Meaning not in all
scenarios this extra element triggers an edge case the specs have to
cover.
2013-07-08 17:57:25 +02:00

43 lines
865 B
Ruby

module Mutant
class Mutator
class Node
class Literal < self
# Mutator for array literals
class Array < self
handle(:array)
private
# Emit mutations
#
# @return [undefined]
#
# @api private
#
def dispatch
emit_nil
emit_self
mutate_body
end
# Mutate body
#
# @return [undefined]
#
# @api private
#
def mutate_body
children.each_index do |index|
dup_children = children.dup
dup_children.delete_at(index)
emit_self(*dup_children)
mutate_child(index)
end
end
end # Array
end # Literal
end # Node
end # Mutator
end # Mutant