Struct rustc_mir::transform::generator::LivenessInfo[−][src]

struct LivenessInfo {
    saved_locals: GeneratorSavedLocals,
    live_locals_at_suspension_points: Vec<BitSet<GeneratorSavedLocal>>,
    source_info_at_suspension_points: Vec<SourceInfo>,
    storage_conflicts: BitMatrix<GeneratorSavedLocal, GeneratorSavedLocal>,
    storage_liveness: IndexVec<BasicBlock, Option<BitSet<Local>>>,
}

Fields

saved_locals: GeneratorSavedLocals
Expand description

Which locals are live across any suspension point.

live_locals_at_suspension_points: Vec<BitSet<GeneratorSavedLocal>>
Expand description

The set of saved locals live at each suspension point.

source_info_at_suspension_points: Vec<SourceInfo>
Expand description

Parallel vec to the above with SourceInfo for each yield terminator.

storage_conflicts: BitMatrix<GeneratorSavedLocal, GeneratorSavedLocal>
Expand description

For every saved local, the set of other saved locals that are storage-live at the same time as this local. We cannot overlap locals in the layout which have conflicting storage.

storage_liveness: IndexVec<BasicBlock, Option<BitSet<Local>>>
Expand description

For every suspending block, the locals which are storage-live across that suspension point.

Auto Trait Implementations

impl RefUnwindSafe for LivenessInfo

impl !Send for LivenessInfo

impl !Sync for LivenessInfo

impl Unpin for LivenessInfo

impl UnwindSafe for LivenessInfo

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<T> WithConstness for T[src]

fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]

fn with_const(self) -> ConstnessAnd<Self>[src]

fn without_const(self) -> ConstnessAnd<Self>[src]