# Struct rustc_mir_dataflow::framework::direction::Forward

source ·

    pub struct Forward;

Expand description

Dataflow that runs from the entry of a block (the first statement), to its exit (terminator).

## Trait Implementations§

source§

### impl Direction for Forward

source§

#### const IS_FORWARD: bool = true

source§

#### fn apply_effects_in_block<'mir, 'tcx, A>( analysis: &mut A, state: &mut A::Domain, block: BasicBlock, block_data: &'mir BasicBlockData<'tcx>, statement_effect: Option<&dyn Fn(BasicBlock, &mut A::Domain)> ) -> TerminatorEdges<'mir, 'tcx>
where A: Analysis<'tcx>,

source§

#### fn gen_kill_statement_effects_in_block<'tcx, A>( analysis: &mut A, trans: &mut GenKillSet<A::Idx>, block: BasicBlock, block_data: &BasicBlockData<'tcx> )
where A: GenKillAnalysis<'tcx>,

source§

#### fn apply_effects_in_range<'tcx, A>( analysis: &mut A, state: &mut A::Domain, block: BasicBlock, block_data: &BasicBlockData<'tcx>, effects: RangeInclusive<EffectIndex> )
where A: Analysis<'tcx>,

Applies all effects between the given `EffectIndex`s. Read more
source§

#### fn visit_results_in_block<'mir, 'tcx, F, R>( state: &mut F, block: BasicBlock, block_data: &'mir BasicBlockData<'tcx>, results: &mut R, vis: &mut impl ResultsVisitor<'mir, 'tcx, R, FlowState = F> )
where R: ResultsVisitable<'tcx, FlowState = F>,

source§

#### fn join_state_into_successors_of<'tcx, A>( analysis: &mut A, _body: &Body<'tcx>, exit_state: &mut A::Domain, bb: BasicBlock, edges: TerminatorEdges<'_, 'tcx>, propagate: impl FnMut(BasicBlock, &A::Domain) )
where A: Analysis<'tcx>,

source§

#### const IS_BACKWARD: bool = _

## Auto Trait Implementations§

§

### impl RefUnwindSafe for Forward

§

### impl Send for Forward

§

### impl Sync for Forward

§

### impl Unpin for Forward

§

### impl UnwindSafe for Forward

## Blanket Implementations§

source§

### impl<T> Any for T
where T: 'static + ?Sized,

source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
source§

### impl<T> Borrow<T> for T
where T: ?Sized,

source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

### impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

### impl<T> From<T> for T

source§

#### fn from(t: T) -> T

Returns the argument unchanged.

source§

### impl<T, U> Into<U> for T
where U: From<T>,

source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

#### type Error = Infallible

The type returned in the event of a conversion error.
source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

### impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

## Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain `repr(...)` attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 0 bytes