MetaCredo. Analysis. Purity
(MetaCredo v0.3.4)
View Source
Programmatic purity / side-effect analysis API.
Determines whether code is pure (no side effects) or impure (I/O, mutations, random operations, etc.) by operating on the unified MetaAST representation.
Usage
alias Metastatic.Document
alias MetaCredo.Analysis.Purity
doc = Document.new(ast, :elixir)
{:ok, result} = Purity.analyze(doc)
result.pure? # => true
result.effects # => []
result.confidence # => :high
Summary
Functions
@spec analyze(Metastatic.Document.t()) :: {:ok, term()} | {:error, term()}
Analyzes a document for purity.
Returns {:ok, result} where result is a MetaCredo.Analysis.Purity.Result struct.
@spec analyze!(Metastatic.Document.t()) :: term()
Analyzes a document for purity.
Returns {:ok, result} where result is a MetaCredo.Analysis.Purity.Result struct.
Unlike not-banged version, this one either returns a result or raises