Struct rustc_mir::dataflow::impls::liveness::MaybeLiveLocals [−][src]
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]
fn transfer_function<T, 'a>(&self, trans: &'a mut T) -> TransferFunction<'a, T>[src]
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.
const NAME: &'static str[src]
fn bottom_value(&self, body: &Body<'tcx>) -> Self::Domain[src]
fn initialize_start_block(&self, _: &Body<'tcx>, _: &mut Self::Domain)[src]
impl<'tcx> GenKillAnalysis<'tcx> for MaybeLiveLocals[src]
type Idx = Local
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
)
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
)
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>
)
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>
)
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
)
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
)
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.