Trait rustc_mir_dataflow::Direction[][src]

pub trait Direction {
    fn is_forward() -> bool;
fn apply_effects_in_range<A, 'tcx>(
        analysis: &A,
        state: &mut A::Domain,
        block: BasicBlock,
        block_data: &BasicBlockData<'tcx>,
        effects: RangeInclusive<EffectIndex>
    )
    where
        A: Analysis<'tcx>
;
fn apply_effects_in_block<A, 'tcx>(
        analysis: &A,
        state: &mut A::Domain,
        block: BasicBlock,
        block_data: &BasicBlockData<'tcx>
    )
    where
        A: Analysis<'tcx>
;
fn gen_kill_effects_in_block<A, 'tcx>(
        analysis: &A,
        trans: &mut GenKillSet<A::Idx>,
        block: BasicBlock,
        block_data: &BasicBlockData<'tcx>
    )
    where
        A: GenKillAnalysis<'tcx>
;
fn visit_results_in_block<F, R, 'tcx, 'mir>(
        state: &mut F,
        block: BasicBlock,
        block_data: &'mir BasicBlockData<'tcx>,
        results: &R,
        vis: &mut impl ResultsVisitor<'mir, 'tcx, FlowState = F>
    )
    where
        R: ResultsVisitable<'tcx, FlowState = F>
;
fn join_state_into_successors_of<A, 'tcx>(
        analysis: &A,
        tcx: TyCtxt<'tcx>,
        body: &Body<'tcx>,
        dead_unwinds: Option<&BitSet<BasicBlock>>,
        exit_state: &mut A::Domain,
        block: (BasicBlock, &BasicBlockData<'tcx>),
        propagate: impl FnMut(BasicBlock, &A::Domain)
    )
    where
        A: Analysis<'tcx>
; fn is_backward() -> bool { ... } }

Required methods

Applies all effects between the given EffectIndexs.

effects.start() must precede or equal effects.end() in this direction.

Provided methods

Implementors