Skip to content

Dead-code status ignores framework-driven entry points #2128

Description

@avigdorsky

Severity: high — the feature is unusable as shipped.

359 nodes get status: "dead"; 247 (69%) are reachable only dynamically:

  • ASGI/WSGI middleware __call__ for classes listed in a settings module
  • __init__ of classes instantiated via a registry or DI
  • alembic upgrade/downgrade, Django management-command handle
  • pytest fixtures, @receiver / @shared_task decorated functions

Ask: a configurable liveness list (dunder methods, decorator patterns,
declarative registrations) — and, more fundamentally, do not derive dead from a
call graph whose own measured precision is 52%. Reporting unknown when the graph
is unresolved would be honest and far more useful than a false negative.


Observed on v0.10.8 (build 996bad5fe6fb), macOS arm64, Python monorepo (~36k nodes / ~179k edges). Happy to provide a minimal reproduction repo if useful.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingparsing/qualityGraph extraction bugs, false positives, missing edgespriority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.ux/behaviorDisplay bugs, docs, adoption UX

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions