Struct rustc_middle::ty::fold::BoundVarReplacer
source · struct BoundVarReplacer<'tcx, D> {
tcx: TyCtxt<'tcx>,
current_index: DebruijnIndex,
delegate: D,
}
Expand description
Replaces the escaping bound vars (late bound regions or bound types) in a type.
Fields§
§tcx: TyCtxt<'tcx>
§current_index: DebruijnIndex
As with RegionFolder
, represents the index of a binder just outside
the ones we have visited.
delegate: D
Implementations§
source§impl<'tcx, D: BoundVarReplacerDelegate<'tcx>> BoundVarReplacer<'tcx, D>
impl<'tcx, D: BoundVarReplacerDelegate<'tcx>> BoundVarReplacer<'tcx, D>
Trait Implementations§
source§impl<'tcx, D> TypeFolder<TyCtxt<'tcx>> for BoundVarReplacer<'tcx, D>where
D: BoundVarReplacerDelegate<'tcx>,
impl<'tcx, D> TypeFolder<TyCtxt<'tcx>> for BoundVarReplacer<'tcx, D>where D: BoundVarReplacerDelegate<'tcx>,
fn interner(&self) -> TyCtxt<'tcx>
fn fold_binder<T: TypeFoldable<TyCtxt<'tcx>>>( &mut self, t: Binder<'tcx, T> ) -> Binder<'tcx, T>
fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx>
fn fold_region(&mut self, r: Region<'tcx>) -> Region<'tcx>
fn fold_const(&mut self, ct: Const<'tcx>) -> Const<'tcx>
fn fold_predicate(&mut self, p: Predicate<'tcx>) -> Predicate<'tcx>
Auto Trait Implementations§
impl<'tcx, D> !RefUnwindSafe for BoundVarReplacer<'tcx, D>
impl<'tcx, D> !Send for BoundVarReplacer<'tcx, D>
impl<'tcx, D> !Sync for BoundVarReplacer<'tcx, D>
impl<'tcx, D> Unpin for BoundVarReplacer<'tcx, D>where D: Unpin,
impl<'tcx, D> !UnwindSafe for BoundVarReplacer<'tcx, D>
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<I, F> FallibleTypeFolder<I> for Fwhere
I: Interner,
F: TypeFolder<I>,
impl<I, F> FallibleTypeFolder<I> for Fwhere I: Interner, F: TypeFolder<I>,
type Error = !
fn interner(&self) -> I
fn try_fold_binder<T>( &mut self, t: <I as Interner>::Binder<T> ) -> Result<<I as Interner>::Binder<T>, !>where T: TypeFoldable<I>, <I as Interner>::Binder<T>: TypeSuperFoldable<I>,
fn try_fold_ty( &mut self, t: <I as Interner>::Ty ) -> Result<<I as Interner>::Ty, !>where <I as Interner>::Ty: TypeSuperFoldable<I>,
fn try_fold_region( &mut self, r: <I as Interner>::Region ) -> Result<<I as Interner>::Region, !>
fn try_fold_const( &mut self, c: <I as Interner>::Const ) -> Result<<I as Interner>::Const, !>where <I as Interner>::Const: TypeSuperFoldable<I>,
fn try_fold_predicate( &mut self, p: <I as Interner>::Predicate ) -> Result<<I as Interner>::Predicate, !>where <I as Interner>::Predicate: TypeSuperFoldable<I>,
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<'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: &[QueryInfo], _guar: ErrorGuaranteed ) -> T
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.