pub trait Direction {
const IS_FORWARD: bool;
const IS_BACKWARD: bool = _;
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
source
const IS_FORWARD: bool
Provided Associated Constants
source
const IS_BACKWARD: bool = _
Required Methods
sourcefn 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_range<'tcx, A>(
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.
sourcefn apply_effects_in_block<'tcx, A>(
fn apply_effects_in_block<'tcx, A>(
analysis: &A,
state: &mut A::Domain,
block: BasicBlock,
block_data: &BasicBlockData<'tcx>
)where
A: Analysis<'tcx>,
sourcefn gen_kill_effects_in_block<'tcx, A>(
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>,
sourcefn visit_results_in_block<'mir, 'tcx, F, R>(
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>,
sourcefn join_state_into_successors_of<'tcx, A>(