struct UniversalRegionRelationsBuilder<'this, 'tcx> {
infcx: &'this InferCtxt<'tcx>,
param_env: ParamEnv<'tcx>,
universal_regions: Rc<UniversalRegions<'tcx>>,
implicit_region_bound: Region<'tcx>,
constraints: &'this mut MirTypeckRegionConstraints<'tcx>,
outlives: TransitiveRelationBuilder<RegionVid>,
inverse_outlives: TransitiveRelationBuilder<RegionVid>,
region_bound_pairs: RegionBoundPairs<'tcx>,
}
Fields§
§infcx: &'this InferCtxt<'tcx>
§param_env: ParamEnv<'tcx>
§universal_regions: Rc<UniversalRegions<'tcx>>
§implicit_region_bound: Region<'tcx>
§constraints: &'this mut MirTypeckRegionConstraints<'tcx>
§outlives: TransitiveRelationBuilder<RegionVid>
§inverse_outlives: TransitiveRelationBuilder<RegionVid>
§region_bound_pairs: RegionBoundPairs<'tcx>
Implementations§
source§impl<'tcx> UniversalRegionRelationsBuilder<'_, 'tcx>
impl<'tcx> UniversalRegionRelationsBuilder<'_, 'tcx>
sourcefn relate_universal_regions(&mut self, fr_a: RegionVid, fr_b: RegionVid)
fn relate_universal_regions(&mut self, fr_a: RegionVid, fr_b: RegionVid)
Records in the outlives_relation
(and
inverse_outlives_relation
) that fr_a: fr_b
.
pub(crate) fn create(self) -> CreateResult<'tcx>
fn push_region_constraints( &mut self, data: &QueryRegionConstraints<'tcx>, span: Span )
sourcefn add_implied_bounds(
&mut self,
ty: Ty<'tcx>
) -> Option<&'tcx QueryRegionConstraints<'tcx>>
fn add_implied_bounds( &mut self, ty: Ty<'tcx> ) -> Option<&'tcx QueryRegionConstraints<'tcx>>
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.
sourcefn add_outlives_bounds<I>(&mut self, outlives_bounds: I)where
I: IntoIterator<Item = OutlivesBound<'tcx>>,
fn add_outlives_bounds<I>(&mut self, outlives_bounds: I)where I: IntoIterator<Item = OutlivesBound<'tcx>>,
Registers the OutlivesBound
items from outlives_bounds
in
the outlives relation as well as the region-bound pairs
listing.
Auto Trait Implementations§
impl<'this, 'tcx> !RefUnwindSafe for UniversalRegionRelationsBuilder<'this, 'tcx>
impl<'this, 'tcx> !Send for UniversalRegionRelationsBuilder<'this, 'tcx>
impl<'this, 'tcx> !Sync for UniversalRegionRelationsBuilder<'this, 'tcx>
impl<'this, 'tcx> Unpin for UniversalRegionRelationsBuilder<'this, 'tcx>where 'tcx: 'this,
impl<'this, 'tcx> !UnwindSafe for UniversalRegionRelationsBuilder<'this, 'tcx>
Blanket Implementations§
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: 272 bytes