Detect dead code before merge.

See how dead code fits local review, which evidence Code Radar produces, where coverage ends, and how trusted findings move into CI.

radar scan . --quick

What dead code means here.

The dead code rule identifies review patterns that can create exploitable behavior or hide material maintenance risk, then returns the affected location, severity, confidence, and remediation context.

Evidence to inspect

Verify the input scope, finding detail, workflow handoff, and product boundary before you install or buy.

CriterionEvidence to inspectBoundary
Input scopeSelected files, configuration, scan mode, and enabled rules.Only included paths and configured checks are evaluated.
Finding detailFile, line, rule ID, severity, explanation, and repair direction.Illustrative output is not a result from your repository.
Workflow handoffLocal result, report format, agent context, and optional CI signal.Enable exports or CI only when the workflow needs them.
Decision fitUse the same criteria on a real repository before choosing a plan or tool.No universal winner or guaranteed outcome is claimed.

Check this risk locally

Verify the input scope, finding detail, workflow handoff, and product boundary before you install or buy.

The problem this page helps clarify

The useful question is where dead code changes the review loop: what enters the scan, who acts on a finding, and which evidence moves forward. Detect unreachable or unused paths that hide stale behavior and review risk.

  • Audience: Developers and reviewers deciding how to handle dead code findings before merge.
  • Focus: Detect unreachable or unused paths that hide stale behavior and review risk.
  • Review question: What does dead code cover in practice?

Coverage and concrete signals

For dead code, inspect the concrete scope below instead of relying on a category label. Confirm the path is unreachable or unused across entry points, tests, and configuration, then remove it in a focused change.

  • Focus: Detect unreachable or unused paths that hide stale behavior and review risk.
  • Workflow: Rule ID: RADAR-HEALTH-DEAD
  • Coverage and concrete signals: RADAR-HEALTH-DEAD, unsafe pattern, safer pattern, Code health
FocusExact file location, rule context, severity, confidence, and remediation guidance.Boundary
Detect unreachable or unused paths that hide stale behavior and review risk.Confirm the path is unreachable or unused across entry points, tests, and configuration, then remove it in a focused change.Reflection, plugin loading, and feature flags can hide live references; check runtime registration and deployment configuration before deleting or suppressing.

Risky pattern / Safer pattern

dead code: A useful result must be explainable to a developer and portable to the next review surface. Inspect the concrete evidence below before changing team policy.

Risky patternSafer pattern
if (false) { runLegacyPath(); }removeUnusedLegacyPath();

From local signal to shared gate.

dead code: Use the smallest workflow that proves value. Each later step should reuse evidence the team already understands. Detect unreachable or unused paths that hide stale behavior and review risk.

StepCommand or actionDecision
1Run a quick local scanIs the signal useful?
2Inspect and repair findingsIs the fix specific and reproducible?
3Export portable evidenceDoes the reviewer need SARIF, JSON, or HTML?
4Promote the trusted threshold to CIWhich severity should block a pull request?
radar scan . --quick
radar scan . --format sarif --fail-on high

Evidence to inspect before you trust the result.

dead code: A useful result must be explainable to a developer and portable to the next review surface. Inspect the concrete evidence below before changing team policy. Confirm the path is unreachable or unused across entry points, tests, and configuration, then remove it in a focused change.

  • Rule ID: RADAR-HEALTH-DEAD
  • Exact file location, rule context, severity, confidence, and remediation guidance.
  • Terminal output, SARIF, JSON, or HTML artifacts generated from the same finding set.
  • Source stays in the workspace or CI runner where the scan executes.

Good fit and limits

Use dead code when Developers and reviewers deciding how to handle dead code findings before merge. Keep the boundary explicit: Reflection, plugin loading, and feature flags can hide live references; check runtime registration and deployment configuration before deleting or suppressing.

Run the local proof before adopting a shared gate.

  • Good fit: Developers and reviewers deciding how to handle dead code findings before merge.
  • Not a fit / do not overreach: Reflection, plugin loading, and feature flags can hide live references; check runtime registration and deployment configuration before deleting or suppressing.

Questions to verify before rollout

These questions keep the decision tied to observable evidence rather than a broad product promise.

What does dead code cover in practice?

dead code: The practical scope is Detect unreachable or unused paths that hide stale behavior and review risk.. Start with the listed entities or files and confirm the result on representative code.

Which evidence should I inspect for dead code?

dead code: Inspect Confirm the path is unreachable or unused across entry points, tests, and configuration, then remove it in a focused change. Keep the source location, rule or comparison context, and exported artifact together.

What should I not infer from dead code?

dead code: Do not infer universal coverage. Reflection, plugin loading, and feature flags can hide live references; check runtime registration and deployment configuration before deleting or suppressing. Use the relevant comparison or workflow page to test the boundary before changing policy.

What should I try first for dead code?

dead code: Start with a local run, review one real finding, then choose the linked report, agent, CI, or trust workflow that matches the next decision.

Validate the workflow on your own code.

Start with one local scan, inspect the evidence, and expand to reports, agents, or CI only when the signal is useful.