pub(crate) fn emit_facts<'tcx>(
all_facts: &mut Option<AllFacts>,
tcx: TyCtxt<'tcx>,
location_table: &LocationTable,
body: &Body<'tcx>,
borrow_set: &BorrowSet<'tcx>,
move_data: &MoveData<'tcx>,
universal_region_relations: &UniversalRegionRelations<'tcx>,
constraints: &MirTypeckRegionConstraints<'tcx>,
)
Expand description
When requested, emit most of the facts needed by polonius:
- moves and assignments
- universal regions and their relations
- CFG points and edges
- loan kills
- loan invalidations
- access facts such as variable definitions, uses, drops, and path accesses
- outlives constraints
The rest of the facts are emitted during typeck and liveness.