Sha256: aaa8efdb9842fe828513de1b08f75ee85d252c91c2f288cbe66f100806a27e95

Contents?: true

Size: 1004 Bytes

Versions: 3

Compression:

Stored size: 1004 Bytes

Contents

module Mutant
  class Mutator
    class Node

      class ZSuper < self

        handle(Rubinius::AST::ZSuper)

        # Emit mutations
        #
        # @return [undefined]
        #
        # @api private
        #
        def dispatch
          emit_node(Rubinius::AST::Super, new(Rubinius::AST::ActualArguments))
        end

      end

      class Super < self
        handle(Rubinius::AST::Super)

      private

        # Emit mutations
        #
        # @return [undefined]
        #
        # @api private
        #
        def dispatch
          emit_node(Rubinius::AST::ZSuper)
          emit_without_block
          emit_attribute_mutations(:block) if node.block
          emit_attribute_mutations(:arguments) 
        end

        # Emit without block mutation
        #
        # @return [undefined]
        #
        # @api private
        #
        def emit_without_block
          dup = dup_node
          dup.block = nil
          emit(dup)
        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/super.rb
mutant-0.2.11 lib/mutant/mutator/node/super.rb
mutant-0.2.9 lib/mutant/mutator/node/super.rb