[−][src]Struct rustc_mir::borrow_check::universal_regions::UniversalRegionIndices
Fields
indices: FxHashMap<Region<'tcx>, RegionVid>For those regions that may appear in the parameter environment
('static and early-bound regions), we maintain a map from the
ty::Region to the internal RegionVid we are using. This is
used because trait matching and type-checking will feed us
region constraints that reference those regions and we need to
be able to map them our internal RegionVid. This is
basically equivalent to a InternalSubsts, except that it also
contains an entry for ReStatic -- it might be nice to just
use a substs, and then handle ReStatic another way.
Implementations
impl<'tcx> UniversalRegionIndices<'tcx>[src]
pub(in borrow_check::universal_regions) fn insert_late_bound_region(
&mut self,
r: Region<'tcx>,
vid: RegionVid
)[src]
&mut self,
r: Region<'tcx>,
vid: RegionVid
)
Initially, the UniversalRegionIndices map contains only the
early-bound regions in scope. Once that is all setup, we come
in later and instantiate the late-bound regions, and then we
insert the ReFree version of those into the map as
well. These are used for error reporting.
pub fn to_region_vid(&self, r: Region<'tcx>) -> RegionVid[src]
Converts r into a local inference variable: r can either
by a ReVar (i.e., already a reference to an inference
variable) or it can be 'static or some early-bound
region. This is useful when taking the results from
type-checking and trait-matching, which may sometimes
reference those regions from the ParamEnv. It is also used
during initialization. Relies on the indices map having been
fully initialized.
pub fn fold_to_region_vids<T>(&self, tcx: TyCtxt<'tcx>, value: T) -> T where
T: TypeFoldable<'tcx>, [src]
T: TypeFoldable<'tcx>,
Replaces all free regions in value with region vids, as
returned by to_region_vid.
Trait Implementations
impl<'tcx> Debug for UniversalRegionIndices<'tcx>[src]
Auto Trait Implementations
impl<'tcx> RefUnwindSafe for UniversalRegionIndices<'tcx>
impl<'tcx> Send for UniversalRegionIndices<'tcx>
impl<'tcx> Sync for UniversalRegionIndices<'tcx>
impl<'tcx> Unpin for UniversalRegionIndices<'tcx>
impl<'tcx> UnwindSafe for UniversalRegionIndices<'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.