rapx/analysis/points_to/mod.rs
1//! Unified points-to and value-flow graph.
2//!
3//! The [`graph::PtsGraph`] provides a path-sensitive points-to representation
4//! used by both the MoP alias analysis, SafeDrop, and the verify/SMT pipeline.
5//! It records pointer-to-source relationships together with value-copy tracking
6//! and union-find alias partitions.
7//!
8//! # Slot registration
9//! [`builder::from_body`] pre-registers all MIR locals and their type-determined
10//! field slots up to configurable depth limits.
11//!
12//! # PlaceKey adapters
13//! `PtsGraph` exposes PlaceKey-oriented methods (`insert_place_edge`,
14//! `get_place_source`, `resolve_place`, `place_edges`) for consumers in the
15//! verify pipeline that work with [`crate::verify::def_use::PlaceKey`] rather
16//! than [`slot::Slot`].
17//!
18//! # Edge sources
19//! * `Rvalue::Ref` — `&_x` / `&mut _x` → `_x`
20//! * `Rvalue::RawPtr` — `&raw const/mut _x` → `_x`
21//! * `ptr::add/sub/offset` / `as_ptr` / `into_raw` / `cast` / `from_raw_parts`
22//! / NonNull constructors / ownership reconstruction — return → arg 0
23
24pub mod builder;
25pub mod graph;
26pub mod slot;