[−][src]Struct rustc::infer::region_constraints::RegionConstraintCollector
🔬 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
var_infos: IndexVec<RegionVid, RegionVariableInfo>
🔬 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?
For each RegionVid
, the corresponding RegionVariableOrigin
.
data: RegionConstraintData<'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?
lubs: FxHashMap<TwoRegions<'tcx>, RegionVid>
🔬 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?
For a given pair of regions (R1, R2), maps to a region R3 that is designated as their LUB (edges R1 <= R3 and R2 <= R3 exist). This prevents us from making many such regions.
glbs: FxHashMap<TwoRegions<'tcx>, RegionVid>
🔬 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?
For a given pair of regions (R1, R2), maps to a region R3 that is designated as their GLB (edges R3 <= R1 and R3 <= R2 exist). This prevents us from making many such regions.
bound_count: u32
🔬 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?
Global counter used during the GLB algorithm to create unique names for fresh bound regions
undo_log: Vec<UndoLogEntry<'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?
The undo log records actions that might later be undone.
Note: when the undo_log is empty, we are not actively
snapshotting. When the start_snapshot()
method is called, we
push an OpenSnapshot entry onto the list to indicate that we
are now actively snapshotting. The reason for this is that
otherwise we end up adding entries for things like the lower
bound on a variable and so forth, which can never be rolled
back.
unification_table: UnificationTable<InPlace<RegionVid>>
🔬 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?
When we add a R1 == R2 constriant, we currently add (a) edges
R1 <= R2 and R2 <= R1 and (b) we unify the two regions in this
table. You can then call opportunistic_resolve_var
early
which will map R1 and R2 to some common region (i.e., either
R1 or R2). This is important when dropck and other such code
is iterating to a fixed point, because otherwise we sometimes
would wind up with a fresh stream of region variables that
have been equated but appear distinct.
any_unifications: bool
🔬 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?
a flag set to true when we perform any unifications; this is used
to micro-optimize take_and_reset_data
Methods
impl<'tcx> RegionConstraintCollector<'tcx>
[src]
impl<'tcx> RegionConstraintCollector<'tcx>
pub fn new() -> RegionConstraintCollector<'tcx>
[src]
pub fn new() -> RegionConstraintCollector<'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?
pub fn num_region_vars(&self) -> usize
[src]
pub fn num_region_vars(&self) -> usize
🔬 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?
pub fn region_constraint_data(&self) -> &RegionConstraintData<'tcx>
[src]
pub fn region_constraint_data(&self) -> &RegionConstraintData<'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?
pub fn into_infos_and_data(self) -> (VarInfos, RegionConstraintData<'tcx>)
[src]
pub fn into_infos_and_data(self) -> (VarInfos, RegionConstraintData<'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?
Once all the constraints have been gathered, extract out the final data.
Not legal during a snapshot.
pub fn take_and_reset_data(&mut self) -> RegionConstraintData<'tcx>
[src]
pub fn take_and_reset_data(&mut self) -> RegionConstraintData<'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?
Takes (and clears) the current set of constraints. Note that the set of variables remains intact, but all relationships between them are reset. This is used during NLL checking to grab the set of constraints that arose from a particular operation.
We don't want to leak relationships between variables between
points because just because (say) r1 == r2
was true at some
point P in the graph doesn't imply that it will be true at
some other point Q, in NLL.
Not legal during a snapshot.
pub fn data(&self) -> &RegionConstraintData<'tcx>
[src]
pub fn data(&self) -> &RegionConstraintData<'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?
fn in_snapshot(&self) -> bool
[src]
fn in_snapshot(&self) -> bool
🔬 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?
pub fn start_snapshot(&mut self) -> RegionSnapshot
[src]
pub fn start_snapshot(&mut self) -> RegionSnapshot
🔬 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?
pub fn commit(&mut self, snapshot: RegionSnapshot)
[src]
pub fn commit(&mut self, snapshot: RegionSnapshot)
🔬 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?
pub fn rollback_to(&mut self, snapshot: RegionSnapshot)
[src]
pub fn rollback_to(&mut self, snapshot: RegionSnapshot)
🔬 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 rollback_undo_entry(&mut self, undo_entry: UndoLogEntry<'tcx>)
[src]
fn rollback_undo_entry(&mut self, undo_entry: UndoLogEntry<'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?
pub fn new_region_var(
&mut self,
universe: UniverseIndex,
origin: RegionVariableOrigin
) -> RegionVid
[src]
pub fn new_region_var(
&mut self,
universe: UniverseIndex,
origin: RegionVariableOrigin
) -> RegionVid
🔬 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?
pub fn var_universe(&self, vid: RegionVid) -> UniverseIndex
[src]
pub fn var_universe(&self, vid: RegionVid) -> UniverseIndex
🔬 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?
Returns the universe for the given variable.
pub fn var_origin(&self, vid: RegionVid) -> RegionVariableOrigin
[src]
pub fn var_origin(&self, vid: RegionVid) -> RegionVariableOrigin
🔬 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?
Returns the origin for the given variable.
pub fn pop_skolemized(
&mut self,
skolemization_count: UniverseIndex,
skols: &FxHashSet<Region<'tcx>>,
snapshot: &RegionSnapshot
)
[src]
pub fn pop_skolemized(
&mut self,
skolemization_count: UniverseIndex,
skols: &FxHashSet<Region<'tcx>>,
snapshot: &RegionSnapshot
)
🔬 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?
Removes all the edges to/from the skolemized regions that are
in skols
. This is used after a higher-ranked operation
completes to remove all trace of the skolemized regions
created in that time.
pub fn new_bound(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
debruijn: DebruijnIndex
) -> Region<'tcx>
[src]
pub fn new_bound(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
debruijn: DebruijnIndex
) -> Region<'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?
fn add_constraint(
&mut self,
constraint: Constraint<'tcx>,
origin: SubregionOrigin<'tcx>
)
[src]
fn add_constraint(
&mut self,
constraint: Constraint<'tcx>,
origin: SubregionOrigin<'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?
fn add_verify(&mut self, verify: Verify<'tcx>)
[src]
fn add_verify(&mut self, verify: Verify<'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?
pub fn add_given(&mut self, sub: Region<'tcx>, sup: RegionVid)
[src]
pub fn add_given(&mut self, sub: Region<'tcx>, sup: RegionVid)
🔬 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?
pub fn make_eqregion(
&mut self,
origin: SubregionOrigin<'tcx>,
sub: Region<'tcx>,
sup: Region<'tcx>
)
[src]
pub fn make_eqregion(
&mut self,
origin: SubregionOrigin<'tcx>,
sub: Region<'tcx>,
sup: Region<'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?
pub fn make_subregion(
&mut self,
origin: SubregionOrigin<'tcx>,
sub: Region<'tcx>,
sup: Region<'tcx>
)
[src]
pub fn make_subregion(
&mut self,
origin: SubregionOrigin<'tcx>,
sub: Region<'tcx>,
sup: Region<'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?
pub fn verify_generic_bound(
&mut self,
origin: SubregionOrigin<'tcx>,
kind: GenericKind<'tcx>,
sub: Region<'tcx>,
bound: VerifyBound<'tcx>
)
[src]
pub fn verify_generic_bound(
&mut self,
origin: SubregionOrigin<'tcx>,
kind: GenericKind<'tcx>,
sub: Region<'tcx>,
bound: VerifyBound<'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?
See Verify::VerifyGenericBound
pub fn lub_regions(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
origin: SubregionOrigin<'tcx>,
a: Region<'tcx>,
b: Region<'tcx>
) -> Region<'tcx>
[src]
pub fn lub_regions(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
origin: SubregionOrigin<'tcx>,
a: Region<'tcx>,
b: Region<'tcx>
) -> Region<'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?
pub fn glb_regions(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
origin: SubregionOrigin<'tcx>,
a: Region<'tcx>,
b: Region<'tcx>
) -> Region<'tcx>
[src]
pub fn glb_regions(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
origin: SubregionOrigin<'tcx>,
a: Region<'tcx>,
b: Region<'tcx>
) -> Region<'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?
pub fn opportunistic_resolve_var(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
rid: RegionVid
) -> Region<'tcx>
[src]
pub fn opportunistic_resolve_var(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
rid: RegionVid
) -> Region<'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?
fn combine_map(
&mut self,
t: CombineMapType
) -> &mut FxHashMap<TwoRegions<'tcx>, RegionVid>
[src]
fn combine_map(
&mut self,
t: CombineMapType
) -> &mut FxHashMap<TwoRegions<'tcx>, RegionVid>
🔬 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 combine_vars(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
t: CombineMapType,
a: Region<'tcx>,
b: Region<'tcx>,
origin: SubregionOrigin<'tcx>
) -> Region<'tcx>
[src]
fn combine_vars(
&mut self,
tcx: TyCtxt<'_, '_, 'tcx>,
t: CombineMapType,
a: Region<'tcx>,
b: Region<'tcx>,
origin: SubregionOrigin<'tcx>
) -> Region<'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?
fn universe(&self, region: Region<'tcx>) -> UniverseIndex
[src]
fn universe(&self, region: Region<'tcx>) -> UniverseIndex
🔬 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?
pub fn vars_created_since_snapshot(
&self,
mark: &RegionSnapshot
) -> Vec<RegionVid>
[src]
pub fn vars_created_since_snapshot(
&self,
mark: &RegionSnapshot
) -> Vec<RegionVid>
🔬 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?
pub fn tainted(
&self,
tcx: TyCtxt<'_, '_, 'tcx>,
mark: &RegionSnapshot,
r0: Region<'tcx>,
directions: TaintDirections
) -> FxHashSet<Region<'tcx>>
[src]
pub fn tainted(
&self,
tcx: TyCtxt<'_, '_, 'tcx>,
mark: &RegionSnapshot,
r0: Region<'tcx>,
directions: TaintDirections
) -> FxHashSet<Region<'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?
Computes all regions that have been related to r0
since the
mark mark
was made---r0
itself will be the first
entry. The directions
parameter controls what kind of
relations are considered. For example, one can say that only
"incoming" edges to r0
are desired, in which case one will
get the set of regions {r|r <= r0}
. This is used when
checking whether skolemized regions are being improperly
related to other regions.
Auto Trait Implementations
impl<'tcx> !Send for RegionConstraintCollector<'tcx>
impl<'tcx> !Send for RegionConstraintCollector<'tcx>
impl<'tcx> !Sync for RegionConstraintCollector<'tcx>
impl<'tcx> !Sync for RegionConstraintCollector<'tcx>
Blanket Implementations
impl<T> MaybeResult for T
[src]
impl<T> MaybeResult for T
fn from_ok(T) -> T
[src]
fn from_ok(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) -> T where
F: FnOnce(T) -> T,
[src]
fn map_same<F>(Self, 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,
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