[][src]Struct rustc_mir::dataflow::at_location::FlowAtLocation

pub struct FlowAtLocation<'tcx, BD, DR = DataflowResults<'tcx, BD>> where
    BD: BitDenotation<'tcx>,
    DR: Borrow<DataflowResults<'tcx, BD>>, 
{ base_results: DR, curr_state: BitSet<BD::Idx>, stmt_trans: GenKill<HybridBitSet<BD::Idx>>, }
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Represents the state of dataflow at a particular CFG location, both before and after it is executed.

Data flow results are typically computed only as basic block boundaries. A FlowInProgress allows you to reconstruct the effects at any point in the control-flow graph by starting with the state at the start of the basic block (reset_to_entry_of) and then replaying the effects of statements and terminators (e.g., via reconstruct_statement_effect and reconstruct_terminator_effect; don't forget to call apply_local_effect).

Fields

base_results: DR
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

curr_state: BitSet<BD::Idx>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

stmt_trans: GenKill<HybridBitSet<BD::Idx>>
⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Methods

impl<'tcx, BD, DR> FlowAtLocation<'tcx, BD, DR> where
    BD: BitDenotation<'tcx>,
    DR: Borrow<DataflowResults<'tcx, BD>>, 
[src]

pub fn each_state_bit<F>(&self, f: F) where
    F: FnMut(BD::Idx), 
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Iterate over each bit set in the current state.

pub fn each_gen_bit<F>(&self, f: F) where
    F: FnMut(BD::Idx), 
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Iterate over each gen bit in the current effect (invoke reconstruct_statement_effect or reconstruct_terminator_effect first).

pub fn new(results: DR) -> Self[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn operator(&self) -> &BD[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Access the underlying operator.

pub fn contains(&self, x: BD::Idx) -> bool[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

pub fn iter_incoming(&self) -> Peekable<BitIter<BD::Idx>>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Returns an iterator over the elements present in the current state.

pub fn with_iter_outgoing<F>(&self, f: F) where
    F: FnOnce(BitIter<BD::Idx>), 
[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Creates a clone of the current state and applies the local effects to the clone (leaving the state of self intact). Invokes f with an iterator over the resulting state.

pub fn as_dense(&self) -> &BitSet<BD::Idx>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Returns a bitset of the elements present in the current state.

impl<'tcx, T, DR> FlowAtLocation<'tcx, T, DR> where
    T: HasMoveData<'tcx> + BitDenotation<'tcx, Idx = MovePathIndex>,
    DR: Borrow<DataflowResults<'tcx, T>>, 
[src]

pub fn has_any_child_of(&self, mpi: T::Idx) -> Option<T::Idx>[src]

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

Trait Implementations

impl<'tcx, BD, DR> FlowsAtLocation for FlowAtLocation<'tcx, BD, DR> where
    BD: BitDenotation<'tcx>,
    DR: Borrow<DataflowResults<'tcx, BD>>, 
[src]

Auto Trait Implementations

impl<'tcx, BD, DR> Send for FlowAtLocation<'tcx, BD, DR> where
    DR: Send,
    <BD as BitDenotation<'tcx>>::Idx: Send

impl<'tcx, BD, DR> Unpin for FlowAtLocation<'tcx, BD, DR> where
    DR: Unpin,
    <BD as BitDenotation<'tcx>>::Idx: Unpin

impl<'tcx, BD, DR> Sync for FlowAtLocation<'tcx, BD, DR> where
    DR: Sync,
    <BD as BitDenotation<'tcx>>::Idx: Sync

impl<'tcx, BD, DR> UnwindSafe for FlowAtLocation<'tcx, BD, DR> where
    DR: UnwindSafe,
    <BD as BitDenotation<'tcx>>::Idx: RefUnwindSafe + UnwindSafe

impl<'tcx, BD, DR> RefUnwindSafe for FlowAtLocation<'tcx, BD, DR> where
    DR: RefUnwindSafe,
    <BD as BitDenotation<'tcx>>::Idx: RefUnwindSafe

Blanket Implementations

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

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

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.

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.

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

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

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

impl<E> SpecializationError for E[src]

impl<T> Erased for T[src]

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

type Error = !

⚙️ This is an internal compiler API. (rustc_private)

This crate is being loaded from the sysroot, a permanently unstable location for private compiler dependencies. It is not intended for general use. Prefer using a public version of this crate from crates.io via Cargo.toml.

impl<'a, T> Captures<'a> for T where
    T: ?Sized
[src]

impl<T> Erased for T