[−][src]Struct rustc_mir::dataflow::impls::liveness::MaybeLiveLocals
A live-variable dataflow analysis.
This analysis considers references as being used only at the point of the
borrow. In other words, this analysis does not track uses because of references that already
exist. See this mir-dataflow test for an example. You almost never want to use
this analysis without also looking at the results of MaybeBorrowedLocals.
Implementations
impl MaybeLiveLocals[src]
pub(in dataflow::impls::liveness) fn transfer_function<T, 'a>(
&self,
trans: &'a mut T
) -> TransferFunction<'a, T>[src]
&self,
trans: &'a mut T
) -> TransferFunction<'a, T>
Trait Implementations
impl<'tcx> AnalysisDomain<'tcx> for MaybeLiveLocals[src]
type Domain = BitSet<Local>
The type that holds the dataflow state at any given point in the program.
type Direction = Backward
The direction of this analysis. Either Forward or Backward.
pub const NAME: &'static str[src]
pub fn bottom_value(&self, body: &Body<'tcx>) -> Self::Domain[src]
pub fn initialize_start_block(&self, _: &Body<'tcx>, _: &mut Self::Domain)[src]
impl<'tcx> GenKillAnalysis<'tcx> for MaybeLiveLocals[src]
type Idx = Local
pub fn statement_effect(
&self,
trans: &mut impl GenKill<Self::Idx>,
statement: &Statement<'tcx>,
location: Location
)[src]
&self,
trans: &mut impl GenKill<Self::Idx>,
statement: &Statement<'tcx>,
location: Location
)
pub fn terminator_effect(
&self,
trans: &mut impl GenKill<Self::Idx>,
terminator: &Terminator<'tcx>,
location: Location
)[src]
&self,
trans: &mut impl GenKill<Self::Idx>,
terminator: &Terminator<'tcx>,
location: Location
)
pub fn call_return_effect(
&self,
trans: &mut impl GenKill<Self::Idx>,
_block: BasicBlock,
_func: &Operand<'tcx>,
_args: &[Operand<'tcx>],
dest_place: Place<'tcx>
)[src]
&self,
trans: &mut impl GenKill<Self::Idx>,
_block: BasicBlock,
_func: &Operand<'tcx>,
_args: &[Operand<'tcx>],
dest_place: Place<'tcx>
)
pub fn yield_resume_effect(
&self,
trans: &mut impl GenKill<Self::Idx>,
_resume_block: BasicBlock,
resume_place: Place<'tcx>
)[src]
&self,
trans: &mut impl GenKill<Self::Idx>,
_resume_block: BasicBlock,
resume_place: Place<'tcx>
)
pub fn before_statement_effect(
&self,
_trans: &mut impl GenKill<Self::Idx>,
_statement: &Statement<'tcx>,
_location: Location
)[src]
&self,
_trans: &mut impl GenKill<Self::Idx>,
_statement: &Statement<'tcx>,
_location: Location
)
pub fn before_terminator_effect(
&self,
_trans: &mut impl GenKill<Self::Idx>,
_terminator: &Terminator<'tcx>,
_location: Location
)[src]
&self,
_trans: &mut impl GenKill<Self::Idx>,
_terminator: &Terminator<'tcx>,
_location: Location
)
pub fn switch_int_edge_effects<G: GenKill<Self::Idx>>(
&self,
_block: BasicBlock,
_discr: &Operand<'tcx>,
_edge_effects: &mut impl SwitchIntEdgeEffects<G>
)[src]
&self,
_block: BasicBlock,
_discr: &Operand<'tcx>,
_edge_effects: &mut impl SwitchIntEdgeEffects<G>
)
impl<'tcx> RustcPeekAt<'tcx> for MaybeLiveLocals[src]
Auto Trait Implementations
impl RefUnwindSafe for MaybeLiveLocals
impl Send for MaybeLiveLocals
impl Sync for MaybeLiveLocals
impl Unpin for MaybeLiveLocals
impl UnwindSafe for MaybeLiveLocals
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.