Skip to content

fix(performance): correct P401/P403 receiver and control flow analysis - #1015

Merged
duriantaco merged 19 commits into
mainfrom
fix/quality-rule-evidence
Oct 17, 2026
Merged

duriantaco merged 19 commits into
mainfrom
fix/quality-rule-evidence

Conversation

@duriantaco

Copy link
Copy Markdown
Owner

Summary

  • Fix P401 distinction between file reads and in-memory buffers.
  • Fix P403 distinction between repeated searches and necessary pair processing.
  • Track aliases, reassignment and mutation so real findings remain detectable.
  • Fix crashes found in Rich and Scrapy.

Keep the sole unreachable yield that establishes generator identity. Continue reporting redundant markers and unreachable statements.

Validated against the replayed manual generator scenarios and existing quality tests.
Use bounded literal evaluation and resolved exception-probe context. Retain discarded comparison warnings without assuming overloaded operands are pure.

Update the existing comparison fixture after manual scenario verification.
Retain actual inheritance, call and type-reference edges in Python and Rust. Sharing an abstract base or protocol does not create a sibling dependency.

Validated with coupling parity scenarios and the matching repository replay.
Model fixed bounds, shared iterator consumption, terminal exits and partition traversal. Invalidate those proofs for overlapping aliases and replenishing mutations.

Update existing fixtures after manual performance-contract verification.
Resolve provider, plugin, fixture and configuration usage. Abstain when incomplete evidence cannot establish absence, and record a single analysis coverage receipt. Preserve independent vulnerability inventory and scanning.

Existing dependency fixtures and direct/CLI manual controls pass.
Distinguish interfaces and optional empty hooks from demonstrated unfinished behavior. Preserve return-contract violations, ineffective Security dependencies and fail-open coroutine paths.

Update existing fixtures after replaying safe, unsafe and wrapper scenarios.
Recognize annotated and destructured bindings and evaluated definition headers without importing targets. Respect create=True and require sufficient namespace evidence for missing attributes.

Validated with manual binding scenarios and existing rule tests.
Replace exported-key guesses with credential names, secret content or resolved credential use. Follow local and project import flow through aliases, branches, fields and known constructors; benign uses cannot cancel a credential path. Preserve literal-password and anonymous-FTP review behavior.

Existing credential fixtures, independent CLI scenarios, project/constructor flows and output/gate checks pass.
Document the evidence requirements for corrected quality rules and unused-dependency abstentions. Advice and review output do not certify a defect or universal coverage.
@duriantaco
duriantaco merged commit 7b5c5a3 into main Oct 17, 2026
16 checks passed
@duriantaco
duriantaco deleted the fix/quality-rule-evidence branch October 17, 2026 12:19
This was referenced Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant