Struct rustc_mir::borrow_check::nll::type_check::liveness::TypeLivenessGenerator [−][src]
struct TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx> where
'typeck: 'gen,
'flow: 'gen,
'tcx: 'typeck + 'flow,
'gcx: 'tcx, { cx: &'gen mut TypeChecker<'typeck, 'gcx, 'tcx>, mir: &'gen Mir<'tcx>, liveness: &'gen LivenessResults, flow_inits: &'gen mut FlowAtLocation<MaybeInitializedPlaces<'flow, 'gcx, 'tcx>>, move_data: &'gen MoveData<'tcx>, drop_data: FxHashMap<Ty<'tcx>, DropData<'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?
Fields
cx: &'gen mut TypeChecker<'typeck, '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?
mir: &'gen Mir<'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?
liveness: &'gen 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?
flow_inits: &'gen mut FlowAtLocation<MaybeInitializedPlaces<'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?
move_data: &'gen MoveData<'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?
drop_data: FxHashMap<Ty<'tcx>, DropData<'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?
Methods
impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx>[src]
impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx>fn add_liveness_constraints(&mut self, bb: BasicBlock)[src]
fn add_liveness_constraints(&mut self, bb: BasicBlock)🔬 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?
Liveness constraints:
If a variable V is live at point P, then all regions R in the type of V must include the point P.
fn push_type_live_constraint<T>(
cx: &mut TypeChecker<'_, 'gcx, 'tcx>,
value: T,
location: Location,
cause: Cause
) where
T: TypeFoldable<'tcx>, [src]
fn push_type_live_constraint<T>(
cx: &mut TypeChecker<'_, 'gcx, 'tcx>,
value: T,
location: Location,
cause: Cause
) where
T: TypeFoldable<'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?
Some variable with type live_ty is "regular live" at
location -- i.e., it may be used later. This means that all
regions appearing in the type live_ty must be live at
location.
fn add_drop_live_constraint(
&mut self,
dropped_local: Local,
dropped_ty: Ty<'tcx>,
location: Location
)[src]
fn add_drop_live_constraint(
&mut self,
dropped_local: Local,
dropped_ty: Ty<'tcx>,
location: 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?
Some variable with type live_ty is "drop live" at location
-- i.e., it may be dropped later. This means that some of
the regions in its type must be live at location. The
precise set will depend on the dropck constraints, and in
particular this takes #[may_dangle] into account.
fn compute_drop_data(
cx: &mut TypeChecker<'_, 'gcx, 'tcx>,
dropped_ty: Ty<'tcx>
) -> DropData<'tcx>[src]
fn compute_drop_data(
cx: &mut TypeChecker<'_, 'gcx, 'tcx>,
dropped_ty: Ty<'tcx>
) -> DropData<'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?
Auto Trait Implementations
impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> !Send for TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx>
impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> !Send for TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx>impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> !Sync for TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx>
impl<'gen, 'typeck, 'flow, 'gcx, 'tcx> !Sync for TypeLivenessGenerator<'gen, 'typeck, 'flow, 'gcx, 'tcx>