2012-12-06 21:30:28 +01:00
|
|
|
module Mutant
|
|
|
|
class Mutator
|
|
|
|
class Node
|
|
|
|
class Literal < self
|
|
|
|
# Mutator for symbol literals
|
|
|
|
class Symbol < self
|
|
|
|
|
2013-06-04 10:25:13 +02:00
|
|
|
handle(:sym)
|
2012-12-06 21:30:28 +01:00
|
|
|
|
2014-05-10 14:32:18 +00:00
|
|
|
children :value
|
|
|
|
|
|
|
|
PREFIX = '__mutant__'.freeze
|
2013-07-27 21:14:41 +02:00
|
|
|
|
2012-12-06 21:30:28 +01:00
|
|
|
private
|
|
|
|
|
2014-11-22 11:16:07 -08:00
|
|
|
# Emit mutants
|
2012-12-06 21:30:28 +01:00
|
|
|
#
|
|
|
|
# @return [undefined]
|
|
|
|
#
|
|
|
|
# @api private
|
|
|
|
#
|
|
|
|
def dispatch
|
2014-06-05 16:37:31 +00:00
|
|
|
emit_singletons
|
2014-05-10 14:32:18 +00:00
|
|
|
Mutator::Util::Symbol.each(value, self) do |value|
|
2014-06-03 03:51:22 +00:00
|
|
|
emit_type(value)
|
2014-05-10 14:32:18 +00:00
|
|
|
end
|
2012-12-06 21:30:28 +01:00
|
|
|
end
|
2013-06-04 10:25:13 +02:00
|
|
|
|
|
|
|
end # Symbol
|
|
|
|
end # Literal
|
|
|
|
end # Node
|
|
|
|
end # Mutator
|
|
|
|
end # Mutant
|