pub fn skolemize_late_bound_regions<T>(&self,
                                           binder: &ty::Binder<T>)
                                           -> (T, SkolemizationMap<'tcx>)
        where T : TypeFoldable<'tcx>
    {
        let (result, map) = self.tcx.replace_late_bound_regions(binder, |br| {
            self.universe.set(self.universe().subuniverse());
            self.tcx.mk_region(ty::ReSkolemized(self.universe(), br))
        });

        debug!("skolemize_bound_regions(binder={:?}, result={:?}, map={:?})",
               binder,
               result,
               map);

        (result, map)
    }
/// Replace all regions bound by `binder` with skolemized regions and
/// return a map indicating which bound-region was replaced with what
/// skolemized region. This is the first step of checking subtyping
/// when higher-ranked things are involved.
///
/// **Important:** you must call this function from within a snapshot.
/// Moreover, before committing the snapshot, you must eventually call
/// either `plug_leaks` or `pop_skolemized` to remove the skolemized
/// regions. If you rollback the snapshot (or are using a probe), then
/// the pop occurs as part of the rollback, so an explicit call is not
/// needed (but is also permitted).
///
/// For more information about how skolemization for HRTBs works, see
/// the [rustc guide].
///
/// [rustc guide]: https://rust-lang-nursery.github.io/rustc-guide/traits/hrtb.html
Replace all regions bound by `binder` with skolemized regions and
return a map indicating which bound-region was replaced with what
skolemized region. This is the first step of checking subtyping
when higher-ranked things are involved.

you must call this function from within a snapshot.
Moreover, before committing the snapshot, you must eventually call
either `plug_leaks` or `pop_skolemized` to remove the skolemized
regions. If you rollback the snapshot (or are using a probe), then
the pop occurs as part of the rollback, so an explicit call is not
needed (but is also permitted).

For more information about how skolemization for HRTBs works, see
the [rustc guide].


Replace all regions bound by ` binder ` with skolemized regions and return a map indicating which bound - region was replaced with what skolemized region . This is the first step of checking subtyping when higher - ranked things are involved . you must call this function from within a snapshot . Moreover before committing the snapshot you must eventually call either ` plug_leaks ` or ` pop_skolemized ` to remove the skolemized regions . If you rollback the snapshot ( or are using a probe ) then the pop occurs as part of the rollback so an explicit call is not needed ( but is also permitted ) . For more information about how skolemization for HRTBs works see the [ rustc guide ] .
pub fn skolemize_late_bound_regions<T>(&self,
                                           binder: &ty::Binder<T>)
                                           -> (T, SkolemizationMap<'tcx>)
        where T : TypeFoldable<'tcx>
    {
        let (result, map) = self.tcx.replace_late_bound_regions(binder, |br| {
            self.universe.set(self.universe().subuniverse());
            self.tcx.mk_region(ty::ReSkolemized(self.universe(), br))
        });
        debug!("skolemize_bound_regions(binder={:?}, result={:?}, map={:?})",
               binder,
               result,
               map);
        (result, map)
    }
pub fn skolemize_late_bound_regions < T > ( & self , binder : & ty :: Binder < T > ) -> ( T , SkolemizationMap < ' tcx > ) where T : TypeFoldable < ' tcx > { let ( result , map ) = self . tcx . replace_late_bound_regions ( binder , | br | { self . universe . set ( self . universe ( ) . subuniverse ( ) ) ; self . tcx . mk_region ( ty :: ReSkolemized ( self . universe ( ) , br ) ) } ) ; debug ! ( " " binder result map ) ; ( result , map ) }
Replace all regions bound by `binder` with skolemized regions and
return a map indicating which bound-region was replaced with what
skolemized region.
Replace all regions bound by ` binder ` with skolemized regions and return a map indicating which bound - region was replaced with what skolemized region .
&self
binder
&ty::Binder<T>
&self
binder
&ty::Binder<T>