Sha256: 45009a4d48ed536d87908c7299d7d234fc048b00e09a486c7053420e23fd6cd2

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

module Mutant
  class Mutator
    class Node
      class Assignment < self

      private

        class Variable < self

          # Emit mutants
          #
          # @return [undefined]
          #
          # @api private
          #
          def dispatch
            emit_attribute_mutations(:name) do |mutation|
              mutation.name = "#{self.class::PREFIX}#{mutation.name}".to_sym
            end
            emit_attribute_mutations(:value)
          end

          class Local < self
            PREFIX = ''.freeze
            handle(Rubinius::AST::LocalVariableAssignment)
          end

          class Instance < self
            PREFIX = '@'.freeze
            handle(Rubinius::AST::InstanceVariableAssignment)
          end

          class Class < self
            PREFIX = '@@'.freeze
            handle(Rubinius::AST::ClassVariableAssignment)
          end

          class Global < self
            PREFIX = '$'.freeze
            handle(Rubinius::AST::GlobalVariableAssignment)
          end

        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
mutant-0.2.12 lib/mutant/mutator/node/assignment.rb
mutant-0.2.11 lib/mutant/mutator/node/assignment.rb
mutant-0.2.9 lib/mutant/mutator/node/assignment.rb