mutant 0.8.10 → 0.8.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (247) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -4
  3. data/Changelog.md +8 -0
  4. data/README.md +112 -43
  5. data/Rakefile +2 -16
  6. data/circle.yml +1 -1
  7. data/config/flay.yml +2 -2
  8. data/config/flog.yml +1 -1
  9. data/config/reek.yml +3 -4
  10. data/config/rubocop.yml +53 -16
  11. data/lib/mutant.rb +27 -6
  12. data/lib/mutant/ast/meta/const.rb +2 -0
  13. data/lib/mutant/ast/meta/optarg.rb +2 -0
  14. data/lib/mutant/ast/meta/resbody.rb +2 -0
  15. data/lib/mutant/ast/meta/restarg.rb +2 -0
  16. data/lib/mutant/ast/meta/send.rb +4 -0
  17. data/lib/mutant/ast/meta/symbol.rb +2 -0
  18. data/lib/mutant/ast/named_children.rb +14 -4
  19. data/lib/mutant/ast/nodes.rb +3 -1
  20. data/lib/mutant/ast/regexp.rb +53 -0
  21. data/lib/mutant/ast/regexp/transformer.rb +185 -0
  22. data/lib/mutant/ast/regexp/transformer/alternative.rb +39 -0
  23. data/lib/mutant/ast/regexp/transformer/character_set.rb +46 -0
  24. data/lib/mutant/ast/regexp/transformer/direct.rb +99 -0
  25. data/lib/mutant/ast/regexp/transformer/options_group.rb +66 -0
  26. data/lib/mutant/ast/regexp/transformer/quantifier.rb +112 -0
  27. data/lib/mutant/ast/regexp/transformer/recursive.rb +50 -0
  28. data/lib/mutant/ast/regexp/transformer/root.rb +29 -0
  29. data/lib/mutant/ast/regexp/transformer/text.rb +55 -0
  30. data/lib/mutant/ast/types.rb +92 -5
  31. data/lib/mutant/cli.rb +2 -14
  32. data/lib/mutant/color.rb +1 -1
  33. data/lib/mutant/config.rb +1 -3
  34. data/lib/mutant/expression/methods.rb +1 -1
  35. data/lib/mutant/expression/namespace.rb +2 -2
  36. data/lib/mutant/expression/parser.rb +1 -1
  37. data/lib/mutant/integration.rb +10 -28
  38. data/lib/mutant/isolation.rb +9 -60
  39. data/lib/mutant/isolation/fork.rb +72 -0
  40. data/lib/mutant/isolation/none.rb +25 -0
  41. data/lib/mutant/matcher/config.rb +2 -0
  42. data/lib/mutant/matcher/method/singleton.rb +5 -4
  43. data/lib/mutant/meta.rb +11 -4
  44. data/lib/mutant/meta/example.rb +2 -116
  45. data/lib/mutant/meta/example/dsl.rb +22 -19
  46. data/lib/mutant/meta/example/verification.rb +86 -0
  47. data/lib/mutant/mutator.rb +22 -49
  48. data/lib/mutant/mutator/node.rb +15 -19
  49. data/lib/mutant/mutator/node/and_asgn.rb +1 -1
  50. data/lib/mutant/mutator/node/argument.rb +10 -5
  51. data/lib/mutant/mutator/node/arguments.rb +5 -9
  52. data/lib/mutant/mutator/node/begin.rb +4 -17
  53. data/lib/mutant/mutator/node/block.rb +1 -1
  54. data/lib/mutant/mutator/node/break.rb +1 -1
  55. data/lib/mutant/mutator/node/class.rb +21 -0
  56. data/lib/mutant/mutator/node/conditional_loop.rb +1 -1
  57. data/lib/mutant/mutator/node/define.rb +1 -1
  58. data/lib/mutant/mutator/node/defined.rb +1 -1
  59. data/lib/mutant/mutator/node/dstr.rb +1 -1
  60. data/lib/mutant/mutator/node/dsym.rb +1 -1
  61. data/lib/mutant/mutator/node/generic.rb +3 -3
  62. data/lib/mutant/mutator/node/kwbegin.rb +1 -1
  63. data/lib/mutant/mutator/node/literal.rb +9 -0
  64. data/lib/mutant/mutator/node/literal/boolean.rb +1 -1
  65. data/lib/mutant/mutator/node/literal/fixnum.rb +2 -2
  66. data/lib/mutant/mutator/node/literal/float.rb +4 -6
  67. data/lib/mutant/mutator/node/literal/hash.rb +1 -1
  68. data/lib/mutant/mutator/node/literal/nil.rb +1 -1
  69. data/lib/mutant/mutator/node/literal/range.rb +2 -19
  70. data/lib/mutant/mutator/node/literal/regex.rb +43 -3
  71. data/lib/mutant/mutator/node/literal/string.rb +1 -1
  72. data/lib/mutant/mutator/node/literal/symbol.rb +2 -4
  73. data/lib/mutant/mutator/node/masgn.rb +1 -1
  74. data/lib/mutant/mutator/node/match_current_line.rb +1 -1
  75. data/lib/mutant/mutator/node/mlhs.rb +2 -3
  76. data/lib/mutant/mutator/node/named_value/access.rb +2 -2
  77. data/lib/mutant/mutator/node/named_value/constant_assignment.rb +4 -3
  78. data/lib/mutant/mutator/node/named_value/variable_assignment.rb +4 -4
  79. data/lib/mutant/mutator/node/next.rb +1 -1
  80. data/lib/mutant/mutator/node/nthref.rb +1 -1
  81. data/lib/mutant/mutator/node/or_asgn.rb +1 -1
  82. data/lib/mutant/mutator/node/regexp.rb +44 -0
  83. data/lib/mutant/mutator/node/regopt.rb +31 -0
  84. data/lib/mutant/mutator/node/resbody.rb +1 -1
  85. data/lib/mutant/mutator/node/rescue.rb +1 -3
  86. data/lib/mutant/mutator/node/return.rb +1 -1
  87. data/lib/mutant/mutator/node/send.rb +43 -3
  88. data/lib/mutant/mutator/node/send/attribute_assignment.rb +4 -1
  89. data/lib/mutant/mutator/node/send/conditional.rb +23 -0
  90. data/lib/mutant/mutator/node/send/index.rb +1 -1
  91. data/lib/mutant/mutator/node/splat.rb +1 -1
  92. data/lib/mutant/mutator/node/when.rb +1 -1
  93. data/lib/mutant/mutator/node/yield.rb +1 -1
  94. data/lib/mutant/mutator/util.rb +0 -30
  95. data/lib/mutant/mutator/util/array.rb +4 -16
  96. data/lib/mutant/parallel.rb +1 -1
  97. data/lib/mutant/parallel/worker.rb +1 -1
  98. data/lib/mutant/registry.rb +44 -0
  99. data/lib/mutant/reporter/cli/format.rb +2 -0
  100. data/lib/mutant/reporter/cli/printer.rb +2 -2
  101. data/lib/mutant/reporter/cli/printer/config.rb +0 -1
  102. data/lib/mutant/reporter/cli/printer/env_progress.rb +1 -11
  103. data/lib/mutant/reporter/cli/printer/mutation_progress_result.rb +1 -1
  104. data/lib/mutant/reporter/cli/printer/mutation_result.rb +2 -0
  105. data/lib/mutant/reporter/cli/tput.rb +1 -1
  106. data/lib/mutant/reporter/sequence.rb +3 -0
  107. data/lib/mutant/require_highjack.rb +6 -2
  108. data/lib/mutant/result.rb +1 -1
  109. data/lib/mutant/subject.rb +5 -5
  110. data/lib/mutant/subject/method/instance.rb +1 -2
  111. data/lib/mutant/util.rb +18 -0
  112. data/lib/mutant/version.rb +1 -1
  113. data/lib/mutant/zombifier.rb +5 -3
  114. data/meta/and.rb +1 -1
  115. data/meta/and_asgn.rb +1 -1
  116. data/meta/array.rb +2 -2
  117. data/meta/begin.rb +2 -2
  118. data/meta/block.rb +7 -7
  119. data/meta/block_pass.rb +1 -1
  120. data/meta/blockarg.rb +1 -1
  121. data/meta/break.rb +1 -1
  122. data/meta/case.rb +2 -2
  123. data/meta/casgn.rb +11 -2
  124. data/meta/cbase.rb +1 -1
  125. data/meta/class.rb +10 -0
  126. data/meta/const.rb +9 -1
  127. data/meta/csend.rb +8 -0
  128. data/meta/cvar.rb +1 -1
  129. data/meta/cvasgn.rb +1 -1
  130. data/meta/date.rb +4 -4
  131. data/meta/def.rb +14 -14
  132. data/meta/defined.rb +1 -1
  133. data/meta/dstr.rb +1 -1
  134. data/meta/dsym.rb +1 -1
  135. data/meta/ensure.rb +1 -1
  136. data/meta/false.rb +1 -1
  137. data/meta/float.rb +3 -3
  138. data/meta/gvar.rb +1 -1
  139. data/meta/gvasgn.rb +1 -1
  140. data/meta/hash.rb +1 -1
  141. data/meta/if.rb +17 -3
  142. data/meta/int.rb +1 -1
  143. data/meta/ivar.rb +1 -1
  144. data/meta/ivasgn.rb +14 -1
  145. data/meta/kwarg.rb +8 -0
  146. data/meta/kwbegin.rb +1 -1
  147. data/meta/kwoptarg.rb +11 -0
  148. data/meta/lvar.rb +1 -1
  149. data/meta/lvasgn.rb +1 -1
  150. data/meta/masgn.rb +1 -1
  151. data/meta/match_current_line.rb +2 -2
  152. data/meta/next.rb +1 -1
  153. data/meta/nil.rb +1 -1
  154. data/meta/nthref.rb +5 -5
  155. data/meta/op_assgn.rb +1 -1
  156. data/meta/or.rb +1 -1
  157. data/meta/or_asgn.rb +5 -5
  158. data/meta/range.rb +2 -8
  159. data/meta/redo.rb +1 -1
  160. data/meta/regexp.rb +106 -0
  161. data/meta/regexp/regexp_bol_anchor.rb +13 -0
  162. data/meta/regexp/regexp_bos_anchor.rb +26 -0
  163. data/meta/regexp/regexp_root_expression.rb +13 -0
  164. data/meta/regopt.rb +8 -0
  165. data/meta/rescue.rb +49 -4
  166. data/meta/restarg.rb +6 -9
  167. data/meta/return.rb +2 -2
  168. data/meta/self.rb +1 -1
  169. data/meta/send.rb +228 -55
  170. data/meta/str.rb +1 -1
  171. data/meta/super.rb +3 -3
  172. data/meta/{symbol.rb → sym.rb} +1 -1
  173. data/meta/true.rb +1 -1
  174. data/meta/until.rb +1 -1
  175. data/meta/while.rb +2 -2
  176. data/meta/yield.rb +1 -1
  177. data/mutant-rspec.gemspec +2 -2
  178. data/mutant.gemspec +6 -5
  179. data/spec/integration/mutant/isolation/fork_spec.rb +8 -0
  180. data/spec/integration/mutant/rspec_spec.rb +1 -1
  181. data/spec/integration/mutant/test_mutator_handles_types_spec.rb +1 -2
  182. data/spec/integrations.yml +93 -24
  183. data/spec/spec_helper.rb +12 -7
  184. data/spec/support/compress_helper.rb +1 -1
  185. data/spec/support/corpus.rb +115 -50
  186. data/spec/support/fake_actor.rb +5 -5
  187. data/spec/support/file_system.rb +1 -1
  188. data/spec/support/ice_nine_config.rb +3 -3
  189. data/spec/support/ruby_vm.rb +11 -12
  190. data/spec/support/shared_context.rb +22 -13
  191. data/spec/support/test_app.rb +1 -1
  192. data/spec/support/warning.rb +64 -0
  193. data/spec/support/warnings.yml +4 -0
  194. data/spec/support/xspec.rb +177 -0
  195. data/spec/unit/mutant/actor/env_spec.rb +2 -2
  196. data/spec/unit/mutant/actor/sender_spec.rb +1 -1
  197. data/spec/unit/mutant/ast/meta/send_spec.rb +1 -1
  198. data/spec/unit/mutant/ast/named_children_spec.rb +26 -0
  199. data/spec/unit/mutant/ast/regexp/parse_spec.rb +7 -0
  200. data/spec/unit/mutant/ast/regexp/supported_predicate_spec.rb +14 -0
  201. data/spec/unit/mutant/ast/regexp/transformer/lookup_table/table_spec.rb +19 -0
  202. data/spec/unit/mutant/ast/regexp/transformer/lookup_table_spec.rb +33 -0
  203. data/spec/unit/mutant/ast/regexp/transformer_spec.rb +19 -0
  204. data/spec/unit/mutant/ast/regexp_spec.rb +617 -0
  205. data/spec/unit/mutant/cli_spec.rb +7 -45
  206. data/spec/unit/mutant/context_spec.rb +4 -7
  207. data/spec/unit/mutant/env/{boostrap_spec.rb → bootstrap_spec.rb} +2 -2
  208. data/spec/unit/mutant/env_spec.rb +13 -16
  209. data/spec/unit/mutant/expression/namespace/{flat_spec.rb → exact_spec.rb} +0 -0
  210. data/spec/unit/mutant/integration/rspec_spec.rb +2 -2
  211. data/spec/unit/mutant/integration_spec.rb +14 -0
  212. data/spec/unit/mutant/isolation/fork_spec.rb +155 -0
  213. data/spec/unit/mutant/isolation/none_spec.rb +16 -0
  214. data/spec/unit/mutant/loader_spec.rb +1 -1
  215. data/spec/unit/mutant/matcher/methods/instance_spec.rb +2 -4
  216. data/spec/unit/mutant/meta/example/dsl_spec.rb +106 -0
  217. data/spec/unit/mutant/meta/example/verification_spec.rb +120 -0
  218. data/spec/unit/mutant/meta/example_spec.rb +32 -0
  219. data/spec/unit/mutant/mutator/node_spec.rb +37 -4
  220. data/spec/unit/mutant/mutator_spec.rb +21 -0
  221. data/spec/unit/mutant/{runner → parallel}/driver_spec.rb +0 -0
  222. data/spec/unit/mutant/parallel/master_spec.rb +13 -13
  223. data/spec/unit/mutant/registry_spec.rb +47 -0
  224. data/spec/unit/mutant/reporter/cli/printer/config_spec.rb +0 -4
  225. data/spec/unit/mutant/reporter/cli/printer/env_progress_spec.rb +0 -8
  226. data/spec/unit/mutant/reporter/cli/printer/env_result_spec.rb +0 -2
  227. data/spec/unit/mutant/reporter/cli/printer/status_progressive_spec.rb +0 -8
  228. data/spec/unit/mutant/reporter/cli/printer/status_spec.rb +0 -34
  229. data/spec/unit/mutant/reporter/cli_spec.rb +0 -22
  230. data/spec/unit/mutant/repository/diff_spec.rb +6 -6
  231. data/spec/unit/mutant/require_highjack_spec.rb +38 -14
  232. data/spec/unit/mutant/result/env_spec.rb +1 -4
  233. data/spec/unit/mutant/runner_spec.rb +1 -1
  234. data/spec/unit/mutant/subject/method/instance_spec.rb +1 -1
  235. data/spec/unit/mutant/subject_spec.rb +3 -3
  236. data/spec/unit/mutant/util/one_spec.rb +20 -0
  237. data/spec/unit/mutant/zombifier_spec.rb +18 -18
  238. data/test_app/{Gemfile.rspec3.3 → Gemfile.rspec3.5} +2 -2
  239. metadata +94 -24
  240. data/TODO +0 -21
  241. data/lib/mutant/mutator/node/blockarg.rb +0 -13
  242. data/lib/mutant/mutator/node/restarg.rb +0 -13
  243. data/lib/mutant/mutator/registry.rb +0 -49
  244. data/meta/boolean.rb +0 -13
  245. data/meta/regex.rb +0 -19
  246. data/spec/unit/mutant/isolation_spec.rb +0 -104
  247. data/spec/unit/mutant/mutator/registry_spec.rb +0 -57
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :block do
2
2
  source 'foo { a; b }'
3
3
 
4
4
  singleton_mutations
@@ -14,7 +14,7 @@ Mutant::Meta::Example.add do
14
14
  mutation 'a; b'
15
15
  end
16
16
 
17
- Mutant::Meta::Example.add do
17
+ Mutant::Meta::Example.add :block do
18
18
  source 'foo { |a, b| }'
19
19
 
20
20
  singleton_mutations
@@ -27,7 +27,7 @@ Mutant::Meta::Example.add do
27
27
  mutation 'foo { || }'
28
28
  end
29
29
 
30
- Mutant::Meta::Example.add do
30
+ Mutant::Meta::Example.add :block do
31
31
  source 'foo { |(a, b), c| }'
32
32
 
33
33
  singleton_mutations
@@ -44,7 +44,7 @@ Mutant::Meta::Example.add do
44
44
  mutation 'foo'
45
45
  end
46
46
 
47
- Mutant::Meta::Example.add do
47
+ Mutant::Meta::Example.add :block do
48
48
  source 'foo(a, b) {}'
49
49
 
50
50
  singleton_mutations
@@ -59,7 +59,7 @@ Mutant::Meta::Example.add do
59
59
  mutation 'foo {}'
60
60
  end
61
61
 
62
- Mutant::Meta::Example.add do
62
+ Mutant::Meta::Example.add :block do
63
63
  source 'foo { |(a)| }'
64
64
 
65
65
  singleton_mutations
@@ -70,7 +70,7 @@ Mutant::Meta::Example.add do
70
70
  mutation 'foo'
71
71
  end
72
72
 
73
- Mutant::Meta::Example.add do
73
+ Mutant::Meta::Example.add :block do
74
74
  source 'foo { bar(nil) }'
75
75
 
76
76
  singleton_mutations
@@ -84,7 +84,7 @@ Mutant::Meta::Example.add do
84
84
  mutation 'bar(nil)'
85
85
  end
86
86
 
87
- Mutant::Meta::Example.add do
87
+ Mutant::Meta::Example.add :block do
88
88
  source 'foo { self << true }'
89
89
 
90
90
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :block_pass do
2
2
  source 'foo(&bar)'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :blockarg do
2
2
  source 'foo { |&bar| }'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :break do
2
2
  source 'break true'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :case do
2
2
  source <<-RUBY
3
3
  case
4
4
  when true
@@ -29,7 +29,7 @@ Mutant::Meta::Example.add do
29
29
  RUBY
30
30
  end
31
31
 
32
- Mutant::Meta::Example.add do
32
+ Mutant::Meta::Example.add :case do
33
33
  source <<-RUBY
34
34
  case condition
35
35
  when A
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :casgn do
2
2
  source 'A = true'
3
3
 
4
4
  mutation 'A__MUTANT__ = true'
@@ -7,7 +7,7 @@ Mutant::Meta::Example.add do
7
7
  mutation 'remove_const :A'
8
8
  end
9
9
 
10
- Mutant::Meta::Example.add do
10
+ Mutant::Meta::Example.add :casgn do
11
11
  source 'self::A = true'
12
12
 
13
13
  mutation 'self::A__MUTANT__ = true'
@@ -15,3 +15,12 @@ Mutant::Meta::Example.add do
15
15
  mutation 'self::A = nil'
16
16
  mutation 'self.remove_const :A'
17
17
  end
18
+
19
+ Mutant::Meta::Example.add :casgn do
20
+ source 'A &&= true'
21
+
22
+ singleton_mutations
23
+ mutation 'A__MUTANT__ &&= true'
24
+ mutation 'A &&= false'
25
+ mutation 'A &&= nil'
26
+ end
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :cbase do
2
2
  source '::A'
3
3
 
4
4
  singleton_mutations
@@ -0,0 +1,10 @@
1
+ Mutant::Meta::Example.add :class do
2
+ source 'class Foo; bar; end'
3
+
4
+ mutation 'class Foo; nil; end'
5
+ mutation 'class Foo; self; end'
6
+ end
7
+
8
+ Mutant::Meta::Example.add :class do
9
+ source 'class Foo; end'
10
+ end
@@ -1,7 +1,15 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :const do
2
2
  source 'A::B::C'
3
3
 
4
4
  singleton_mutations
5
5
  mutation 'B::C'
6
6
  mutation 'C'
7
7
  end
8
+
9
+ Mutant::Meta::Example.add :const do
10
+ source 'A.foo'
11
+
12
+ singleton_mutations
13
+ mutation 'A'
14
+ mutation 'self.foo'
15
+ end
@@ -0,0 +1,8 @@
1
+ Mutant::Meta::Example.add :csend do
2
+ source 'a&.b'
3
+
4
+ singleton_mutations
5
+ mutation 'a.b'
6
+ mutation 'self&.b'
7
+ mutation 'a'
8
+ end
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :cvar do
2
2
  source '@@a'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :cvasgn do
2
2
  source '@@a = true'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :send do
2
2
  source 'Date.parse(nil)'
3
3
 
4
4
  singleton_mutations
@@ -17,7 +17,7 @@ Mutant::Meta::Example.add do
17
17
  mutation 'Date.jisx0301(nil)'
18
18
  end
19
19
 
20
- Mutant::Meta::Example.add do
20
+ Mutant::Meta::Example.add :send do
21
21
  source '::Date.parse(nil)'
22
22
 
23
23
  singleton_mutations
@@ -37,7 +37,7 @@ Mutant::Meta::Example.add do
37
37
  mutation '::Date.jisx0301(nil)'
38
38
  end
39
39
 
40
- Mutant::Meta::Example.add do
40
+ Mutant::Meta::Example.add :send do
41
41
  source 'Date.iso8601(nil)'
42
42
 
43
43
  singleton_mutations
@@ -46,7 +46,7 @@ Mutant::Meta::Example.add do
46
46
  mutation 'Date'
47
47
  end
48
48
 
49
- Mutant::Meta::Example.add do
49
+ Mutant::Meta::Example.add :send do
50
50
  source 'Foo::Date.parse(nil)'
51
51
 
52
52
  singleton_mutations
@@ -1,11 +1,11 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :def do
2
2
  source 'def foo; end'
3
3
 
4
4
  mutation 'def foo; raise; end'
5
5
  mutation 'remove_method :foo'
6
6
  end
7
7
 
8
- Mutant::Meta::Example.add do
8
+ Mutant::Meta::Example.add :def do
9
9
  source 'def foo(a, *b); nil; end'
10
10
 
11
11
  mutation 'def foo(_a, *b); nil; end'
@@ -18,7 +18,7 @@ Mutant::Meta::Example.add do
18
18
  mutation 'remove_method :foo'
19
19
  end
20
20
 
21
- Mutant::Meta::Example.add do
21
+ Mutant::Meta::Example.add :def do
22
22
  source 'def foo(a, *); nil; end'
23
23
 
24
24
  mutation 'def foo(_a, *); nil; end'
@@ -30,7 +30,7 @@ Mutant::Meta::Example.add do
30
30
  mutation 'remove_method :foo'
31
31
  end
32
32
 
33
- Mutant::Meta::Example.add do
33
+ Mutant::Meta::Example.add :def do
34
34
  source 'def foo; foo; rescue; end'
35
35
 
36
36
  mutation 'def foo; raise; end'
@@ -43,7 +43,7 @@ Mutant::Meta::Example.add do
43
43
  mutation 'def foo; foo; end'
44
44
  end
45
45
 
46
- Mutant::Meta::Example.add do
46
+ Mutant::Meta::Example.add :def do
47
47
  source 'def a; foo; rescue; bar; else; baz; end'
48
48
 
49
49
  # Mutate all bodies
@@ -72,7 +72,7 @@ Mutant::Meta::Example.add do
72
72
  mutation 'remove_method :a'
73
73
  end
74
74
 
75
- Mutant::Meta::Example.add do
75
+ Mutant::Meta::Example.add :def do
76
76
  source 'def foo; true; false; end'
77
77
 
78
78
  # Mutation of each statement in block
@@ -93,7 +93,7 @@ Mutant::Meta::Example.add do
93
93
  mutation 'remove_method :foo'
94
94
  end
95
95
 
96
- Mutant::Meta::Example.add do
96
+ Mutant::Meta::Example.add :def do
97
97
  source 'def foo(a, b); end'
98
98
 
99
99
  # Deletion of each argument
@@ -113,7 +113,7 @@ Mutant::Meta::Example.add do
113
113
  mutation 'remove_method :foo'
114
114
  end
115
115
 
116
- Mutant::Meta::Example.add do
116
+ Mutant::Meta::Example.add :def do
117
117
  source 'def foo(a, b = nil); true; end'
118
118
 
119
119
  mutation 'def foo(_a, b = nil); true; end'
@@ -130,7 +130,7 @@ Mutant::Meta::Example.add do
130
130
  mutation 'remove_method :foo'
131
131
  end
132
132
 
133
- Mutant::Meta::Example.add do
133
+ Mutant::Meta::Example.add :def do
134
134
  source 'def foo(_unused); end'
135
135
 
136
136
  mutation 'def foo(_unused); raise; end'
@@ -138,7 +138,7 @@ Mutant::Meta::Example.add do
138
138
  mutation 'remove_method :foo'
139
139
  end
140
140
 
141
- Mutant::Meta::Example.add do
141
+ Mutant::Meta::Example.add :def do
142
142
  source 'def foo(_unused = true); end'
143
143
 
144
144
  mutation 'def foo(_unused = nil); end'
@@ -149,7 +149,7 @@ Mutant::Meta::Example.add do
149
149
  mutation 'remove_method :foo'
150
150
  end
151
151
 
152
- Mutant::Meta::Example.add do
152
+ Mutant::Meta::Example.add :def do
153
153
  source 'def foo(a = 0, b = 0); end'
154
154
  mutation 'def foo(a = 0, _b = 0); end'
155
155
  mutation 'def foo(_a = 0, b = 0); end'
@@ -171,7 +171,7 @@ Mutant::Meta::Example.add do
171
171
  mutation 'remove_method :foo'
172
172
  end
173
173
 
174
- Mutant::Meta::Example.add do
174
+ Mutant::Meta::Example.add :def do
175
175
  source 'def foo(a = true); end'
176
176
 
177
177
  mutation 'def foo(a); end'
@@ -184,7 +184,7 @@ Mutant::Meta::Example.add do
184
184
  mutation 'remove_method :foo'
185
185
  end
186
186
 
187
- Mutant::Meta::Example.add do
187
+ Mutant::Meta::Example.add :def do
188
188
  source 'def self.foo; true; false; end'
189
189
 
190
190
  # Body presence mutation
@@ -203,7 +203,7 @@ Mutant::Meta::Example.add do
203
203
  mutation 'def self.foo; raise; end'
204
204
  end
205
205
 
206
- Mutant::Meta::Example.add do
206
+ Mutant::Meta::Example.add :def do
207
207
 
208
208
  source 'def self.foo(a, b); end'
209
209
 
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :defined? do
2
2
  source 'defined?(foo)'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :dstr do
2
2
  source '"foo#{bar}baz"'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :dsym do
2
2
  source ':"foo#{bar}baz"'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :ensure do
2
2
  source 'begin; rescue; ensure; true; end'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :false do
2
2
  source 'false'
3
3
 
4
4
  mutation 'nil'
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :float do
2
2
  source '10.0'
3
3
 
4
4
  singleton_mutations
@@ -14,7 +14,7 @@ Mutant::Meta::Example.add do
14
14
  mutation '-10.0'
15
15
  end
16
16
 
17
- Mutant::Meta::Example.add do
17
+ Mutant::Meta::Example.add :float do
18
18
  source '0.0'
19
19
 
20
20
  singleton_mutations
@@ -24,7 +24,7 @@ Mutant::Meta::Example.add do
24
24
  mutation '(-1.0 / 0.0)'
25
25
  end
26
26
 
27
- Mutant::Meta::Example.add do
27
+ Mutant::Meta::Example.add :float do
28
28
  source '-0.0'
29
29
 
30
30
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :gvar do
2
2
  source '$a'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :gvasgn do
2
2
  source '$a = true'
3
3
 
4
4
  singleton_mutations
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :hash do
2
2
  source '{true => true, false => false}'
3
3
 
4
4
  singleton_mutations
data/meta/if.rb CHANGED
@@ -1,4 +1,4 @@
1
- Mutant::Meta::Example.add do
1
+ Mutant::Meta::Example.add :if do
2
2
  source 'if condition; true; else false; end'
3
3
 
4
4
  singleton_mutations
@@ -33,7 +33,7 @@ Mutant::Meta::Example.add do
33
33
  mutation 'if condition; true; else nil; end'
34
34
  end
35
35
 
36
- Mutant::Meta::Example.add do
36
+ Mutant::Meta::Example.add :if do
37
37
  source 'if condition; true; end'
38
38
 
39
39
  singleton_mutations
@@ -46,7 +46,7 @@ Mutant::Meta::Example.add do
46
46
  mutation 'true'
47
47
  end
48
48
 
49
- Mutant::Meta::Example.add do
49
+ Mutant::Meta::Example.add :if do
50
50
  source 'unless condition; true; end'
51
51
 
52
52
  singleton_mutations
@@ -59,3 +59,17 @@ Mutant::Meta::Example.add do
59
59
  mutation 'if condition; true; end'
60
60
  mutation 'true'
61
61
  end
62
+
63
+ Mutant::Meta::Example.add :if do
64
+ source 'true if /foo/'
65
+
66
+ singleton_mutations
67
+ mutation 'false if /foo/'
68
+ mutation 'true if //'
69
+ mutation 'nil if /foo/'
70
+ mutation 'true if true'
71
+ mutation 'true if false'
72
+ mutation 'true if nil'
73
+ mutation 'true if /nomatch\A/'
74
+ mutation 'true'
75
+ end