Expand description
Interprocedural call summaries for the staged verifier.
The backward visitor needs dependency information: when a call result is relevant, which call arguments should become relevant too? The forward visitor needs effect information: after a retained call, what facts about the return value or arguments can be added or forgotten?
This module keeps those summaries in one place. Standard unsafe/std APIs are summarized by name. Local callees can additionally use the existing dataflow graph to approximate which arguments flow into the return value.
ModulesΒ§
- builtin_
models π - Builtin call models: API behaviour modelling when MIR is unavailable.
- interprocedural π
- Interprocedural call summaries derived from MIR for local wrapper functions.
StructsΒ§
- Call
Context π - Caller constraints that affect a calleeβs path feasibility, propagated down the call chain during must-write summarization. Only concrete literal arguments are carried for now; symbolic path conditions come later.
- Call
Dependency πSummary - Dependency summary consumed by the backward visitor.
- Call
Effect πSummary - Effect summary consumed by the forward visitor.
EnumsΒ§
- Call
Effect π - Path-local effect produced by a retained call.
FunctionsΒ§
- dependency_
summary π - Return dependency information for a MIR call terminator.
- effect_
summary π - Return effect information for a MIR call terminator.
- from_
raw_ πparts_ elem_ size - Element size of a
from_raw_partsresult. Covers&[T]/*[T](borrowed slice) andVec<T>(owned);Stringand unknown layouts fall back to 1 (Stringβs element isu8, so 1 is correct). - from_
raw_ πparts_ elem_ ty - Element type of a
from_raw_partsresult:&[T]/*[T]/Vec<T>yieldT; other types (includingString) returnNone. - is_
maybe_ πdangling - Whether
didis theMaybeDanglinglang item. - transparent_
deref_ πpeel - Detect a transparent-wrapper deref whose receiver is
ManuallyDrop<T>orMaybeDangling<T>, and return how many leading field-0 hops must be peeled to reach the innerT: - vec_
elem_ πty - Element type of a
Vec<T>, iftyis aVec.