free_mutant/lib/mutant/mutator/node/defined.rb
2018-09-12 13:15:43 +00:00

28 lines
494 B
Ruby

# frozen_string_literal: true
module Mutant
class Mutator
class Node
# Namespace for `defined?` mutations
class Defined < self
handle(:defined?)
children :expression
private
# Emit mutations
#
# @return [undefined]
def dispatch
emit_singletons
emit(N_TRUE)
emit_expression_mutations { |node| !n_self?(node) }
end
end # Defined
end # Node
end # Mutator
end # Mutant