[−][src]Struct rustc_mir::borrow_check::nll::type_check::liveness::trace::LivenessResults
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Fields
cx: LivenessContext<'me, 'typeck, 'flow, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
defs: BitArray<PointIndex>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Set of points that define the current local.
use_live_at: BitArray<PointIndex>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Points where the current variable is "use live" -- meaning that there is a future "full use" that may use its value.
drop_live_at: BitArray<PointIndex>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Points where the current variable is "drop live" -- meaning that there is no future "full use" that may use its value, but there is a future drop.
drop_locations: Vec<Location>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Locations where drops may occur.
stack: Vec<PointIndex>
🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Stack used when doing (reverse) DFS.
Methods
impl<'me, 'typeck, 'flow, 'gcx, 'tcx> LivenessResults<'me, 'typeck, 'flow, 'gcx, 'tcx>[src]
impl<'me, 'typeck, 'flow, 'gcx, 'tcx> LivenessResults<'me, 'typeck, 'flow, 'gcx, 'tcx>fn new(cx: LivenessContext<'me, 'typeck, 'flow, 'gcx, 'tcx>) -> Self[src]
fn new(cx: LivenessContext<'me, 'typeck, 'flow, 'gcx, 'tcx>) -> Self🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn compute_for_all_locals(&mut self)[src]
fn compute_for_all_locals(&mut self)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn reset_local_state(&mut self)[src]
fn reset_local_state(&mut self)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Clear the value of fields that are "per local variable".
fn add_defs_for(&mut self, live_local: LiveVar)[src]
fn add_defs_for(&mut self, live_local: LiveVar)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Adds the definitions of local into self.defs.
fn compute_use_live_points_for(&mut self, live_local: LiveVar)[src]
fn compute_use_live_points_for(&mut self, live_local: LiveVar)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Compute all points where local is "use live" -- meaning its
current value may be used later (except by a drop). This is
done by walking backwards from each use of live_local until we
find a def of local.
Requires add_defs_for(live_local) to have been executed.
fn compute_drop_live_points_for(&mut self, live_local: LiveVar)[src]
fn compute_drop_live_points_for(&mut self, live_local: LiveVar)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Compute all points where local is "drop live" -- meaning its
current value may be dropped later (but not used). This is
done by iterating over the drops of local where local (or
some subpart of local) is initialized. For each such drop,
we walk backwards until we find a point where local is
either defined or use-live.
Requires compute_use_live_points_for and add_defs_for to
have been executed.
fn compute_drop_live_points_for_block(
&mut self,
mpi: MovePathIndex,
term_point: PointIndex
)[src]
fn compute_drop_live_points_for_block(
&mut self,
mpi: MovePathIndex,
term_point: PointIndex
)🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Executes one iteration of the drop-live analysis loop.
The parameter mpi is the MovePathIndex of the local variable
we are currently analyzing.
The point term_point represents some terminator in the MIR,
where the local mpi is drop-live on entry to that terminator.
This method adds all drop-live points within the block and --
where applicable -- pushes the terminators of preceding blocks
onto self.stack.
Auto Trait Implementations
impl<'me, 'typeck, 'flow, 'gcx, 'tcx> !Send for LivenessResults<'me, 'typeck, 'flow, 'gcx, 'tcx>
impl<'me, 'typeck, 'flow, 'gcx, 'tcx> !Send for LivenessResults<'me, 'typeck, 'flow, 'gcx, 'tcx>impl<'me, 'typeck, 'flow, 'gcx, 'tcx> !Sync for LivenessResults<'me, 'typeck, 'flow, 'gcx, 'tcx>
impl<'me, 'typeck, 'flow, 'gcx, 'tcx> !Sync for LivenessResults<'me, 'typeck, 'flow, 'gcx, 'tcx>Blanket Implementations
impl<T> From for T[src]
impl<T> From for Timpl<T, U> Into for T where
U: From<T>, [src]
impl<T, U> Into for T where
U: From<T>, impl<T, U> TryFrom for T where
T: From<U>, [src]
impl<T, U> TryFrom for T where
T: From<U>, type Error = !
try_from)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>try_from)Performs the conversion.
impl<T> Borrow for T where
T: ?Sized, [src]
impl<T> Borrow for T where
T: ?Sized, ⓘImportant traits for &'a mut Rfn borrow(&self) -> &T[src]
fn borrow(&self) -> &TImmutably borrows from an owned value. Read more
impl<T, U> TryInto for T where
U: TryFrom<T>, [src]
impl<T, U> TryInto for T where
U: TryFrom<T>, type Error = <U as TryFrom<T>>::Error
try_from)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>try_from)Performs the conversion.
impl<T> BorrowMut for T where
T: ?Sized, [src]
impl<T> BorrowMut for T where
T: ?Sized, ⓘImportant traits for &'a mut Rfn borrow_mut(&mut self) -> &mut T[src]
fn borrow_mut(&mut self) -> &mut TMutably borrows from an owned value. Read more
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Any for T where
T: 'static + ?Sized, fn get_type_id(&self) -> TypeId[src]
fn get_type_id(&self) -> TypeId🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static
Gets the TypeId of self. Read more
impl<E> SpecializationError for E[src]
impl<E> SpecializationError for Efn not_found<S, T>(trait_name: &'static str, method_name: &'static str) -> E where
T: ?Sized, [src]
fn not_found<S, T>(trait_name: &'static str, method_name: &'static str) -> E where
T: ?Sized, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Create an error for a missing method specialization. Defaults to panicking with type, trait & method names. S is the encoder/decoder state type, T is the type being encoded/decoded, and the arguments are the names of the trait and method that should've been overridden. Read more
impl<T> Erased for T[src]
impl<T> Erased for Timpl<T> Send for T where
T: ?Sized, [src]
impl<T> Send for T where
T: ?Sized, impl<T> Sync for T where
T: ?Sized, [src]
impl<T> Sync for T where
T: ?Sized, impl<T> Erased for T
impl<T> Erased for Timpl<T> MaybeResult for T[src]
impl<T> MaybeResult for Tfn from_ok(x: T) -> T[src]
fn from_ok(x: T) -> T🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
fn map_same<F>(self, f: F) -> T where
F: FnOnce(T) -> T, [src]
fn map_same<F>(self, f: F) -> T where
F: FnOnce(T) -> T, 🔬 This is a nightly-only experimental API. (rustc_private)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
impl<'a, T> Captures for T where
T: ?Sized, [src]
impl<'a, T> Captures for T where
T: ?Sized,