Struct rustc_mir::borrow_check::nll::universal_regions::UniversalRegionIndices [−][src]
🔬 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
indices: FxHashMap<Region<'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 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 Substs
, except that it also
contains an entry for ReStatic
-- it might be nice to just
use a substs, and then handle ReStatic
another way.
Methods
impl<'tcx> UniversalRegionIndices<'tcx>
[src]
impl<'tcx> UniversalRegionIndices<'tcx>
fn insert_late_bound_region(&mut self, r: Region<'tcx>, vid: RegionVid)
[src]
fn insert_late_bound_region(&mut self, r: Region<'tcx>, vid: 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?
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]
pub fn to_region_vid(&self, r: Region<'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?
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]
pub fn fold_to_region_vids<T>(&self, tcx: TyCtxt<'_, '_, 'tcx>, value: &T) -> T 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?
Replace all free regions in value
with region vids, as
returned by to_region_vid
.
Trait Implementations
impl<'tcx> Debug for UniversalRegionIndices<'tcx>
[src]
impl<'tcx> Debug for UniversalRegionIndices<'tcx>
Auto Trait Implementations
impl<'tcx> !Send for UniversalRegionIndices<'tcx>
impl<'tcx> !Send for UniversalRegionIndices<'tcx>
impl<'tcx> !Sync for UniversalRegionIndices<'tcx>
impl<'tcx> !Sync for UniversalRegionIndices<'tcx>