evilution 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/.beads/interactions.jsonl +62 -0
  3. data/.rubocop_todo.yml +5 -0
  4. data/CHANGELOG.md +77 -0
  5. data/README.md +80 -24
  6. data/docs/architecture.md +89 -9
  7. data/docs/ast_pattern_syntax.md +50 -5
  8. data/docs/isolation.md +39 -2
  9. data/docs/migration-from-mutant.md +1 -1
  10. data/lib/evilution/ast/aasm_declaration.rb +133 -0
  11. data/lib/evilution/ast/callback_declaration.rb +91 -0
  12. data/lib/evilution/ast/included_block.rb +27 -0
  13. data/lib/evilution/ast/literal_callable.rb +21 -0
  14. data/lib/evilution/ast/parser.rb +119 -16
  15. data/lib/evilution/ast/pattern/method_name.rb +63 -0
  16. data/lib/evilution/ast/pattern/parser.rb +14 -15
  17. data/lib/evilution/ast/regexp_pattern.rb +104 -0
  18. data/lib/evilution/ast/scope_declaration.rb +45 -0
  19. data/lib/evilution/ast/uncovered_code.rb +88 -0
  20. data/lib/evilution/ast/value_object_definition.rb +25 -0
  21. data/lib/evilution/baseline/failure_formatter.rb +27 -0
  22. data/lib/evilution/baseline/report.rb +66 -0
  23. data/lib/evilution/baseline/spec_failure.rb +38 -0
  24. data/lib/evilution/baseline.rb +67 -30
  25. data/lib/evilution/cli/parser/file_args.rb +2 -1
  26. data/lib/evilution/cli/parser/options_builder.rb +1 -1
  27. data/lib/evilution/cli.rb +3 -2
  28. data/lib/evilution/config/validators/spec_mappings.rb +2 -1
  29. data/lib/evilution/config.rb +3 -2
  30. data/lib/evilution/equivalent/detector.rb +3 -1
  31. data/lib/evilution/equivalent/heuristic/guarded_index_fetch/condition.rb +66 -0
  32. data/lib/evilution/equivalent/heuristic/guarded_index_fetch/disturbance.rb +54 -0
  33. data/lib/evilution/equivalent/heuristic/guarded_index_fetch/early_exit.rb +73 -0
  34. data/lib/evilution/equivalent/heuristic/guarded_index_fetch/guard.rb +36 -0
  35. data/lib/evilution/equivalent/heuristic/guarded_index_fetch/index_read.rb +82 -0
  36. data/lib/evilution/equivalent/heuristic/guarded_index_fetch/node_path.rb +43 -0
  37. data/lib/evilution/equivalent/heuristic/guarded_index_fetch.rb +65 -0
  38. data/lib/evilution/example_filter.rb +45 -0
  39. data/lib/evilution/hooks/registry.rb +2 -1
  40. data/lib/evilution/integration/base.rb +2 -0
  41. data/lib/evilution/integration/known_failures.rb +26 -0
  42. data/lib/evilution/integration/loading/body_call_neutralizer.rb +132 -13
  43. data/lib/evilution/integration/loading/callback_redeclaration.rb +186 -0
  44. data/lib/evilution/integration/loading/concern_redeclaration.rb +61 -0
  45. data/lib/evilution/integration/loading/concern_state_cleaner.rb +19 -12
  46. data/lib/evilution/integration/loading/mutation_applier.rb +16 -0
  47. data/lib/evilution/integration/loading/test_class_cache.rb +46 -0
  48. data/lib/evilution/integration/minitest/test_ids.rb +21 -0
  49. data/lib/evilution/integration/minitest.rb +45 -6
  50. data/lib/evilution/integration/rspec/baseline_runner.rb +47 -3
  51. data/lib/evilution/integration/rspec/example_ids.rb +35 -0
  52. data/lib/evilution/integration/rspec/result_builder.rb +6 -1
  53. data/lib/evilution/integration/rspec/state_guard/anonymous_example_group_examples.rb +36 -0
  54. data/lib/evilution/integration/rspec/state_guard.rb +4 -1
  55. data/lib/evilution/integration/rspec.rb +22 -4
  56. data/lib/evilution/integration/test_unit/result_builder.rb +6 -0
  57. data/lib/evilution/integration/test_unit/test_ids.rb +18 -0
  58. data/lib/evilution/integration/test_unit.rb +37 -9
  59. data/lib/evilution/isolation/fork.rb +2 -1
  60. data/lib/evilution/isolation/in_process.rb +21 -4
  61. data/lib/evilution/mcp/info_tool/status_glossary.rb +2 -2
  62. data/lib/evilution/mcp/mutate_tool/progress_streamer.rb +2 -1
  63. data/lib/evilution/memory/leak_check.rb +27 -3
  64. data/lib/evilution/mutation.rb +7 -2
  65. data/lib/evilution/mutator/base.rb +49 -5
  66. data/lib/evilution/mutator/operator/alias_removal.rb +126 -0
  67. data/lib/evilution/mutator/operator/argument_order_permutation.rb +101 -0
  68. data/lib/evilution/mutator/operator/argument_removal.rb +9 -1
  69. data/lib/evilution/mutator/operator/comparison_operand_swap.rb +54 -0
  70. data/lib/evilution/mutator/operator/data_struct_member.rb +82 -0
  71. data/lib/evilution/mutator/operator/exception_swallow.rb +84 -0
  72. data/lib/evilution/mutator/operator/format_specifier_swap.rb +100 -0
  73. data/lib/evilution/mutator/operator/forwarded_argument_drop.rb +142 -0
  74. data/lib/evilution/mutator/operator/integer_division_to_fdiv.rb +62 -0
  75. data/lib/evilution/mutator/operator/keyword_argument.rb +25 -2
  76. data/lib/evilution/mutator/operator/keyword_value_swap.rb +75 -0
  77. data/lib/evilution/mutator/operator/no_matching_pattern_else.rb +47 -0
  78. data/lib/evilution/mutator/operator/numbered_parameter_swap.rb +78 -0
  79. data/lib/evilution/mutator/operator/off_by_one_boundary.rb +68 -0
  80. data/lib/evilution/mutator/operator/optional_parameter_to_required.rb +14 -3
  81. data/lib/evilution/mutator/operator/pattern_matching_array.rb +12 -1
  82. data/lib/evilution/mutator/operator/pattern_wildcard_widening.rb +117 -0
  83. data/lib/evilution/mutator/operator/pin_operator_removal.rb +48 -0
  84. data/lib/evilution/mutator/operator/regex_simplification.rb +53 -132
  85. data/lib/evilution/mutator/operator/regexp_alternation_branch_deletion.rb +54 -0
  86. data/lib/evilution/mutator/operator/regexp_anchor_promotion.rb +43 -0
  87. data/lib/evilution/mutator/operator/regexp_capture_to_passive.rb +61 -0
  88. data/lib/evilution/mutator/operator/regexp_character_type_complement.rb +54 -0
  89. data/lib/evilution/mutator/operator/regexp_named_group_rename.rb +106 -0
  90. data/lib/evilution/mutator/operator/regexp_option_removal.rb +51 -0
  91. data/lib/evilution/mutator/operator/regexp_quantifier_minimum_swap.rb +45 -0
  92. data/lib/evilution/mutator/operator/rescue_else_concatenation.rb +62 -0
  93. data/lib/evilution/mutator/operator/rescue_handler_concatenation.rb +69 -0
  94. data/lib/evilution/mutator/operator/rescue_handler_promotion.rb +65 -0
  95. data/lib/evilution/mutator/operator/return_keyword_removal.rb +79 -0
  96. data/lib/evilution/mutator/operator/rightward_assignment.rb +46 -0
  97. data/lib/evilution/mutator/operator/send_mutation.rb +2 -0
  98. data/lib/evilution/mutator/operator/splat_operator.rb +38 -13
  99. data/lib/evilution/mutator/operator/statement_reorder.rb +153 -0
  100. data/lib/evilution/mutator/registry.rb +31 -2
  101. data/lib/evilution/mutator/rescue_handlers.rb +81 -0
  102. data/lib/evilution/process_supervisor.rb +3 -2
  103. data/lib/evilution/reporter/cli/line_formatters/baseline_neutralized_notice.rb +55 -0
  104. data/lib/evilution/reporter/cli/metrics_block.rb +2 -0
  105. data/lib/evilution/reporter/json/baseline.rb +15 -0
  106. data/lib/evilution/reporter/json.rb +7 -2
  107. data/lib/evilution/result/baseline_neutralization.rb +10 -0
  108. data/lib/evilution/result/mutation_result.rb +9 -1
  109. data/lib/evilution/result/summary.rb +42 -2
  110. data/lib/evilution/runner/baseline_runner.rb +9 -4
  111. data/lib/evilution/runner/canary.rb +2 -57
  112. data/lib/evilution/runner/canary_failure_message.rb +101 -0
  113. data/lib/evilution/runner/mutation_executor/neutralizer/baseline_failed.rb +22 -8
  114. data/lib/evilution/runner/mutation_executor/result_cache.rb +3 -0
  115. data/lib/evilution/runner/mutation_executor/result_packer.rb +4 -2
  116. data/lib/evilution/runner/mutation_executor.rb +1 -1
  117. data/lib/evilution/runner/mutation_planner.rb +11 -2
  118. data/lib/evilution/runner/report_publisher.rb +3 -2
  119. data/lib/evilution/runner/subject_pipeline.rb +46 -1
  120. data/lib/evilution/runner.rb +4 -1
  121. data/lib/evilution/subject.rb +8 -2
  122. data/lib/evilution/version.rb +1 -1
  123. data/lib/evilution.rb +28 -0
  124. data/script/memory_check +62 -16
  125. metadata +83 -4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evilution
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Kiselev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-09-28 00:00:00.000000000 Z
11
+ date: 2026-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '1.5'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '3'
22
+ version: '2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '1.5'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '3'
32
+ version: '2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: mcp
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -70,6 +70,26 @@ dependencies:
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
72
  version: '2'
73
+ - !ruby/object:Gem::Dependency
74
+ name: regexp_parser
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ version: '2.9'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '3'
83
+ type: :runtime
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '2.9'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '3'
73
93
  description: Evilution is a mutation testing tool for Ruby. It validates test suite
74
94
  quality by making small code changes and checking if tests catch them. AI-agent-first
75
95
  design with JSON output, diff-based targeting, and coverage-based filtering.
@@ -120,18 +140,30 @@ files:
120
140
  - exe/evilution
121
141
  - lib/evilution.rb
122
142
  - lib/evilution/ast.rb
143
+ - lib/evilution/ast/aasm_declaration.rb
144
+ - lib/evilution/ast/callback_declaration.rb
123
145
  - lib/evilution/ast/constant_names.rb
124
146
  - lib/evilution/ast/heredoc_span.rb
147
+ - lib/evilution/ast/included_block.rb
125
148
  - lib/evilution/ast/inheritance_scanner.rb
149
+ - lib/evilution/ast/literal_callable.rb
126
150
  - lib/evilution/ast/local_reads.rb
127
151
  - lib/evilution/ast/parser.rb
128
152
  - lib/evilution/ast/pattern.rb
129
153
  - lib/evilution/ast/pattern/filter.rb
130
154
  - lib/evilution/ast/pattern/matcher.rb
155
+ - lib/evilution/ast/pattern/method_name.rb
131
156
  - lib/evilution/ast/pattern/parser.rb
157
+ - lib/evilution/ast/regexp_pattern.rb
158
+ - lib/evilution/ast/scope_declaration.rb
132
159
  - lib/evilution/ast/sorbet_sig_detector.rb
133
160
  - lib/evilution/ast/source_surgeon.rb
161
+ - lib/evilution/ast/uncovered_code.rb
162
+ - lib/evilution/ast/value_object_definition.rb
134
163
  - lib/evilution/baseline.rb
164
+ - lib/evilution/baseline/failure_formatter.rb
165
+ - lib/evilution/baseline/report.rb
166
+ - lib/evilution/baseline/spec_failure.rb
135
167
  - lib/evilution/cache.rb
136
168
  - lib/evilution/child_output.rb
137
169
  - lib/evilution/cli.rb
@@ -218,6 +250,13 @@ files:
218
250
  - lib/evilution/equivalent/heuristic/arithmetic_identity.rb
219
251
  - lib/evilution/equivalent/heuristic/comment_marking.rb
220
252
  - lib/evilution/equivalent/heuristic/dead_code.rb
253
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch.rb
254
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch/condition.rb
255
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch/disturbance.rb
256
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch/early_exit.rb
257
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch/guard.rb
258
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch/index_read.rb
259
+ - lib/evilution/equivalent/heuristic/guarded_index_fetch/node_path.rb
221
260
  - lib/evilution/equivalent/heuristic/method_body_nil.rb
222
261
  - lib/evilution/equivalent/heuristic/noop_source.rb
223
262
  - lib/evilution/equivalent/heuristic/void_context.rb
@@ -235,8 +274,11 @@ files:
235
274
  - lib/evilution/integration.rb
236
275
  - lib/evilution/integration/base.rb
237
276
  - lib/evilution/integration/crash_detector.rb
277
+ - lib/evilution/integration/known_failures.rb
238
278
  - lib/evilution/integration/loading.rb
239
279
  - lib/evilution/integration/loading/body_call_neutralizer.rb
280
+ - lib/evilution/integration/loading/callback_redeclaration.rb
281
+ - lib/evilution/integration/loading/concern_redeclaration.rb
240
282
  - lib/evilution/integration/loading/concern_state_cleaner.rb
241
283
  - lib/evilution/integration/loading/constant_pinner.rb
242
284
  - lib/evilution/integration/loading/mutation_applier.rb
@@ -244,16 +286,20 @@ files:
244
286
  - lib/evilution/integration/loading/reeval_warning_filter.rb
245
287
  - lib/evilution/integration/loading/source_evaluator.rb
246
288
  - lib/evilution/integration/loading/syntax_validator.rb
289
+ - lib/evilution/integration/loading/test_class_cache.rb
247
290
  - lib/evilution/integration/loading/test_load_path.rb
248
291
  - lib/evilution/integration/minitest.rb
292
+ - lib/evilution/integration/minitest/test_ids.rb
249
293
  - lib/evilution/integration/minitest_crash_detector.rb
250
294
  - lib/evilution/integration/rspec.rb
251
295
  - lib/evilution/integration/rspec/baseline_runner.rb
252
296
  - lib/evilution/integration/rspec/crash_detector_lifecycle.rb
253
297
  - lib/evilution/integration/rspec/example_filter_applier.rb
298
+ - lib/evilution/integration/rspec/example_ids.rb
254
299
  - lib/evilution/integration/rspec/framework_loader.rb
255
300
  - lib/evilution/integration/rspec/result_builder.rb
256
301
  - lib/evilution/integration/rspec/state_guard.rb
302
+ - lib/evilution/integration/rspec/state_guard/anonymous_example_group_examples.rb
257
303
  - lib/evilution/integration/rspec/state_guard/configuration_state.rb
258
304
  - lib/evilution/integration/rspec/state_guard/configuration_streams.rb
259
305
  - lib/evilution/integration/rspec/state_guard/example_groups_constants.rb
@@ -271,6 +317,7 @@ files:
271
317
  - lib/evilution/integration/test_unit/result_builder.rb
272
318
  - lib/evilution/integration/test_unit/subject_class_registry.rb
273
319
  - lib/evilution/integration/test_unit/test_file_resolver.rb
320
+ - lib/evilution/integration/test_unit/test_ids.rb
274
321
  - lib/evilution/integration/test_unit_crash_detector.rb
275
322
  - lib/evilution/isolation.rb
276
323
  - lib/evilution/isolation/fork.rb
@@ -307,9 +354,11 @@ files:
307
354
  - lib/evilution/mutator.rb
308
355
  - lib/evilution/mutator/base.rb
309
356
  - lib/evilution/mutator/operator.rb
357
+ - lib/evilution/mutator/operator/alias_removal.rb
310
358
  - lib/evilution/mutator/operator/argument_list_removal.rb
311
359
  - lib/evilution/mutator/operator/argument_method_call_replacement.rb
312
360
  - lib/evilution/mutator/operator/argument_nil_substitution.rb
361
+ - lib/evilution/mutator/operator/argument_order_permutation.rb
313
362
  - lib/evilution/mutator/operator/argument_propagation.rb
314
363
  - lib/evilution/mutator/operator/argument_removal.rb
315
364
  - lib/evilution/mutator/operator/arithmetic_replacement.rb
@@ -341,20 +390,25 @@ files:
341
390
  - lib/evilution/mutator/operator/coercion_emptying.rb
342
391
  - lib/evilution/mutator/operator/collection_replacement.rb
343
392
  - lib/evilution/mutator/operator/collection_return.rb
393
+ - lib/evilution/mutator/operator/comparison_operand_swap.rb
344
394
  - lib/evilution/mutator/operator/comparison_replacement.rb
345
395
  - lib/evilution/mutator/operator/compound_assignment.rb
346
396
  - lib/evilution/mutator/operator/conditional_branch.rb
347
397
  - lib/evilution/mutator/operator/conditional_flip.rb
348
398
  - lib/evilution/mutator/operator/conditional_negation.rb
349
399
  - lib/evilution/mutator/operator/const_get_to_constant_path.rb
400
+ - lib/evilution/mutator/operator/data_struct_member.rb
350
401
  - lib/evilution/mutator/operator/defined_check.rb
351
402
  - lib/evilution/mutator/operator/dig_to_fetch_chain.rb
352
403
  - lib/evilution/mutator/operator/double_negation_removal.rb
353
404
  - lib/evilution/mutator/operator/dynamic_dispatch_resolution.rb
354
405
  - lib/evilution/mutator/operator/ensure_removal.rb
355
406
  - lib/evilution/mutator/operator/equality_to_identity.rb
407
+ - lib/evilution/mutator/operator/exception_swallow.rb
356
408
  - lib/evilution/mutator/operator/explicit_super_mutation.rb
357
409
  - lib/evilution/mutator/operator/float_literal.rb
410
+ - lib/evilution/mutator/operator/format_specifier_swap.rb
411
+ - lib/evilution/mutator/operator/forwarded_argument_drop.rb
358
412
  - lib/evilution/mutator/operator/forwarding_super_to_explicit.rb
359
413
  - lib/evilution/mutator/operator/global_variable_write.rb
360
414
  - lib/evilution/mutator/operator/hash_literal.rb
@@ -366,9 +420,11 @@ files:
366
420
  - lib/evilution/mutator/operator/inequality_to_negated_identity.rb
367
421
  - lib/evilution/mutator/operator/inline_rescue.rb
368
422
  - lib/evilution/mutator/operator/instance_variable_write.rb
423
+ - lib/evilution/mutator/operator/integer_division_to_fdiv.rb
369
424
  - lib/evilution/mutator/operator/integer_literal.rb
370
425
  - lib/evilution/mutator/operator/keyword_argument.rb
371
426
  - lib/evilution/mutator/operator/keyword_argument_removal.rb
427
+ - lib/evilution/mutator/operator/keyword_value_swap.rb
372
428
  - lib/evilution/mutator/operator/lambda_body.rb
373
429
  - lib/evilution/mutator/operator/last_expression_removal.rb
374
430
  - lib/evilution/mutator/operator/local_variable_assignment.rb
@@ -383,12 +439,17 @@ files:
383
439
  - lib/evilution/mutator/operator/negation_insertion.rb
384
440
  - lib/evilution/mutator/operator/next_statement.rb
385
441
  - lib/evilution/mutator/operator/nil_replacement.rb
442
+ - lib/evilution/mutator/operator/no_matching_pattern_else.rb
443
+ - lib/evilution/mutator/operator/numbered_parameter_swap.rb
444
+ - lib/evilution/mutator/operator/off_by_one_boundary.rb
386
445
  - lib/evilution/mutator/operator/optional_default_injection.rb
387
446
  - lib/evilution/mutator/operator/optional_parameter_to_required.rb
388
447
  - lib/evilution/mutator/operator/pattern_matching_alternative.rb
389
448
  - lib/evilution/mutator/operator/pattern_matching_array.rb
390
449
  - lib/evilution/mutator/operator/pattern_matching_guard.rb
391
450
  - lib/evilution/mutator/operator/pattern_predicate.rb
451
+ - lib/evilution/mutator/operator/pattern_wildcard_widening.rb
452
+ - lib/evilution/mutator/operator/pin_operator_removal.rb
392
453
  - lib/evilution/mutator/operator/predicate_replacement.rb
393
454
  - lib/evilution/mutator/operator/predicate_to_nil.rb
394
455
  - lib/evilution/mutator/operator/proc_to_lambda.rb
@@ -399,17 +460,30 @@ files:
399
460
  - lib/evilution/mutator/operator/reduce_to_sum.rb
400
461
  - lib/evilution/mutator/operator/regex_capture.rb
401
462
  - lib/evilution/mutator/operator/regex_simplification.rb
463
+ - lib/evilution/mutator/operator/regexp_alternation_branch_deletion.rb
464
+ - lib/evilution/mutator/operator/regexp_anchor_promotion.rb
402
465
  - lib/evilution/mutator/operator/regexp_anchor_to_predicate.rb
466
+ - lib/evilution/mutator/operator/regexp_capture_to_passive.rb
467
+ - lib/evilution/mutator/operator/regexp_character_type_complement.rb
403
468
  - lib/evilution/mutator/operator/regexp_mutation.rb
469
+ - lib/evilution/mutator/operator/regexp_named_group_rename.rb
470
+ - lib/evilution/mutator/operator/regexp_option_removal.rb
471
+ - lib/evilution/mutator/operator/regexp_quantifier_minimum_swap.rb
404
472
  - lib/evilution/mutator/operator/rescue_body_replacement.rb
473
+ - lib/evilution/mutator/operator/rescue_else_concatenation.rb
474
+ - lib/evilution/mutator/operator/rescue_handler_concatenation.rb
475
+ - lib/evilution/mutator/operator/rescue_handler_promotion.rb
405
476
  - lib/evilution/mutator/operator/rescue_removal.rb
406
477
  - lib/evilution/mutator/operator/retry_removal.rb
478
+ - lib/evilution/mutator/operator/return_keyword_removal.rb
407
479
  - lib/evilution/mutator/operator/return_value_removal.rb
480
+ - lib/evilution/mutator/operator/rightward_assignment.rb
408
481
  - lib/evilution/mutator/operator/safe_navigation_removal.rb
409
482
  - lib/evilution/mutator/operator/scalar_return.rb
410
483
  - lib/evilution/mutator/operator/send_mutation.rb
411
484
  - lib/evilution/mutator/operator/splat_operator.rb
412
485
  - lib/evilution/mutator/operator/statement_deletion.rb
486
+ - lib/evilution/mutator/operator/statement_reorder.rb
413
487
  - lib/evilution/mutator/operator/string_interpolation.rb
414
488
  - lib/evilution/mutator/operator/string_literal.rb
415
489
  - lib/evilution/mutator/operator/superclass_removal.rb
@@ -421,6 +495,7 @@ files:
421
495
  - lib/evilution/mutator/operator/zsuper_removal.rb
422
496
  - lib/evilution/mutator/primitives.rb
423
497
  - lib/evilution/mutator/registry.rb
498
+ - lib/evilution/mutator/rescue_handlers.rb
424
499
  - lib/evilution/parallel.rb
425
500
  - lib/evilution/parallel/pool.rb
426
501
  - lib/evilution/parallel/work_queue.rb
@@ -453,6 +528,7 @@ files:
453
528
  - lib/evilution/reporter/cli/item_formatters/subject_score.rb
454
529
  - lib/evilution/reporter/cli/item_formatters/subject_score_group.rb
455
530
  - lib/evilution/reporter/cli/line_formatters.rb
531
+ - lib/evilution/reporter/cli/line_formatters/baseline_neutralized_notice.rb
456
532
  - lib/evilution/reporter/cli/line_formatters/duration.rb
457
533
  - lib/evilution/reporter/cli/line_formatters/efficiency.rb
458
534
  - lib/evilution/reporter/cli/line_formatters/error_rate_warning.rb
@@ -508,6 +584,7 @@ files:
508
584
  - lib/evilution/reporter/html/templates/unparseable_details.html.erb
509
585
  - lib/evilution/reporter/html/templates/unresolved_details.html.erb
510
586
  - lib/evilution/reporter/json.rb
587
+ - lib/evilution/reporter/json/baseline.rb
511
588
  - lib/evilution/reporter/json/subjects.rb
512
589
  - lib/evilution/reporter/progress_bar.rb
513
590
  - lib/evilution/reporter/suggestion.rb
@@ -519,6 +596,7 @@ files:
519
596
  - lib/evilution/reporter/suggestion/templates/minitest.rb
520
597
  - lib/evilution/reporter/suggestion/templates/rspec.rb
521
598
  - lib/evilution/result.rb
599
+ - lib/evilution/result/baseline_neutralization.rb
522
600
  - lib/evilution/result/coverage_gap.rb
523
601
  - lib/evilution/result/coverage_gap_grouper.rb
524
602
  - lib/evilution/result/error_info.rb
@@ -531,6 +609,7 @@ files:
531
609
  - lib/evilution/runner.rb
532
610
  - lib/evilution/runner/baseline_runner.rb
533
611
  - lib/evilution/runner/canary.rb
612
+ - lib/evilution/runner/canary_failure_message.rb
534
613
  - lib/evilution/runner/diagnostics.rb
535
614
  - lib/evilution/runner/isolation_resolver.rb
536
615
  - lib/evilution/runner/mutation_executor.rb