evilution 1.3.0 → 1.5.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.
- checksums.yaml +4 -4
- data/.beads/interactions.jsonl +132 -0
- data/.rubocop_todo.yml +5 -0
- data/CHANGELOG.md +127 -0
- data/README.md +136 -38
- data/docs/architecture.md +135 -11
- data/docs/ast_pattern_syntax.md +50 -5
- data/docs/isolation.md +121 -2
- data/docs/migration-from-mutant.md +1 -1
- data/lib/evilution/ast/aasm_declaration.rb +133 -0
- data/lib/evilution/ast/callback_declaration.rb +91 -0
- data/lib/evilution/ast/class_body.rb +101 -0
- data/lib/evilution/ast/included_block.rb +41 -0
- data/lib/evilution/ast/literal_callable.rb +21 -0
- data/lib/evilution/ast/never_nil.rb +36 -0
- data/lib/evilution/ast/parser.rb +187 -21
- data/lib/evilution/ast/pattern/method_name.rb +63 -0
- data/lib/evilution/ast/pattern/parser.rb +14 -15
- data/lib/evilution/ast/regexp_pattern.rb +104 -0
- data/lib/evilution/ast/round_half_mode.rb +38 -0
- data/lib/evilution/ast/scope_declaration.rb +45 -0
- data/lib/evilution/ast/source_surgeon.rb +2 -3
- data/lib/evilution/ast/syntax_check.rb +56 -0
- data/lib/evilution/ast/uncovered_code.rb +88 -0
- data/lib/evilution/ast/value_object_definition.rb +25 -0
- data/lib/evilution/baseline/failure_formatter.rb +27 -0
- data/lib/evilution/baseline/report.rb +66 -0
- data/lib/evilution/baseline/spec_failure.rb +38 -0
- data/lib/evilution/baseline.rb +67 -30
- data/lib/evilution/cli/exit_guard.rb +26 -4
- data/lib/evilution/cli/parser/file_args.rb +2 -1
- data/lib/evilution/cli/parser/options_builder.rb +1 -1
- data/lib/evilution/cli.rb +3 -2
- data/lib/evilution/config/validators/spec_mappings.rb +2 -1
- data/lib/evilution/config.rb +3 -2
- data/lib/evilution/equivalent/detector.rb +3 -1
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch/condition.rb +66 -0
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch/disturbance.rb +54 -0
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch/early_exit.rb +73 -0
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch/guard.rb +36 -0
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch/index_read.rb +82 -0
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch/node_path.rb +43 -0
- data/lib/evilution/equivalent/heuristic/guarded_index_fetch.rb +65 -0
- data/lib/evilution/example_filter.rb +45 -0
- data/lib/evilution/hooks/registry.rb +2 -1
- data/lib/evilution/integration/base.rb +11 -1
- data/lib/evilution/integration/known_failures.rb +26 -0
- data/lib/evilution/integration/loading/body_call_neutralizer.rb +177 -13
- data/lib/evilution/integration/loading/callback_redeclaration.rb +186 -0
- data/lib/evilution/integration/loading/concern_redeclaration.rb +80 -0
- data/lib/evilution/integration/loading/concern_state_cleaner.rb +22 -15
- data/lib/evilution/integration/loading/mutation_applier.rb +44 -1
- data/lib/evilution/integration/loading/own_methods.rb +87 -0
- data/lib/evilution/integration/loading/redefinition_recovery.rb +2 -3
- data/lib/evilution/integration/loading/source_evaluator.rb +9 -2
- data/lib/evilution/integration/loading/superseded_modules.rb +103 -0
- data/lib/evilution/integration/loading/syntax_validator.rb +2 -2
- data/lib/evilution/integration/loading/test_class_cache.rb +46 -0
- data/lib/evilution/integration/minitest/test_ids.rb +21 -0
- data/lib/evilution/integration/minitest.rb +45 -6
- data/lib/evilution/integration/rspec/baseline_runner.rb +47 -3
- data/lib/evilution/integration/rspec/example_ids.rb +35 -0
- data/lib/evilution/integration/rspec/result_builder.rb +6 -1
- data/lib/evilution/integration/rspec/state_guard/anonymous_example_group_examples.rb +36 -0
- data/lib/evilution/integration/rspec/state_guard.rb +4 -1
- data/lib/evilution/integration/rspec.rb +22 -4
- data/lib/evilution/integration/test_unit/result_builder.rb +6 -0
- data/lib/evilution/integration/test_unit/test_ids.rb +18 -0
- data/lib/evilution/integration/test_unit.rb +37 -9
- data/lib/evilution/isolation/fork.rb +84 -11
- data/lib/evilution/isolation/in_process.rb +100 -8
- data/lib/evilution/mcp/info_tool/status_glossary.rb +15 -4
- data/lib/evilution/mcp/info_tool.rb +3 -2
- data/lib/evilution/mcp/mutate_tool/progress_streamer.rb +2 -1
- data/lib/evilution/memory/leak_check.rb +27 -3
- data/lib/evilution/mutation.rb +21 -9
- data/lib/evilution/mutator/base.rb +69 -5
- data/lib/evilution/mutator/constant_value_subjects.rb +13 -0
- data/lib/evilution/mutator/operator/alias_removal.rb +56 -0
- data/lib/evilution/mutator/operator/argument_nil_substitution.rb +2 -2
- data/lib/evilution/mutator/operator/argument_order_permutation.rb +101 -0
- data/lib/evilution/mutator/operator/argument_removal.rb +10 -2
- data/lib/evilution/mutator/operator/array_literal.rb +29 -0
- data/lib/evilution/mutator/operator/attr_accessor_swap.rb +68 -0
- data/lib/evilution/mutator/operator/boolean_literal_replacement.rb +2 -0
- data/lib/evilution/mutator/operator/call_to_nil.rb +12 -3
- data/lib/evilution/mutator/operator/comparison_operand_swap.rb +54 -0
- data/lib/evilution/mutator/operator/complex_literal.rb +39 -0
- data/lib/evilution/mutator/operator/compound_assignment.rb +47 -0
- data/lib/evilution/mutator/operator/constant_namespace_strip.rb +57 -0
- data/lib/evilution/mutator/operator/constant_read_to_nil.rb +58 -0
- data/lib/evilution/mutator/operator/constant_write_to_nil.rb +32 -0
- data/lib/evilution/mutator/operator/data_struct_member.rb +82 -0
- data/lib/evilution/mutator/operator/exception_swallow.rb +84 -0
- data/lib/evilution/mutator/operator/explicit_super_mutation.rb +2 -2
- data/lib/evilution/mutator/operator/float_literal.rb +54 -19
- data/lib/evilution/mutator/operator/format_specifier_swap.rb +100 -0
- data/lib/evilution/mutator/operator/forwarded_argument_drop.rb +142 -0
- data/lib/evilution/mutator/operator/freeze_removal.rb +86 -0
- data/lib/evilution/mutator/operator/hash_literal.rb +51 -0
- data/lib/evilution/mutator/operator/index_range_to_drop.rb +67 -0
- data/lib/evilution/mutator/operator/index_receiver_to_self.rb +20 -0
- data/lib/evilution/mutator/operator/index_to_key_predicate.rb +58 -0
- data/lib/evilution/mutator/operator/index_write_to_value.rb +37 -0
- data/lib/evilution/mutator/operator/integer_division_to_fdiv.rb +62 -0
- data/lib/evilution/mutator/operator/integer_literal.rb +39 -9
- data/lib/evilution/mutator/operator/keyword_argument.rb +25 -2
- data/lib/evilution/mutator/operator/keyword_value_swap.rb +75 -0
- data/lib/evilution/mutator/operator/memoization_break.rb +18 -0
- data/lib/evilution/mutator/operator/mixin_removal.rb +18 -55
- data/lib/evilution/mutator/operator/nil_replacement.rb +2 -0
- data/lib/evilution/mutator/operator/no_matching_pattern_else.rb +47 -0
- data/lib/evilution/mutator/operator/numbered_parameter_swap.rb +78 -0
- data/lib/evilution/mutator/operator/off_by_one_boundary.rb +68 -0
- data/lib/evilution/mutator/operator/operator_write_receiver_promotion.rb +38 -0
- data/lib/evilution/mutator/operator/optional_parameter_to_required.rb +14 -3
- data/lib/evilution/mutator/operator/pattern_matching_array.rb +12 -1
- data/lib/evilution/mutator/operator/pattern_wildcard_widening.rb +117 -0
- data/lib/evilution/mutator/operator/pin_operator_removal.rb +48 -0
- data/lib/evilution/mutator/operator/range_replacement.rb +2 -0
- data/lib/evilution/mutator/operator/rational_literal.rb +40 -0
- data/lib/evilution/mutator/operator/reduce_to_sum.rb +1 -1
- data/lib/evilution/mutator/operator/regex_simplification.rb +53 -132
- data/lib/evilution/mutator/operator/regexp_alternation_branch_deletion.rb +54 -0
- data/lib/evilution/mutator/operator/regexp_anchor_promotion.rb +43 -0
- data/lib/evilution/mutator/operator/regexp_capture_to_passive.rb +61 -0
- data/lib/evilution/mutator/operator/regexp_character_type_complement.rb +54 -0
- data/lib/evilution/mutator/operator/regexp_named_group_rename.rb +106 -0
- data/lib/evilution/mutator/operator/regexp_option_removal.rb +51 -0
- data/lib/evilution/mutator/operator/regexp_quantifier_minimum_swap.rb +45 -0
- data/lib/evilution/mutator/operator/rescue_class_widening.rb +54 -0
- data/lib/evilution/mutator/operator/rescue_else_concatenation.rb +62 -0
- data/lib/evilution/mutator/operator/rescue_handler_concatenation.rb +69 -0
- data/lib/evilution/mutator/operator/rescue_handler_promotion.rb +65 -0
- data/lib/evilution/mutator/operator/return_keyword_removal.rb +79 -0
- data/lib/evilution/mutator/operator/rightward_assignment.rb +46 -0
- data/lib/evilution/mutator/operator/round_half_mode_swap.rb +36 -0
- data/lib/evilution/mutator/operator/safe_navigation_insertion.rb +57 -0
- data/lib/evilution/mutator/operator/safe_navigation_removal.rb +2 -24
- data/lib/evilution/mutator/operator/send_mutation.rb +2 -0
- data/lib/evilution/mutator/operator/short_circuit_to_eager.rb +34 -0
- data/lib/evilution/mutator/operator/sleep_to_zero.rb +43 -0
- data/lib/evilution/mutator/operator/splat_operator.rb +41 -24
- data/lib/evilution/mutator/operator/statement_reorder.rb +153 -0
- data/lib/evilution/mutator/operator/string_literal.rb +29 -0
- data/lib/evilution/mutator/operator/superclass_removal.rb +14 -40
- data/lib/evilution/mutator/operator/symbol_literal.rb +47 -2
- data/lib/evilution/mutator/operator/to_i_to_integer.rb +1 -1
- data/lib/evilution/mutator/operator/variable_read_to_nil.rb +113 -0
- data/lib/evilution/mutator/operator/visibility_removal.rb +74 -0
- data/lib/evilution/mutator/primitives.rb +24 -2
- data/lib/evilution/mutator/receiver_positions.rb +79 -0
- data/lib/evilution/mutator/registry.rb +58 -2
- data/lib/evilution/mutator/rescue_handlers.rb +81 -0
- data/lib/evilution/parallel/work_queue/channel/frame.rb +6 -0
- data/lib/evilution/parallel/work_queue/channel.rb +58 -5
- data/lib/evilution/parallel/work_queue/dispatcher/reply.rb +41 -0
- data/lib/evilution/parallel/work_queue/dispatcher.rb +14 -1
- data/lib/evilution/parallel/work_queue/worker/loop.rb +5 -0
- data/lib/evilution/parallel/work_queue/worker.rb +13 -4
- data/lib/evilution/parallel/work_queue.rb +15 -9
- data/lib/evilution/process_supervisor.rb +3 -2
- data/lib/evilution/reporter/cli/line_formatters/baseline_neutralized_notice.rb +55 -0
- data/lib/evilution/reporter/cli/metrics_block.rb +2 -0
- data/lib/evilution/reporter/json/baseline.rb +15 -0
- data/lib/evilution/reporter/json.rb +7 -2
- data/lib/evilution/result/baseline_neutralization.rb +10 -0
- data/lib/evilution/result/mutation_result.rb +9 -1
- data/lib/evilution/result/summary.rb +42 -2
- data/lib/evilution/runner/baseline_runner.rb +9 -4
- data/lib/evilution/runner/canary.rb +2 -57
- data/lib/evilution/runner/canary_failure_message.rb +101 -0
- data/lib/evilution/runner/mutation_executor/neutralizer/baseline_failed.rb +22 -8
- data/lib/evilution/runner/mutation_executor/result_cache.rb +3 -0
- data/lib/evilution/runner/mutation_executor/result_packer.rb +4 -2
- data/lib/evilution/runner/mutation_executor/strategy/parallel.rb +10 -0
- data/lib/evilution/runner/mutation_executor.rb +1 -1
- data/lib/evilution/runner/mutation_planner.rb +11 -2
- data/lib/evilution/runner/report_publisher.rb +3 -2
- data/lib/evilution/runner/subject_pipeline/target.rb +86 -0
- data/lib/evilution/runner/subject_pipeline.rb +57 -43
- data/lib/evilution/runner.rb +5 -2
- data/lib/evilution/subject.rb +25 -2
- data/lib/evilution/version.rb +1 -1
- data/lib/evilution.rb +90 -0
- data/script/memory_check +62 -16
- metadata +113 -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.
|
|
4
|
+
version: 1.5.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-
|
|
11
|
+
date: 2026-10-14 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: '
|
|
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: '
|
|
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,34 @@ 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
|
|
145
|
+
- lib/evilution/ast/class_body.rb
|
|
123
146
|
- lib/evilution/ast/constant_names.rb
|
|
124
147
|
- lib/evilution/ast/heredoc_span.rb
|
|
148
|
+
- lib/evilution/ast/included_block.rb
|
|
125
149
|
- lib/evilution/ast/inheritance_scanner.rb
|
|
150
|
+
- lib/evilution/ast/literal_callable.rb
|
|
126
151
|
- lib/evilution/ast/local_reads.rb
|
|
152
|
+
- lib/evilution/ast/never_nil.rb
|
|
127
153
|
- lib/evilution/ast/parser.rb
|
|
128
154
|
- lib/evilution/ast/pattern.rb
|
|
129
155
|
- lib/evilution/ast/pattern/filter.rb
|
|
130
156
|
- lib/evilution/ast/pattern/matcher.rb
|
|
157
|
+
- lib/evilution/ast/pattern/method_name.rb
|
|
131
158
|
- lib/evilution/ast/pattern/parser.rb
|
|
159
|
+
- lib/evilution/ast/regexp_pattern.rb
|
|
160
|
+
- lib/evilution/ast/round_half_mode.rb
|
|
161
|
+
- lib/evilution/ast/scope_declaration.rb
|
|
132
162
|
- lib/evilution/ast/sorbet_sig_detector.rb
|
|
133
163
|
- lib/evilution/ast/source_surgeon.rb
|
|
164
|
+
- lib/evilution/ast/syntax_check.rb
|
|
165
|
+
- lib/evilution/ast/uncovered_code.rb
|
|
166
|
+
- lib/evilution/ast/value_object_definition.rb
|
|
134
167
|
- lib/evilution/baseline.rb
|
|
168
|
+
- lib/evilution/baseline/failure_formatter.rb
|
|
169
|
+
- lib/evilution/baseline/report.rb
|
|
170
|
+
- lib/evilution/baseline/spec_failure.rb
|
|
135
171
|
- lib/evilution/cache.rb
|
|
136
172
|
- lib/evilution/child_output.rb
|
|
137
173
|
- lib/evilution/cli.rb
|
|
@@ -218,6 +254,13 @@ files:
|
|
|
218
254
|
- lib/evilution/equivalent/heuristic/arithmetic_identity.rb
|
|
219
255
|
- lib/evilution/equivalent/heuristic/comment_marking.rb
|
|
220
256
|
- lib/evilution/equivalent/heuristic/dead_code.rb
|
|
257
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch.rb
|
|
258
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch/condition.rb
|
|
259
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch/disturbance.rb
|
|
260
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch/early_exit.rb
|
|
261
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch/guard.rb
|
|
262
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch/index_read.rb
|
|
263
|
+
- lib/evilution/equivalent/heuristic/guarded_index_fetch/node_path.rb
|
|
221
264
|
- lib/evilution/equivalent/heuristic/method_body_nil.rb
|
|
222
265
|
- lib/evilution/equivalent/heuristic/noop_source.rb
|
|
223
266
|
- lib/evilution/equivalent/heuristic/void_context.rb
|
|
@@ -235,25 +278,34 @@ files:
|
|
|
235
278
|
- lib/evilution/integration.rb
|
|
236
279
|
- lib/evilution/integration/base.rb
|
|
237
280
|
- lib/evilution/integration/crash_detector.rb
|
|
281
|
+
- lib/evilution/integration/known_failures.rb
|
|
238
282
|
- lib/evilution/integration/loading.rb
|
|
239
283
|
- lib/evilution/integration/loading/body_call_neutralizer.rb
|
|
284
|
+
- lib/evilution/integration/loading/callback_redeclaration.rb
|
|
285
|
+
- lib/evilution/integration/loading/concern_redeclaration.rb
|
|
240
286
|
- lib/evilution/integration/loading/concern_state_cleaner.rb
|
|
241
287
|
- lib/evilution/integration/loading/constant_pinner.rb
|
|
242
288
|
- lib/evilution/integration/loading/mutation_applier.rb
|
|
289
|
+
- lib/evilution/integration/loading/own_methods.rb
|
|
243
290
|
- lib/evilution/integration/loading/redefinition_recovery.rb
|
|
244
291
|
- lib/evilution/integration/loading/reeval_warning_filter.rb
|
|
245
292
|
- lib/evilution/integration/loading/source_evaluator.rb
|
|
293
|
+
- lib/evilution/integration/loading/superseded_modules.rb
|
|
246
294
|
- lib/evilution/integration/loading/syntax_validator.rb
|
|
295
|
+
- lib/evilution/integration/loading/test_class_cache.rb
|
|
247
296
|
- lib/evilution/integration/loading/test_load_path.rb
|
|
248
297
|
- lib/evilution/integration/minitest.rb
|
|
298
|
+
- lib/evilution/integration/minitest/test_ids.rb
|
|
249
299
|
- lib/evilution/integration/minitest_crash_detector.rb
|
|
250
300
|
- lib/evilution/integration/rspec.rb
|
|
251
301
|
- lib/evilution/integration/rspec/baseline_runner.rb
|
|
252
302
|
- lib/evilution/integration/rspec/crash_detector_lifecycle.rb
|
|
253
303
|
- lib/evilution/integration/rspec/example_filter_applier.rb
|
|
304
|
+
- lib/evilution/integration/rspec/example_ids.rb
|
|
254
305
|
- lib/evilution/integration/rspec/framework_loader.rb
|
|
255
306
|
- lib/evilution/integration/rspec/result_builder.rb
|
|
256
307
|
- lib/evilution/integration/rspec/state_guard.rb
|
|
308
|
+
- lib/evilution/integration/rspec/state_guard/anonymous_example_group_examples.rb
|
|
257
309
|
- lib/evilution/integration/rspec/state_guard/configuration_state.rb
|
|
258
310
|
- lib/evilution/integration/rspec/state_guard/configuration_streams.rb
|
|
259
311
|
- lib/evilution/integration/rspec/state_guard/example_groups_constants.rb
|
|
@@ -271,6 +323,7 @@ files:
|
|
|
271
323
|
- lib/evilution/integration/test_unit/result_builder.rb
|
|
272
324
|
- lib/evilution/integration/test_unit/subject_class_registry.rb
|
|
273
325
|
- lib/evilution/integration/test_unit/test_file_resolver.rb
|
|
326
|
+
- lib/evilution/integration/test_unit/test_ids.rb
|
|
274
327
|
- lib/evilution/integration/test_unit_crash_detector.rb
|
|
275
328
|
- lib/evilution/isolation.rb
|
|
276
329
|
- lib/evilution/isolation/fork.rb
|
|
@@ -306,15 +359,19 @@ files:
|
|
|
306
359
|
- lib/evilution/mutation.rb
|
|
307
360
|
- lib/evilution/mutator.rb
|
|
308
361
|
- lib/evilution/mutator/base.rb
|
|
362
|
+
- lib/evilution/mutator/constant_value_subjects.rb
|
|
309
363
|
- lib/evilution/mutator/operator.rb
|
|
364
|
+
- lib/evilution/mutator/operator/alias_removal.rb
|
|
310
365
|
- lib/evilution/mutator/operator/argument_list_removal.rb
|
|
311
366
|
- lib/evilution/mutator/operator/argument_method_call_replacement.rb
|
|
312
367
|
- lib/evilution/mutator/operator/argument_nil_substitution.rb
|
|
368
|
+
- lib/evilution/mutator/operator/argument_order_permutation.rb
|
|
313
369
|
- lib/evilution/mutator/operator/argument_propagation.rb
|
|
314
370
|
- lib/evilution/mutator/operator/argument_removal.rb
|
|
315
371
|
- lib/evilution/mutator/operator/arithmetic_replacement.rb
|
|
316
372
|
- lib/evilution/mutator/operator/array_coercion_to_literal.rb
|
|
317
373
|
- lib/evilution/mutator/operator/array_literal.rb
|
|
374
|
+
- lib/evilution/mutator/operator/attr_accessor_swap.rb
|
|
318
375
|
- lib/evilution/mutator/operator/attribute_write_to_read.rb
|
|
319
376
|
- lib/evilution/mutator/operator/bang_method.rb
|
|
320
377
|
- lib/evilution/mutator/operator/begin_unwrap.rb
|
|
@@ -341,39 +398,56 @@ files:
|
|
|
341
398
|
- lib/evilution/mutator/operator/coercion_emptying.rb
|
|
342
399
|
- lib/evilution/mutator/operator/collection_replacement.rb
|
|
343
400
|
- lib/evilution/mutator/operator/collection_return.rb
|
|
401
|
+
- lib/evilution/mutator/operator/comparison_operand_swap.rb
|
|
344
402
|
- lib/evilution/mutator/operator/comparison_replacement.rb
|
|
403
|
+
- lib/evilution/mutator/operator/complex_literal.rb
|
|
345
404
|
- lib/evilution/mutator/operator/compound_assignment.rb
|
|
346
405
|
- lib/evilution/mutator/operator/conditional_branch.rb
|
|
347
406
|
- lib/evilution/mutator/operator/conditional_flip.rb
|
|
348
407
|
- lib/evilution/mutator/operator/conditional_negation.rb
|
|
349
408
|
- lib/evilution/mutator/operator/const_get_to_constant_path.rb
|
|
409
|
+
- lib/evilution/mutator/operator/constant_namespace_strip.rb
|
|
410
|
+
- lib/evilution/mutator/operator/constant_read_to_nil.rb
|
|
411
|
+
- lib/evilution/mutator/operator/constant_write_to_nil.rb
|
|
412
|
+
- lib/evilution/mutator/operator/data_struct_member.rb
|
|
350
413
|
- lib/evilution/mutator/operator/defined_check.rb
|
|
351
414
|
- lib/evilution/mutator/operator/dig_to_fetch_chain.rb
|
|
352
415
|
- lib/evilution/mutator/operator/double_negation_removal.rb
|
|
353
416
|
- lib/evilution/mutator/operator/dynamic_dispatch_resolution.rb
|
|
354
417
|
- lib/evilution/mutator/operator/ensure_removal.rb
|
|
355
418
|
- lib/evilution/mutator/operator/equality_to_identity.rb
|
|
419
|
+
- lib/evilution/mutator/operator/exception_swallow.rb
|
|
356
420
|
- lib/evilution/mutator/operator/explicit_super_mutation.rb
|
|
357
421
|
- lib/evilution/mutator/operator/float_literal.rb
|
|
422
|
+
- lib/evilution/mutator/operator/format_specifier_swap.rb
|
|
423
|
+
- lib/evilution/mutator/operator/forwarded_argument_drop.rb
|
|
358
424
|
- lib/evilution/mutator/operator/forwarding_super_to_explicit.rb
|
|
425
|
+
- lib/evilution/mutator/operator/freeze_removal.rb
|
|
359
426
|
- lib/evilution/mutator/operator/global_variable_write.rb
|
|
360
427
|
- lib/evilution/mutator/operator/hash_literal.rb
|
|
361
428
|
- lib/evilution/mutator/operator/if_branch_swap.rb
|
|
362
429
|
- lib/evilution/mutator/operator/index_assignment_removal.rb
|
|
430
|
+
- lib/evilution/mutator/operator/index_range_to_drop.rb
|
|
431
|
+
- lib/evilution/mutator/operator/index_receiver_to_self.rb
|
|
363
432
|
- lib/evilution/mutator/operator/index_to_at.rb
|
|
364
433
|
- lib/evilution/mutator/operator/index_to_dig.rb
|
|
365
434
|
- lib/evilution/mutator/operator/index_to_fetch.rb
|
|
435
|
+
- lib/evilution/mutator/operator/index_to_key_predicate.rb
|
|
436
|
+
- lib/evilution/mutator/operator/index_write_to_value.rb
|
|
366
437
|
- lib/evilution/mutator/operator/inequality_to_negated_identity.rb
|
|
367
438
|
- lib/evilution/mutator/operator/inline_rescue.rb
|
|
368
439
|
- lib/evilution/mutator/operator/instance_variable_write.rb
|
|
440
|
+
- lib/evilution/mutator/operator/integer_division_to_fdiv.rb
|
|
369
441
|
- lib/evilution/mutator/operator/integer_literal.rb
|
|
370
442
|
- lib/evilution/mutator/operator/keyword_argument.rb
|
|
371
443
|
- lib/evilution/mutator/operator/keyword_argument_removal.rb
|
|
444
|
+
- lib/evilution/mutator/operator/keyword_value_swap.rb
|
|
372
445
|
- lib/evilution/mutator/operator/lambda_body.rb
|
|
373
446
|
- lib/evilution/mutator/operator/last_expression_removal.rb
|
|
374
447
|
- lib/evilution/mutator/operator/local_variable_assignment.rb
|
|
375
448
|
- lib/evilution/mutator/operator/loop_body_to_raise.rb
|
|
376
449
|
- lib/evilution/mutator/operator/loop_flip.rb
|
|
450
|
+
- lib/evilution/mutator/operator/memoization_break.rb
|
|
377
451
|
- lib/evilution/mutator/operator/method_body_replacement.rb
|
|
378
452
|
- lib/evilution/mutator/operator/method_body_to_raise.rb
|
|
379
453
|
- lib/evilution/mutator/operator/method_body_to_super.rb
|
|
@@ -383,33 +457,58 @@ files:
|
|
|
383
457
|
- lib/evilution/mutator/operator/negation_insertion.rb
|
|
384
458
|
- lib/evilution/mutator/operator/next_statement.rb
|
|
385
459
|
- lib/evilution/mutator/operator/nil_replacement.rb
|
|
460
|
+
- lib/evilution/mutator/operator/no_matching_pattern_else.rb
|
|
461
|
+
- lib/evilution/mutator/operator/numbered_parameter_swap.rb
|
|
462
|
+
- lib/evilution/mutator/operator/off_by_one_boundary.rb
|
|
463
|
+
- lib/evilution/mutator/operator/operator_write_receiver_promotion.rb
|
|
386
464
|
- lib/evilution/mutator/operator/optional_default_injection.rb
|
|
387
465
|
- lib/evilution/mutator/operator/optional_parameter_to_required.rb
|
|
388
466
|
- lib/evilution/mutator/operator/pattern_matching_alternative.rb
|
|
389
467
|
- lib/evilution/mutator/operator/pattern_matching_array.rb
|
|
390
468
|
- lib/evilution/mutator/operator/pattern_matching_guard.rb
|
|
391
469
|
- lib/evilution/mutator/operator/pattern_predicate.rb
|
|
470
|
+
- lib/evilution/mutator/operator/pattern_wildcard_widening.rb
|
|
471
|
+
- lib/evilution/mutator/operator/pin_operator_removal.rb
|
|
392
472
|
- lib/evilution/mutator/operator/predicate_replacement.rb
|
|
393
473
|
- lib/evilution/mutator/operator/predicate_to_nil.rb
|
|
394
474
|
- lib/evilution/mutator/operator/proc_to_lambda.rb
|
|
395
475
|
- lib/evilution/mutator/operator/range_replacement.rb
|
|
476
|
+
- lib/evilution/mutator/operator/rational_literal.rb
|
|
396
477
|
- lib/evilution/mutator/operator/receiver_constructor_swap.rb
|
|
397
478
|
- lib/evilution/mutator/operator/receiver_replacement.rb
|
|
398
479
|
- lib/evilution/mutator/operator/redo_statement.rb
|
|
399
480
|
- lib/evilution/mutator/operator/reduce_to_sum.rb
|
|
400
481
|
- lib/evilution/mutator/operator/regex_capture.rb
|
|
401
482
|
- lib/evilution/mutator/operator/regex_simplification.rb
|
|
483
|
+
- lib/evilution/mutator/operator/regexp_alternation_branch_deletion.rb
|
|
484
|
+
- lib/evilution/mutator/operator/regexp_anchor_promotion.rb
|
|
402
485
|
- lib/evilution/mutator/operator/regexp_anchor_to_predicate.rb
|
|
486
|
+
- lib/evilution/mutator/operator/regexp_capture_to_passive.rb
|
|
487
|
+
- lib/evilution/mutator/operator/regexp_character_type_complement.rb
|
|
403
488
|
- lib/evilution/mutator/operator/regexp_mutation.rb
|
|
489
|
+
- lib/evilution/mutator/operator/regexp_named_group_rename.rb
|
|
490
|
+
- lib/evilution/mutator/operator/regexp_option_removal.rb
|
|
491
|
+
- lib/evilution/mutator/operator/regexp_quantifier_minimum_swap.rb
|
|
404
492
|
- lib/evilution/mutator/operator/rescue_body_replacement.rb
|
|
493
|
+
- lib/evilution/mutator/operator/rescue_class_widening.rb
|
|
494
|
+
- lib/evilution/mutator/operator/rescue_else_concatenation.rb
|
|
495
|
+
- lib/evilution/mutator/operator/rescue_handler_concatenation.rb
|
|
496
|
+
- lib/evilution/mutator/operator/rescue_handler_promotion.rb
|
|
405
497
|
- lib/evilution/mutator/operator/rescue_removal.rb
|
|
406
498
|
- lib/evilution/mutator/operator/retry_removal.rb
|
|
499
|
+
- lib/evilution/mutator/operator/return_keyword_removal.rb
|
|
407
500
|
- lib/evilution/mutator/operator/return_value_removal.rb
|
|
501
|
+
- lib/evilution/mutator/operator/rightward_assignment.rb
|
|
502
|
+
- lib/evilution/mutator/operator/round_half_mode_swap.rb
|
|
503
|
+
- lib/evilution/mutator/operator/safe_navigation_insertion.rb
|
|
408
504
|
- lib/evilution/mutator/operator/safe_navigation_removal.rb
|
|
409
505
|
- lib/evilution/mutator/operator/scalar_return.rb
|
|
410
506
|
- lib/evilution/mutator/operator/send_mutation.rb
|
|
507
|
+
- lib/evilution/mutator/operator/short_circuit_to_eager.rb
|
|
508
|
+
- lib/evilution/mutator/operator/sleep_to_zero.rb
|
|
411
509
|
- lib/evilution/mutator/operator/splat_operator.rb
|
|
412
510
|
- lib/evilution/mutator/operator/statement_deletion.rb
|
|
511
|
+
- lib/evilution/mutator/operator/statement_reorder.rb
|
|
413
512
|
- lib/evilution/mutator/operator/string_interpolation.rb
|
|
414
513
|
- lib/evilution/mutator/operator/string_literal.rb
|
|
415
514
|
- lib/evilution/mutator/operator/superclass_removal.rb
|
|
@@ -417,10 +516,14 @@ files:
|
|
|
417
516
|
- lib/evilution/mutator/operator/symbol_to_proc_replacement.rb
|
|
418
517
|
- lib/evilution/mutator/operator/to_i_to_integer.rb
|
|
419
518
|
- lib/evilution/mutator/operator/typed_default_return.rb
|
|
519
|
+
- lib/evilution/mutator/operator/variable_read_to_nil.rb
|
|
520
|
+
- lib/evilution/mutator/operator/visibility_removal.rb
|
|
420
521
|
- lib/evilution/mutator/operator/yield_statement.rb
|
|
421
522
|
- lib/evilution/mutator/operator/zsuper_removal.rb
|
|
422
523
|
- lib/evilution/mutator/primitives.rb
|
|
524
|
+
- lib/evilution/mutator/receiver_positions.rb
|
|
423
525
|
- lib/evilution/mutator/registry.rb
|
|
526
|
+
- lib/evilution/mutator/rescue_handlers.rb
|
|
424
527
|
- lib/evilution/parallel.rb
|
|
425
528
|
- lib/evilution/parallel/pool.rb
|
|
426
529
|
- lib/evilution/parallel/work_queue.rb
|
|
@@ -429,6 +532,7 @@ files:
|
|
|
429
532
|
- lib/evilution/parallel/work_queue/collection_state.rb
|
|
430
533
|
- lib/evilution/parallel/work_queue/dispatcher.rb
|
|
431
534
|
- lib/evilution/parallel/work_queue/dispatcher/deadline_tracker.rb
|
|
535
|
+
- lib/evilution/parallel/work_queue/dispatcher/reply.rb
|
|
432
536
|
- lib/evilution/parallel/work_queue/validators.rb
|
|
433
537
|
- lib/evilution/parallel/work_queue/validators/optional_positive_int.rb
|
|
434
538
|
- lib/evilution/parallel/work_queue/validators/optional_positive_number.rb
|
|
@@ -453,6 +557,7 @@ files:
|
|
|
453
557
|
- lib/evilution/reporter/cli/item_formatters/subject_score.rb
|
|
454
558
|
- lib/evilution/reporter/cli/item_formatters/subject_score_group.rb
|
|
455
559
|
- lib/evilution/reporter/cli/line_formatters.rb
|
|
560
|
+
- lib/evilution/reporter/cli/line_formatters/baseline_neutralized_notice.rb
|
|
456
561
|
- lib/evilution/reporter/cli/line_formatters/duration.rb
|
|
457
562
|
- lib/evilution/reporter/cli/line_formatters/efficiency.rb
|
|
458
563
|
- lib/evilution/reporter/cli/line_formatters/error_rate_warning.rb
|
|
@@ -508,6 +613,7 @@ files:
|
|
|
508
613
|
- lib/evilution/reporter/html/templates/unparseable_details.html.erb
|
|
509
614
|
- lib/evilution/reporter/html/templates/unresolved_details.html.erb
|
|
510
615
|
- lib/evilution/reporter/json.rb
|
|
616
|
+
- lib/evilution/reporter/json/baseline.rb
|
|
511
617
|
- lib/evilution/reporter/json/subjects.rb
|
|
512
618
|
- lib/evilution/reporter/progress_bar.rb
|
|
513
619
|
- lib/evilution/reporter/suggestion.rb
|
|
@@ -519,6 +625,7 @@ files:
|
|
|
519
625
|
- lib/evilution/reporter/suggestion/templates/minitest.rb
|
|
520
626
|
- lib/evilution/reporter/suggestion/templates/rspec.rb
|
|
521
627
|
- lib/evilution/result.rb
|
|
628
|
+
- lib/evilution/result/baseline_neutralization.rb
|
|
522
629
|
- lib/evilution/result/coverage_gap.rb
|
|
523
630
|
- lib/evilution/result/coverage_gap_grouper.rb
|
|
524
631
|
- lib/evilution/result/error_info.rb
|
|
@@ -531,6 +638,7 @@ files:
|
|
|
531
638
|
- lib/evilution/runner.rb
|
|
532
639
|
- lib/evilution/runner/baseline_runner.rb
|
|
533
640
|
- lib/evilution/runner/canary.rb
|
|
641
|
+
- lib/evilution/runner/canary_failure_message.rb
|
|
534
642
|
- lib/evilution/runner/diagnostics.rb
|
|
535
643
|
- lib/evilution/runner/isolation_resolver.rb
|
|
536
644
|
- lib/evilution/runner/mutation_executor.rb
|
|
@@ -549,6 +657,7 @@ files:
|
|
|
549
657
|
- lib/evilution/runner/mutation_planner.rb
|
|
550
658
|
- lib/evilution/runner/report_publisher.rb
|
|
551
659
|
- lib/evilution/runner/subject_pipeline.rb
|
|
660
|
+
- lib/evilution/runner/subject_pipeline/target.rb
|
|
552
661
|
- lib/evilution/runner/target_spec_audit.rb
|
|
553
662
|
- lib/evilution/session.rb
|
|
554
663
|
- lib/evilution/session/diff.rb
|