Expand description

Dataflow analyses are built upon some interpretation of the bitvectors attached to each basic block, represented via a zero-sized structure.

Modules

Structs

  • DefinitelyInitializedPlaces tracks all places that are definitely initialized upon reaching a particular point in the control flow for a function.
  • 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.
  • A dataflow analysis that tracks whether a pointer or reference could possibly exist that points to a given local.
  • MaybeInitializedPlaces tracks all places that might be initialized upon reaching a particular point in the control flow for a function.
  • Dataflow analysis that determines whether each local requires storage at a given location; i.e. whether its storage can go away without being observed.
  • Like MaybeLiveLocals, but does not mark locals as live if they are used in a dead assignment.
  • MaybeUninitializedPlaces tracks all places that might be uninitialized upon reaching a particular point in the control flow for a function.

Statics

Functions

  • The set of locals that are borrowed at some point in the MIR body.
  • Calls f for each mutable borrow or raw reference in the program.
  • Inspect a SwitchInt-terminated basic block to see if the condition of that SwitchInt is an enum discriminant.