[−][src]Struct rustc_mir::borrow_check::type_check::MirTypeckRegionConstraints
A collection of region constraints that must be satisfied for the program to be considered well-typed.
Fields
placeholder_indices: PlaceholderIndicesMaps from a ty::Placeholder to the corresponding
PlaceholderIndex bit that we will use for it.
To keep everything in sync, do not insert this set
directly. Instead, use the placeholder_region helper.
placeholder_index_to_region: IndexVec<PlaceholderIndex, Region<'tcx>>Each time we add a placeholder to placeholder_indices, we
also create a corresponding "representative" region vid for
that wraps it. This vector tracks those. This way, when we
convert the same ty::RePlaceholder(p) twice, we can map to
the same underlying RegionVid.
liveness_constraints: LivenessValues<RegionVid>In general, the type-checker is not responsible for enforcing liveness constraints; this job falls to the region inferencer, which performs a liveness analysis. However, in some limited cases, the MIR type-checker creates temporary regions that do not otherwise appear in the MIR -- in particular, the late-bound regions that it instantiates at call-sites -- and hence it must report on their liveness constraints.
outlives_constraints: OutlivesConstraintSetmember_constraints: MemberConstraintSet<'tcx, RegionVid>closure_bounds_mapping: FxHashMap<Location, FxHashMap<(RegionVid, RegionVid), (ConstraintCategory, Span)>>type_tests: Vec<TypeTest<'tcx>>Implementations
impl<'tcx> MirTypeckRegionConstraints<'tcx>[src]
pub(in borrow_check::type_check) fn placeholder_region(
&mut self,
infcx: &InferCtxt<'_, 'tcx>,
placeholder: PlaceholderRegion
) -> Region<'tcx>[src]
&mut self,
infcx: &InferCtxt<'_, 'tcx>,
placeholder: PlaceholderRegion
) -> Region<'tcx>
Auto Trait Implementations
impl<'tcx> !RefUnwindSafe for MirTypeckRegionConstraints<'tcx>
impl<'tcx> !Send for MirTypeckRegionConstraints<'tcx>
impl<'tcx> !Sync for MirTypeckRegionConstraints<'tcx>
impl<'tcx> Unpin for MirTypeckRegionConstraints<'tcx>
impl<'tcx> !UnwindSafe for MirTypeckRegionConstraints<'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.