Module impls

Source

Modulesยง

borrowed_locals ๐Ÿ”’
initialized ๐Ÿ”’
liveness ๐Ÿ”’
storage_liveness ๐Ÿ”’

Structsยง

EverInitializedPlaces
EverInitializedPlaces tracks all places that might have ever been initialized upon reaching a particular point in the control flow for a function, without an intervening StorageDead.
LivenessTransferFunction
MaybeBorrowedLocals
A dataflow analysis that tracks whether a pointer or reference could possibly exist that points to a given local. This analysis ignores fake borrows, so it should not be used by borrowck.
MaybeInitializedPlaces
MaybeInitializedPlaces tracks all places that might be initialized upon reaching a particular point in the control flow for a function.
MaybeLiveLocals
A live-variable dataflow analysis.
MaybeRequiresStorage
Dataflow analysis that determines whether each local requires storage at a given location; i.e. whether its storage can go away without being observed.
MaybeStorageDead
MaybeStorageLive
MaybeTransitiveLiveLocals
Like MaybeLiveLocals, but does not mark locals as live if they are used in a dead assignment.
MaybeUninitializedPlaces
MaybeUninitializedPlaces tracks all places that might be uninitialized upon reaching a particular point in the control flow for a function.

Functionsยง

always_storage_live_locals
The set of locals in a MIR body that do not have StorageLive/StorageDead annotations.
borrowed_locals
The set of locals that are borrowed at some point in the MIR body.

Type Aliasesยง

EverInitializedPlacesDomain
There can be many more InitIndex than there are locals in a MIR body. We use a mixed bitset to avoid paying too high a memory footprint.
MaybeUninitializedPlacesDomain
There can be many more MovePathIndex than there are locals in a MIR body. We use a mixed bitset to avoid paying too high a memory footprint.