Conversation
Co-Authored-By: OpenAI Codex <codex@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds stable dotted names to the mutation registry and a
disable_mutation_typesconfiguration option. Exact names disable one mutation, while prefixes disable a group; for example,string.lowerremoves only lowercase literal mutations andstringremoves every string mutation.The filtering happens before an operator runs. Configuration changes also invalidate cached mutant verdicts because removing a mutation can shift the numeric IDs of later mutants in the same function.
This PR intentionally focuses on disabling types, which solves the reported equivalent-mutant problem without defining potentially surprising precedence between simultaneous allow and deny lists. An enable/override policy can be added separately once those semantics are agreed.
Documentation lists the available names and shows how to disable the two case-flip mutations. Unit coverage exercises exact, grouped, unrelated, invalid, and cache-change behavior; the existing config E2E project verifies that both case flips disappear while the useful string-wrap mutant remains.
Verified with
uv run pytest(403 passed, 2 skipped) anduv run pre-commit run --all-files(all hooks passed).AI assistance disclosure: I used OpenAI Codex while implementing and reviewing this change. The commit includes the corresponding co-author attribution.
Closes #577