MetaCredo. Analysis. DeadCode
(MetaCredo v0.4.0)
View Source
Programmatic intraprocedural dead code detection API.
Identifies unreachable code, unused functions, and other patterns that result in dead code. Works across all supported languages by operating on the unified MetaAST representation.
Dead Code Types
- Unreachable after return -- Code following early_return nodes
- Constant conditionals -- Branches that can never execute
- Unused functions -- Function definitions never called (module context)
Usage
alias Metastatic.Document
alias MetaCredo.Analysis.DeadCode
doc = Document.new(ast, :python)
{:ok, result} = DeadCode.analyze(doc)
result.has_dead_code? # => true
result.total_dead_statements # => 1
result.dead_locations # => [%{type: :unreachable_after_return, ...}]
Summary
Functions
@spec analyze(Metastatic.Document.t()) :: {:ok, term()} | {:error, term()}
Analyzes a document for dead code.
Returns {:ok, result} where result is a MetaCredo.Analysis.DeadCode.Result struct.
Options
:detect_unused_functions- Enable unused function detection (default: false):min_confidence- Minimum confidence level to report (default: :low)
@spec analyze!(Metastatic.Document.t()) :: term()
Analyzes a document for dead code.
Returns {:ok, result} where result is a MetaCredo.Analysis.DeadCode.Result struct.
Options
:detect_unused_functions- Enable unused function detection (default: false):min_confidence- Minimum confidence level to report (default: :low)
Unlike not-banged version, this one either returns a result or raises