free_mutant/lib/mutant/mutator/node/define.rb
Markus Schirp 36011568d5 Move nil body mutation to parent nodes
This ensures mutant all the time creates semantically valid asts.
2013-07-05 03:03:33 +02:00

43 lines
808 B
Ruby

module Mutant
class Mutator
class Node
# Namespace for define mutations
class Define < self
private
# Emit mutations
#
# @return [undefined]
#
# @api private
#
def dispatch
emit_arguments_mutations
emit_body(RAISE)
emit_body(nil)
emit_body_mutations if body
end
# Mutator for instance method defines
class Instance < self
handle :def
children :name, :arguments, :body
end # Instance
# Mutator for singleton method defines
class Singleton < self
handle :defs
children :subject, :name, :arguments, :body
end # Singelton
end # Define
end # Node
end # Mutator
end # Mutant