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>
sourcefn add_implied_bounds(
&mut self,
ty: Ty<'tcx>,
span: Span
) -> Option<&'tcx QueryRegionConstraints<'tcx>>
fn add_implied_bounds( &mut self, ty: Ty<'tcx>, span: Span ) -> 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> !DynSend for UniversalRegionRelationsBuilder<'this, 'tcx>
impl<'this, 'tcx> !DynSync for UniversalRegionRelationsBuilder<'this, 'tcx>
impl<'this, 'tcx> Freeze for UniversalRegionRelationsBuilder<'this, 'tcx>
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>
impl<'this, 'tcx> !UnwindSafe for UniversalRegionRelationsBuilder<'this, 'tcx>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<'tcx, T> ToPredicate<'tcx, T> for T
impl<'tcx, T> ToPredicate<'tcx, T> for T
fn to_predicate(self, _tcx: TyCtxt<'tcx>) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
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