handle_opaque_type_uses

Function handle_opaque_type_uses 

Source
pub(crate) fn handle_opaque_type_uses<'tcx>(
    root_cx: &mut BorrowCheckRootCtxt<'tcx>,
    infcx: &BorrowckInferCtxt<'tcx>,
    body: &Body<'tcx>,
    universal_region_relations: &Frozen<UniversalRegionRelations<'tcx>>,
    region_bound_pairs: &RegionBoundPairs<'tcx>,
    known_type_outlives_obligations: &[PolyTypeOutlivesPredicate<'tcx>],
    location_map: &Rc<DenseLocationMap>,
    constraints: &mut MirTypeckRegionConstraints<'tcx>,
) -> Vec<DeferredOpaqueTypeError<'tcx>>
Expand description

This looks at all uses of opaque types in their defining scope inside of this function.

It first uses all defining uses to compute the actual concrete type of each opaque type definition.

We then apply this inferred type to actually check all uses of the opaque.