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
sourceimpl<'tcx, D: BoundVarReplacerDelegate<'tcx>> BoundVarReplacer<'tcx, D>
impl<'tcx, D: BoundVarReplacerDelegate<'tcx>> BoundVarReplacer<'tcx, D>
Trait Implementations
sourceimpl<'tcx, D> TypeFolder<'tcx> for BoundVarReplacer<'tcx, D>where
D: BoundVarReplacerDelegate<'tcx>,
impl<'tcx, D> TypeFolder<'tcx> for BoundVarReplacer<'tcx, D>where
D: BoundVarReplacerDelegate<'tcx>,
fn tcx<'b>(&'b self) -> TyCtxt<'tcx>
fn fold_binder<T: TypeFoldable<'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>
fn fold_unevaluated(&mut self, uv: Unevaluated<'tcx>) -> Unevaluated<'tcx>
fn fold_mir_const(&mut self, c: ConstantKind<'tcx>) -> ConstantKind<'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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'tcx, F> FallibleTypeFolder<'tcx> for Fwhere
F: TypeFolder<'tcx>,
impl<'tcx, F> FallibleTypeFolder<'tcx> for Fwhere
F: TypeFolder<'tcx>,
type Error = !
fn tcx(&'a self) -> TyCtxt<'tcx>
fn try_fold_binder<T>(
&mut self,
t: Binder<'tcx, T>
) -> Result<Binder<'tcx, T>, !>where
T: TypeFoldable<'tcx>,
fn try_fold_ty(&mut self, t: Ty<'tcx>) -> Result<Ty<'tcx>, !>
fn try_fold_region(&mut self, r: Region<'tcx>) -> Result<Region<'tcx>, !>
fn try_fold_const(&mut self, c: Const<'tcx>) -> Result<Const<'tcx>, !>
fn try_fold_unevaluated(
&mut self,
c: Unevaluated<'tcx, Option<Promoted>>
) -> Result<Unevaluated<'tcx, Option<Promoted>>, !>
fn try_fold_predicate(
&mut self,
p: Predicate<'tcx>
) -> Result<Predicate<'tcx>, !>
fn try_fold_mir_const(
&mut self,
c: ConstantKind<'tcx>
) -> Result<ConstantKind<'tcx>, !>
sourceimpl<T, R> InternIteratorElement<T, R> for T
impl<T, R> InternIteratorElement<T, R> for T
type Output = R
fn intern_with<I, F>(iter: I, f: F) -> <T as InternIteratorElement<T, R>>::Outputwhere
I: Iterator<Item = T>,
F: FnOnce(&[T]) -> R,
sourceimpl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
sourceimpl<CTX, T> Value<CTX> for Twhere
CTX: DepContext,
impl<CTX, T> Value<CTX> for Twhere
CTX: DepContext,
default fn from_cycle_error(tcx: CTX) -> T
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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.