apply_computed_concrete_opaque_types

Function apply_computed_concrete_opaque_types 

Source
pub(crate) fn apply_computed_concrete_opaque_types<'tcx>(
    infcx: &BorrowckInferCtxt<'tcx>,
    body: &Body<'tcx>,
    universal_regions: &UniversalRegions<'tcx>,
    region_bound_pairs: &RegionBoundPairs<'tcx>,
    known_type_outlives_obligations: &[PolyTypeOutlivesPredicate<'tcx>],
    constraints: &mut MirTypeckRegionConstraints<'tcx>,
    concrete_opaque_types: &mut ConcreteOpaqueTypes<'tcx>,
    opaque_types: &[(OpaqueTypeKey<'tcx>, OpaqueHiddenType<'tcx>)],
) -> Vec<DeferredOpaqueTypeError<'tcx>>
Expand description

This function is what actually applies member constraints to the borrowck state. It is also responsible to check all uses of the opaques in their defining scope.

It does this by equating the hidden type of each use with the instantiated final hidden type of the opaque.