Struct rustc_infer::infer::free_regions::FreeRegionMap
source · [−]pub struct FreeRegionMap<'tcx> {
relation: TransitiveRelation<Region<'tcx>>,
}Fields
relation: TransitiveRelation<Region<'tcx>>Implementations
sourceimpl<'tcx> FreeRegionMap<'tcx>
impl<'tcx> FreeRegionMap<'tcx>
pub fn elements(&self) -> impl Iterator<Item = &Region<'tcx>>
pub fn is_empty(&self) -> bool
pub fn relate_regions(&mut self, sub: Region<'tcx>, sup: Region<'tcx>)
sourcepub fn sub_free_regions(
&self,
tcx: TyCtxt<'tcx>,
r_a: Region<'tcx>,
r_b: Region<'tcx>
) -> bool
pub fn sub_free_regions(
&self,
tcx: TyCtxt<'tcx>,
r_a: Region<'tcx>,
r_b: Region<'tcx>
) -> bool
Tests whether r_a <= r_b.
Both regions must meet is_free_or_static.
Subtle: one tricky case that this code gets correct is as
follows. If we know that r_b: 'static, then this function
will return true, even though we don’t know anything that
directly relates r_a and r_b.
sourcefn check_relation(&self, r_a: Region<'tcx>, r_b: Region<'tcx>) -> bool
fn check_relation(&self, r_a: Region<'tcx>, r_b: Region<'tcx>) -> bool
Check whether r_a <= r_b is found in the relation.
sourcepub fn is_free_or_static(&self, r: Region<'_>) -> bool
pub fn is_free_or_static(&self, r: Region<'_>) -> bool
True if r is a free region or static of the sort that this
free region map can be used with.
sourcepub fn lub_free_regions(
&self,
tcx: TyCtxt<'tcx>,
r_a: Region<'tcx>,
r_b: Region<'tcx>
) -> Region<'tcx>
pub fn lub_free_regions(
&self,
tcx: TyCtxt<'tcx>,
r_a: Region<'tcx>,
r_b: Region<'tcx>
) -> Region<'tcx>
Computes the least-upper-bound of two free regions. In some
cases, this is more conservative than necessary, in order to
avoid making arbitrary choices. See
TransitiveRelation::postdom_upper_bound for more details.
Trait Implementations
sourceimpl<'tcx> Clone for FreeRegionMap<'tcx>
impl<'tcx> Clone for FreeRegionMap<'tcx>
sourcefn clone(&self) -> FreeRegionMap<'tcx>
fn clone(&self) -> FreeRegionMap<'tcx>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
sourceimpl<'tcx> Debug for FreeRegionMap<'tcx>
impl<'tcx> Debug for FreeRegionMap<'tcx>
sourceimpl<'tcx> Default for FreeRegionMap<'tcx>
impl<'tcx> Default for FreeRegionMap<'tcx>
sourcefn default() -> FreeRegionMap<'tcx>
fn default() -> FreeRegionMap<'tcx>
Returns the “default value” for a type. Read more
sourceimpl<'a, 'tcx> Lift<'tcx> for FreeRegionMap<'a>
impl<'a, 'tcx> Lift<'tcx> for FreeRegionMap<'a>
type Lifted = FreeRegionMap<'tcx>
fn lift_to_tcx(self, tcx: TyCtxt<'tcx>) -> Option<FreeRegionMap<'tcx>>
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for FreeRegionMap<'tcx>
impl<'tcx> Send for FreeRegionMap<'tcx>
impl<'tcx> !Sync for FreeRegionMap<'tcx>
impl<'tcx> Unpin for FreeRegionMap<'tcx>
impl<'tcx> UnwindSafe for FreeRegionMap<'tcx>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<'a, T> Captures<'a> for T where
T: ?Sized,
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 128 bytes