Trait rustc_mir_dataflow::framework::direction::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
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_range<A, 'tcx>(
analysis: &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.
effects.start()
must precede or equal effects.end()
in this direction.