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>

source

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.

source

pub(crate) fn create(self) -> CreateResult<'tcx>

source

fn push_region_constraints( &mut self, data: &QueryRegionConstraints<'tcx>, span: Span )

source

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.

source

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§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

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