Struct rustc_mir::borrow_check::nll::universal_regions::UniversalRegionsBuilder [−][src]
struct UniversalRegionsBuilder<'cx, 'gcx: 'tcx, 'tcx: 'cx> {
infcx: &'cx InferCtxt<'cx, 'gcx, 'tcx>,
mir_def_id: DefId,
mir_hir_id: HirId,
mir_node_id: NodeId,
param_env: ParamEnv<'tcx>,
region_bound_pairs: Vec<(Region<'tcx>, GenericKind<'tcx>)>,
relations: UniversalRegionRelations,
}🔬 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
infcx: &'cx InferCtxt<'cx, '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_def_id: DefId
🔬 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_hir_id: HirId
🔬 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_node_id: NodeId
🔬 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?
param_env: ParamEnv<'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?
region_bound_pairs: Vec<(Region<'tcx>, GenericKind<'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?
relations: UniversalRegionRelations
🔬 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<'cx, 'gcx, 'tcx> UniversalRegionsBuilder<'cx, 'gcx, 'tcx>[src]
impl<'cx, 'gcx, 'tcx> UniversalRegionsBuilder<'cx, 'gcx, 'tcx>fn build(self) -> UniversalRegions<'tcx>[src]
fn build(self) -> UniversalRegions<'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 defining_ty(&self) -> DefiningTy<'tcx>[src]
fn defining_ty(&self) -> DefiningTy<'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?
Returns the "defining type" of the current MIR;
see DefiningTy for details.
fn compute_indices(
&self,
fr_static: RegionVid,
defining_ty: DefiningTy<'tcx>
) -> UniversalRegionIndices<'tcx>[src]
fn compute_indices(
&self,
fr_static: RegionVid,
defining_ty: DefiningTy<'tcx>
) -> UniversalRegionIndices<'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?
Builds a hashmap that maps from the universal regions that are
in scope (as a ty::Region<'tcx>) to their indices (as a
RegionVid). The map returned by this function contains only
the early-bound regions.
fn compute_inputs_and_output(
&self,
indices: &UniversalRegionIndices<'tcx>,
defining_ty: DefiningTy<'tcx>
) -> Binder<&'tcx Slice<Ty<'tcx>>>[src]
fn compute_inputs_and_output(
&self,
indices: &UniversalRegionIndices<'tcx>,
defining_ty: DefiningTy<'tcx>
) -> Binder<&'tcx Slice<Ty<'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_implied_bounds(
&mut self,
indices: &UniversalRegionIndices<'tcx>,
ty: Ty<'tcx>
)[src]
fn add_implied_bounds(
&mut self,
indices: &UniversalRegionIndices<'tcx>,
ty: Ty<'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?
Update the type of a single local, which should represent either the return type of the MIR or one of its arguments. At the same time, compute and add any implied bounds that come from this local.
Assumes that universal_regions indices map is fully constructed.
fn add_outlives_bounds<I>(
&mut self,
indices: &UniversalRegionIndices<'tcx>,
outlives_bounds: I
) where
I: IntoIterator<Item = OutlivesBound<'tcx>>, [src]
fn add_outlives_bounds<I>(
&mut self,
indices: &UniversalRegionIndices<'tcx>,
outlives_bounds: I
) where
I: IntoIterator<Item = OutlivesBound<'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?
Registers the OutlivesBound items from outlives_bounds in
the outlives relation as well as the region-bound pairs
listing.
Auto Trait Implementations
impl<'cx, 'gcx, 'tcx> !Send for UniversalRegionsBuilder<'cx, 'gcx, 'tcx>
impl<'cx, 'gcx, 'tcx> !Send for UniversalRegionsBuilder<'cx, 'gcx, 'tcx>impl<'cx, 'gcx, 'tcx> !Sync for UniversalRegionsBuilder<'cx, 'gcx, 'tcx>
impl<'cx, 'gcx, 'tcx> !Sync for UniversalRegionsBuilder<'cx, 'gcx, 'tcx>