[−][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 T
impl<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) -> &T
Immutably 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 T
Mutably 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 E
fn 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 T
impl<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 T
impl<T> MaybeResult for T
[src]
impl<T> MaybeResult for T
fn 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,