Sha256: 22782207c4b81a32240f3e071de2649ca9b715c8c68c0cdf7f0fd3235635c9c6

Contents?: true

Size: 863 Bytes

Versions: 17

Compression:

Stored size: 863 Bytes

Contents

Limitations
===========

Subject
-------

Mutant cannot emit mutations for some subjects.

* methods defined within a closure.  For example, methods defined using `module_eval`, `class_eval`,
  `define_method`, or `define_singleton_method`:

    ```ruby
    class Example
      class_eval do
        def example1
        end
      end

      module_eval do
        def example2
        end
      end

      define_method(:example3) do
      end

      define_singleton_method(:example4) do
      end
    end
    ```

* singleton methods not defined on a constant or `self`

    ```ruby
    class Foo
      def self.bar; end   # ok
      def Foo.baz; end    # ok

      myself = self
      def myself.qux; end # cannot mutate
    end
    ```

* methods defined with eval:

    ```ruby
    class Foo
      class_eval('def bar; end') # cannot mutate
    end
    ```

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
mutant-0.9.11 docs/limitations.md
mutant-0.9.10 docs/limitations.md
mutant-0.9.9 docs/limitations.md
mutant-0.9.8 docs/limitations.md
mutant-0.9.7 docs/limitations.md
mutant-0.9.6 docs/limitations.md
mutant-0.9.5 docs/limitations.md
mutant-0.9.4 docs/limitations.md
mutant-0.9.3 docs/limitations.md
mutant-0.9.2 docs/limitations.md
mutant-0.9.1 docs/limitations.md
mutant-0.9.0 docs/limitations.md
mutant-0.8.24 docs/limitations.md
mutant-0.8.23 docs/limitations.md
mutant-0.8.22 docs/limitations.md
mutant-0.8.21 docs/limitations.md
mutant-0.8.20 docs/limitations.md