pub trait Direction {
    const IS_FORWARD: bool;
    const IS_BACKWARD: bool = !Self::IS_FORWARD;

    fn apply_effects_in_range<'tcx, A>(
        analysis: &A,
        state: &mut A::Domain,
        block: BasicBlock,
        block_data: &BasicBlockData<'tcx>,
        effects: RangeInclusive<EffectIndex>
    )
    where
        A: Analysis<'tcx>
; fn apply_effects_in_block<'tcx, A>(
        analysis: &A,
        state: &mut A::Domain,
        block: BasicBlock,
        block_data: &BasicBlockData<'tcx>
    )
    where
        A: Analysis<'tcx>
; fn gen_kill_effects_in_block<'tcx, A>(
        analysis: &A,
        trans: &mut GenKillSet<A::Idx>,
        block: BasicBlock,
        block_data: &BasicBlockData<'tcx>
    )
    where
        A: GenKillAnalysis<'tcx>
; fn visit_results_in_block<'mir, 'tcx, F, R>(
        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<'tcx, A>(
        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>
; }

Required Associated Constants

Provided Associated Constants

Required Methods

Applies all effects between the given EffectIndexs.

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

Implementors