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<'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>
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<'tcx, F> FallibleTypeFolder<'tcx> for Fwhere
F: TypeFolder<'tcx>,
impl<'tcx, F> FallibleTypeFolder<'tcx> for Fwhere
F: TypeFolder<'tcx>,
type Error = !
fn tcx<'a>(&'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_predicate(
&mut self,
p: Predicate<'tcx>
) -> Result<Predicate<'tcx>, !>
source§impl<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,
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, _: &[QueryInfo]) -> 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.