fn scan_block<'tcx>(
body: &mut Body<'tcx>,
block: BasicBlock,
used_after: &mut DenseBitSet<Local>,
borrowed: &DenseBitSet<Local>,
) -> ControlFlow<()>Expand description
Scan a block backward while the return-tail invariant still holds.
The invariant is that a whole-local Copy can be changed to a Move only
if this path has no later access to that local’s allocation before
returning, and no later operation whose observable behavior could depend on
ending an address-observed local’s allocation early. used_after tracks
those later local-allocation accesses.