Expand description
Backward path visitor β walks a finite path backward from a checkpoint and keeps only MIR items that can affect the required property.
The def-use layer lives in super::super::def_use; this module focuses on
the path-level control flow decisions: calls, SCC exits, and path-condition
branches.
StructsΒ§
- Backward
Slicer π - Entry point for backward path visiting.
FunctionsΒ§
- collect_
flow_ πuses - Collect the source locals of the dataflow edges entering
(block, statement_index)from the def locals ofdefs. - collect_
statement_ πuses - Collect all place-uses for a statement from dataflow edges and operands.
- needs_
invalidation_ πtracking - Whether a propertyβs checker reads allocation liveness (
alloc.facts.dead), so the backward slice must keepStorageDead/StorageLive/Dropunconditionally (the allocation owner may not be reachable from the pointer target, e.g. a raw pointer into a separately-owned Vec/Box buffer). - statement_
can_ πrefine - terminator_
is_ πpath_ condition