mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
Rename TypeFolderFallible to FallibleTypeFolder
This commit is contained in:
parent
d79e17daf0
commit
cf683e644f
@ -1,7 +1,7 @@
|
|||||||
use super::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
|
use super::type_variable::{TypeVariableOrigin, TypeVariableOriginKind};
|
||||||
use super::{FixupError, FixupResult, InferCtxt, Span};
|
use super::{FixupError, FixupResult, InferCtxt, Span};
|
||||||
use rustc_middle::mir;
|
use rustc_middle::mir;
|
||||||
use rustc_middle::ty::fold::{TypeFolder, TypeFolderFallible, TypeVisitor};
|
use rustc_middle::ty::fold::{FallibleTypeFolder, TypeFolder, TypeVisitor};
|
||||||
use rustc_middle::ty::{self, Const, InferConst, Ty, TyCtxt, TypeFoldable};
|
use rustc_middle::ty::{self, Const, InferConst, Ty, TyCtxt, TypeFoldable};
|
||||||
|
|
||||||
use std::ops::ControlFlow;
|
use std::ops::ControlFlow;
|
||||||
@ -192,7 +192,7 @@ impl<'a, 'tcx> TypeFolder<'tcx> for FullTypeResolver<'a, 'tcx> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, 'tcx> TypeFolderFallible<'tcx> for FullTypeResolver<'a, 'tcx> {
|
impl<'a, 'tcx> FallibleTypeFolder<'tcx> for FullTypeResolver<'a, 'tcx> {
|
||||||
fn try_fold_ty(&mut self, t: Ty<'tcx>) -> Result<Ty<'tcx>, Self::Error> {
|
fn try_fold_ty(&mut self, t: Ty<'tcx>) -> Result<Ty<'tcx>, Self::Error> {
|
||||||
if !t.needs_infer() {
|
if !t.needs_infer() {
|
||||||
Ok(t) // micro-optimize -- if there is nothing in this type that this fold affects...
|
Ok(t) // micro-optimize -- if there is nothing in this type that this fold affects...
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use crate::traits;
|
use crate::traits;
|
||||||
use crate::traits::project::Normalized;
|
use crate::traits::project::Normalized;
|
||||||
use rustc_middle::ty;
|
use rustc_middle::ty;
|
||||||
use rustc_middle::ty::fold::{TypeFoldable, TypeFolderFallible, TypeVisitor};
|
use rustc_middle::ty::fold::{FallibleTypeFolder, TypeFoldable, TypeVisitor};
|
||||||
|
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use std::ops::ControlFlow;
|
use std::ops::ControlFlow;
|
||||||
@ -60,7 +60,7 @@ impl<'tcx> fmt::Debug for traits::MismatchedProjectionTypes<'tcx> {
|
|||||||
// TypeFoldable implementations.
|
// TypeFoldable implementations.
|
||||||
|
|
||||||
impl<'tcx, O: TypeFoldable<'tcx>> TypeFoldable<'tcx> for traits::Obligation<'tcx, O> {
|
impl<'tcx, O: TypeFoldable<'tcx>> TypeFoldable<'tcx> for traits::Obligation<'tcx, O> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
|
@ -25,7 +25,7 @@ pub fn type_foldable_derive(mut s: synstructure::Structure<'_>) -> proc_macro2::
|
|||||||
s.bound_impl(
|
s.bound_impl(
|
||||||
quote!(::rustc_middle::ty::fold::TypeFoldable<'tcx>),
|
quote!(::rustc_middle::ty::fold::TypeFoldable<'tcx>),
|
||||||
quote! {
|
quote! {
|
||||||
fn try_super_fold_with<__F: ::rustc_middle::ty::fold::TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<__F: ::rustc_middle::ty::fold::FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
__folder: &mut __F
|
__folder: &mut __F
|
||||||
) -> Result<Self, __F::Error> {
|
) -> Result<Self, __F::Error> {
|
||||||
|
@ -52,7 +52,7 @@ macro_rules! TrivialTypeFoldableImpls {
|
|||||||
(for <$tcx:lifetime> { $($ty:ty,)+ }) => {
|
(for <$tcx:lifetime> { $($ty:ty,)+ }) => {
|
||||||
$(
|
$(
|
||||||
impl<$tcx> $crate::ty::fold::TypeFoldable<$tcx> for $ty {
|
impl<$tcx> $crate::ty::fold::TypeFoldable<$tcx> for $ty {
|
||||||
fn try_super_fold_with<F: $crate::ty::fold::TypeFolderFallible<$tcx>>(
|
fn try_super_fold_with<F: $crate::ty::fold::FallibleTypeFolder<$tcx>>(
|
||||||
self,
|
self,
|
||||||
_: &mut F
|
_: &mut F
|
||||||
) -> ::std::result::Result<$ty, F::Error> {
|
) -> ::std::result::Result<$ty, F::Error> {
|
||||||
@ -95,7 +95,7 @@ macro_rules! EnumTypeFoldableImpl {
|
|||||||
impl<$($p),*> $crate::ty::fold::TypeFoldable<$tcx> for $s
|
impl<$($p),*> $crate::ty::fold::TypeFoldable<$tcx> for $s
|
||||||
$(where $($wc)*)*
|
$(where $($wc)*)*
|
||||||
{
|
{
|
||||||
fn try_super_fold_with<V: $crate::ty::fold::TypeFolderFallible<$tcx>>(
|
fn try_super_fold_with<V: $crate::ty::fold::FallibleTypeFolder<$tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut V,
|
folder: &mut V,
|
||||||
) -> ::std::result::Result<Self, V::Error> {
|
) -> ::std::result::Result<Self, V::Error> {
|
||||||
|
@ -7,7 +7,7 @@ use crate::mir::interpret::{Allocation, ConstValue, GlobalAlloc, Scalar};
|
|||||||
use crate::mir::visit::MirVisitable;
|
use crate::mir::visit::MirVisitable;
|
||||||
use crate::ty::adjustment::PointerCast;
|
use crate::ty::adjustment::PointerCast;
|
||||||
use crate::ty::codec::{TyDecoder, TyEncoder};
|
use crate::ty::codec::{TyDecoder, TyEncoder};
|
||||||
use crate::ty::fold::{TypeFoldable, TypeFolderFallible, TypeVisitor};
|
use crate::ty::fold::{FallibleTypeFolder, TypeFoldable, TypeVisitor};
|
||||||
use crate::ty::print::{FmtPrinter, Printer};
|
use crate::ty::print::{FmtPrinter, Printer};
|
||||||
use crate::ty::subst::{Subst, SubstsRef};
|
use crate::ty::subst::{Subst, SubstsRef};
|
||||||
use crate::ty::{self, List, Ty, TyCtxt};
|
use crate::ty::{self, List, Ty, TyCtxt};
|
||||||
@ -2760,7 +2760,7 @@ impl UserTypeProjection {
|
|||||||
TrivialTypeFoldableAndLiftImpls! { ProjectionKind, }
|
TrivialTypeFoldableAndLiftImpls! { ProjectionKind, }
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for UserTypeProjection {
|
impl<'tcx> TypeFoldable<'tcx> for UserTypeProjection {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
|
@ -16,7 +16,7 @@ TrivialTypeFoldableAndLiftImpls! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Terminator<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for Terminator<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -148,7 +148,7 @@ impl<'tcx> TypeFoldable<'tcx> for Terminator<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for GeneratorKind {
|
impl<'tcx> TypeFoldable<'tcx> for GeneratorKind {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ impl<'tcx> TypeFoldable<'tcx> for GeneratorKind {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Place<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for Place<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -175,7 +175,7 @@ impl<'tcx> TypeFoldable<'tcx> for Place<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<PlaceElem<'tcx>> {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<PlaceElem<'tcx>> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -188,7 +188,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<PlaceElem<'tcx>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Rvalue<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for Rvalue<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -292,7 +292,7 @@ impl<'tcx> TypeFoldable<'tcx> for Rvalue<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Operand<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for Operand<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -312,7 +312,7 @@ impl<'tcx> TypeFoldable<'tcx> for Operand<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for PlaceElem<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for PlaceElem<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -345,7 +345,7 @@ impl<'tcx> TypeFoldable<'tcx> for PlaceElem<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Field {
|
impl<'tcx> TypeFoldable<'tcx> for Field {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, _: &mut V) -> ControlFlow<V::BreakTy> {
|
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, _: &mut V) -> ControlFlow<V::BreakTy> {
|
||||||
@ -354,7 +354,7 @@ impl<'tcx> TypeFoldable<'tcx> for Field {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for GeneratorSavedLocal {
|
impl<'tcx> TypeFoldable<'tcx> for GeneratorSavedLocal {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, _: &mut V) -> ControlFlow<V::BreakTy> {
|
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, _: &mut V) -> ControlFlow<V::BreakTy> {
|
||||||
@ -363,7 +363,7 @@ impl<'tcx> TypeFoldable<'tcx> for GeneratorSavedLocal {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, R: Idx, C: Idx> TypeFoldable<'tcx> for BitMatrix<R, C> {
|
impl<'tcx, R: Idx, C: Idx> TypeFoldable<'tcx> for BitMatrix<R, C> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(self, _: &mut F) -> Result<Self, F::Error> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, _: &mut V) -> ControlFlow<V::BreakTy> {
|
fn super_visit_with<V: TypeVisitor<'tcx>>(&self, _: &mut V) -> ControlFlow<V::BreakTy> {
|
||||||
@ -372,7 +372,7 @@ impl<'tcx, R: Idx, C: Idx> TypeFoldable<'tcx> for BitMatrix<R, C> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Constant<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for Constant<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -390,11 +390,11 @@ impl<'tcx> TypeFoldable<'tcx> for Constant<'tcx> {
|
|||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ConstantKind<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ConstantKind<'tcx> {
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
folder.try_fold_mir_const(self)
|
folder.try_fold_mir_const(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
|
@ -63,12 +63,12 @@ pub trait TypeFoldable<'tcx>: fmt::Debug + Clone {
|
|||||||
self.try_fold_with(folder).into_ok()
|
self.try_fold_with(folder).into_ok()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error>;
|
) -> Result<Self, F::Error>;
|
||||||
|
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
self.try_super_fold_with(folder)
|
self.try_super_fold_with(folder)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,8 +216,8 @@ impl TypeFoldable<'tcx> for hir::Constness {
|
|||||||
///
|
///
|
||||||
/// If this folder is fallible (and therefore its [`Error`][`TypeFolder::Error`]
|
/// If this folder is fallible (and therefore its [`Error`][`TypeFolder::Error`]
|
||||||
/// associated type is something other than the default, never),
|
/// associated type is something other than the default, never),
|
||||||
/// [`TypeFolderFallible`] should be implemented manually; otherwise,
|
/// [`FallibleTypeFolder`] should be implemented manually; otherwise,
|
||||||
/// a blanket implementation of [`TypeFolderFallible`] will defer to
|
/// a blanket implementation of [`FallibleTypeFolder`] will defer to
|
||||||
/// the infallible methods of this trait to ensure that the two APIs
|
/// the infallible methods of this trait to ensure that the two APIs
|
||||||
/// are coherent.
|
/// are coherent.
|
||||||
pub trait TypeFolder<'tcx>: Sized {
|
pub trait TypeFolder<'tcx>: Sized {
|
||||||
@ -269,7 +269,7 @@ pub trait TypeFolder<'tcx>: Sized {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The `TypeFolderFallible` trait defines the actual *folding*. There is a
|
/// The `FallibleTypeFolder` trait defines the actual *folding*. There is a
|
||||||
/// method defined for every foldable type. Each of these has a
|
/// method defined for every foldable type. Each of these has a
|
||||||
/// default implementation that does an "identity" fold. Within each
|
/// default implementation that does an "identity" fold. Within each
|
||||||
/// identity fold, it should invoke `foo.try_fold_with(self)` to fold each
|
/// identity fold, it should invoke `foo.try_fold_with(self)` to fold each
|
||||||
@ -278,7 +278,7 @@ pub trait TypeFolder<'tcx>: Sized {
|
|||||||
/// A blanket implementation of this trait (that defers to the relevant
|
/// A blanket implementation of this trait (that defers to the relevant
|
||||||
/// method of [`TypeFolder`]) is provided for all infallible folders in
|
/// method of [`TypeFolder`]) is provided for all infallible folders in
|
||||||
/// order to ensure the two APIs are coherent.
|
/// order to ensure the two APIs are coherent.
|
||||||
pub trait TypeFolderFallible<'tcx>: TypeFolder<'tcx> {
|
pub trait FallibleTypeFolder<'tcx>: TypeFolder<'tcx> {
|
||||||
fn try_fold_binder<T>(&mut self, t: Binder<'tcx, T>) -> Result<Binder<'tcx, T>, Self::Error>
|
fn try_fold_binder<T>(&mut self, t: Binder<'tcx, T>) -> Result<Binder<'tcx, T>, Self::Error>
|
||||||
where
|
where
|
||||||
T: TypeFoldable<'tcx>,
|
T: TypeFoldable<'tcx>,
|
||||||
@ -318,7 +318,7 @@ pub trait TypeFolderFallible<'tcx>: TypeFolder<'tcx> {
|
|||||||
|
|
||||||
// Blanket implementation of fallible trait for infallible folders
|
// Blanket implementation of fallible trait for infallible folders
|
||||||
// delegates to infallible methods to prevent incoherence
|
// delegates to infallible methods to prevent incoherence
|
||||||
impl<'tcx, F> TypeFolderFallible<'tcx> for F
|
impl<'tcx, F> FallibleTypeFolder<'tcx> for F
|
||||||
where
|
where
|
||||||
F: TypeFolder<'tcx, Error = !>,
|
F: TypeFolder<'tcx, Error = !>,
|
||||||
{
|
{
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
//!
|
//!
|
||||||
//! ["The `ty` module: representing types"]: https://rustc-dev-guide.rust-lang.org/ty.html
|
//! ["The `ty` module: representing types"]: https://rustc-dev-guide.rust-lang.org/ty.html
|
||||||
|
|
||||||
pub use self::fold::{TypeFoldable, TypeFolder, TypeFolderFallible, TypeVisitor};
|
pub use self::fold::{FallibleTypeFolder, TypeFoldable, TypeFolder, TypeVisitor};
|
||||||
pub use self::AssocItemContainer::*;
|
pub use self::AssocItemContainer::*;
|
||||||
pub use self::BorrowKind::*;
|
pub use self::BorrowKind::*;
|
||||||
pub use self::IntVarValue::*;
|
pub use self::IntVarValue::*;
|
||||||
@ -1269,7 +1269,7 @@ impl<'a, 'tcx> HashStable<StableHashingContext<'a>> for ParamEnv<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ParamEnv<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ParamEnv<'tcx> {
|
||||||
fn try_super_fold_with<F: ty::fold::TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: ty::fold::FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
use crate::mir::interpret;
|
use crate::mir::interpret;
|
||||||
use crate::mir::ProjectionKind;
|
use crate::mir::ProjectionKind;
|
||||||
use crate::ty::fold::{TypeFoldable, TypeFolderFallible, TypeVisitor};
|
use crate::ty::fold::{FallibleTypeFolder, TypeFoldable, TypeVisitor};
|
||||||
use crate::ty::print::{with_no_trimmed_paths, FmtPrinter, Printer};
|
use crate::ty::print::{with_no_trimmed_paths, FmtPrinter, Printer};
|
||||||
use crate::ty::{self, InferConst, Lift, Ty, TyCtxt};
|
use crate::ty::{self, InferConst, Lift, Ty, TyCtxt};
|
||||||
use rustc_data_structures::functor::IdFunctor;
|
use rustc_data_structures::functor::IdFunctor;
|
||||||
@ -669,7 +669,7 @@ impl<'a, 'tcx> Lift<'tcx> for ty::InstanceDef<'a> {
|
|||||||
|
|
||||||
/// AdtDefs are basically the same as a DefId.
|
/// AdtDefs are basically the same as a DefId.
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::AdtDef {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::AdtDef {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
_folder: &mut F,
|
_folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -682,7 +682,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::AdtDef {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>, U: TypeFoldable<'tcx>> TypeFoldable<'tcx> for (T, U) {
|
impl<'tcx, T: TypeFoldable<'tcx>, U: TypeFoldable<'tcx>> TypeFoldable<'tcx> for (T, U) {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<(T, U), F::Error> {
|
) -> Result<(T, U), F::Error> {
|
||||||
@ -698,7 +698,7 @@ impl<'tcx, T: TypeFoldable<'tcx>, U: TypeFoldable<'tcx>> TypeFoldable<'tcx> for
|
|||||||
impl<'tcx, A: TypeFoldable<'tcx>, B: TypeFoldable<'tcx>, C: TypeFoldable<'tcx>> TypeFoldable<'tcx>
|
impl<'tcx, A: TypeFoldable<'tcx>, B: TypeFoldable<'tcx>, C: TypeFoldable<'tcx>> TypeFoldable<'tcx>
|
||||||
for (A, B, C)
|
for (A, B, C)
|
||||||
{
|
{
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<(A, B, C), F::Error> {
|
) -> Result<(A, B, C), F::Error> {
|
||||||
@ -731,7 +731,7 @@ EnumTypeFoldableImpl! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Rc<T> {
|
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Rc<T> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -745,7 +745,7 @@ impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Rc<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Arc<T> {
|
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Arc<T> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -759,7 +759,7 @@ impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Arc<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<T> {
|
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<T> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -772,7 +772,7 @@ impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Vec<T> {
|
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Vec<T> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -785,7 +785,7 @@ impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Vec<T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<[T]> {
|
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<[T]> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -798,14 +798,14 @@ impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for Box<[T]> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for ty::Binder<'tcx, T> {
|
impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for ty::Binder<'tcx, T> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
self.try_map_bound(|ty| ty.try_fold_with(folder))
|
self.try_map_bound(|ty| ty.try_fold_with(folder))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
folder.try_fold_binder(self)
|
folder.try_fold_binder(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -819,7 +819,7 @@ impl<'tcx, T: TypeFoldable<'tcx>> TypeFoldable<'tcx> for ty::Binder<'tcx, T> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ty::Binder<'tcx, ty::ExistentialPredicate<'tcx>>> {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ty::Binder<'tcx, ty::ExistentialPredicate<'tcx>>> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -832,7 +832,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ty::Binder<'tcx, ty::Existentia
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<Ty<'tcx>> {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<Ty<'tcx>> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -845,7 +845,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<Ty<'tcx>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ProjectionKind> {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ProjectionKind> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -858,7 +858,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ProjectionKind> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ty::instance::Instance<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ty::instance::Instance<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -909,7 +909,7 @@ impl<'tcx> TypeFoldable<'tcx> for ty::instance::Instance<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for interpret::GlobalId<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for interpret::GlobalId<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -922,7 +922,7 @@ impl<'tcx> TypeFoldable<'tcx> for interpret::GlobalId<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for Ty<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for Ty<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -966,7 +966,7 @@ impl<'tcx> TypeFoldable<'tcx> for Ty<'tcx> {
|
|||||||
Ok(if *self.kind() == kind { self } else { folder.tcx().mk_ty(kind) })
|
Ok(if *self.kind() == kind { self } else { folder.tcx().mk_ty(kind) })
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
folder.try_fold_ty(self)
|
folder.try_fold_ty(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1018,14 +1018,14 @@ impl<'tcx> TypeFoldable<'tcx> for Ty<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ty::Region<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ty::Region<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
_folder: &mut F,
|
_folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
Ok(self)
|
Ok(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
folder.try_fold_region(self)
|
folder.try_fold_region(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1039,11 +1039,11 @@ impl<'tcx> TypeFoldable<'tcx> for ty::Region<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ty::Predicate<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ty::Predicate<'tcx> {
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
folder.try_fold_predicate(self)
|
folder.try_fold_predicate(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1069,7 +1069,7 @@ impl<'tcx> TypeFoldable<'tcx> for ty::Predicate<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ty::Predicate<'tcx>> {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ty::Predicate<'tcx>> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1082,7 +1082,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::List<ty::Predicate<'tcx>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx, T: TypeFoldable<'tcx>, I: Idx> TypeFoldable<'tcx> for IndexVec<I, T> {
|
impl<'tcx, T: TypeFoldable<'tcx>, I: Idx> TypeFoldable<'tcx> for IndexVec<I, T> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1095,7 +1095,7 @@ impl<'tcx, T: TypeFoldable<'tcx>, I: Idx> TypeFoldable<'tcx> for IndexVec<I, T>
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::Const<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::Const<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1108,7 +1108,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::Const<'tcx> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn try_fold_with<F: TypeFolderFallible<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
fn try_fold_with<F: FallibleTypeFolder<'tcx>>(self, folder: &mut F) -> Result<Self, F::Error> {
|
||||||
folder.try_fold_const(self)
|
folder.try_fold_const(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1123,7 +1123,7 @@ impl<'tcx> TypeFoldable<'tcx> for &'tcx ty::Const<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ty::ConstKind<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ty::ConstKind<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1152,7 +1152,7 @@ impl<'tcx> TypeFoldable<'tcx> for ty::ConstKind<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for InferConst<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for InferConst<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
_folder: &mut F,
|
_folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1165,7 +1165,7 @@ impl<'tcx> TypeFoldable<'tcx> for InferConst<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -1193,7 +1193,7 @@ impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx, ()> {
|
impl<'tcx> TypeFoldable<'tcx> for ty::Unevaluated<'tcx, ()> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
use crate::mir;
|
use crate::mir;
|
||||||
use crate::ty::codec::{TyDecoder, TyEncoder};
|
use crate::ty::codec::{TyDecoder, TyEncoder};
|
||||||
use crate::ty::fold::{TypeFoldable, TypeFolder, TypeFolderFallible, TypeVisitor};
|
use crate::ty::fold::{FallibleTypeFolder, TypeFoldable, TypeFolder, TypeVisitor};
|
||||||
use crate::ty::sty::{ClosureSubsts, GeneratorSubsts, InlineConstSubsts};
|
use crate::ty::sty::{ClosureSubsts, GeneratorSubsts, InlineConstSubsts};
|
||||||
use crate::ty::{self, Lift, List, ParamConst, Ty, TyCtxt};
|
use crate::ty::{self, Lift, List, ParamConst, Ty, TyCtxt};
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ impl<'a, 'tcx> Lift<'tcx> for GenericArg<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for GenericArg<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for GenericArg<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
@ -375,7 +375,7 @@ impl<'a, 'tcx> InternalSubsts<'tcx> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'tcx> TypeFoldable<'tcx> for SubstsRef<'tcx> {
|
impl<'tcx> TypeFoldable<'tcx> for SubstsRef<'tcx> {
|
||||||
fn try_super_fold_with<F: TypeFolderFallible<'tcx>>(
|
fn try_super_fold_with<F: FallibleTypeFolder<'tcx>>(
|
||||||
self,
|
self,
|
||||||
folder: &mut F,
|
folder: &mut F,
|
||||||
) -> Result<Self, F::Error> {
|
) -> Result<Self, F::Error> {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//! Miscellaneous type-system utilities that are too small to deserve their own modules.
|
//! Miscellaneous type-system utilities that are too small to deserve their own modules.
|
||||||
|
|
||||||
use crate::middle::codegen_fn_attrs::CodegenFnAttrFlags;
|
use crate::middle::codegen_fn_attrs::CodegenFnAttrFlags;
|
||||||
use crate::ty::fold::{TypeFolder, TypeFolderFallible};
|
use crate::ty::fold::{FallibleTypeFolder, TypeFolder};
|
||||||
use crate::ty::layout::IntegerExt;
|
use crate::ty::layout::IntegerExt;
|
||||||
use crate::ty::query::TyCtxtAt;
|
use crate::ty::query::TyCtxtAt;
|
||||||
use crate::ty::subst::{GenericArgKind, Subst, SubstsRef};
|
use crate::ty::subst::{GenericArgKind, Subst, SubstsRef};
|
||||||
@ -1048,7 +1048,7 @@ pub fn fold_list<'tcx, F, T>(
|
|||||||
intern: impl FnOnce(TyCtxt<'tcx>, &[T]) -> &'tcx ty::List<T>,
|
intern: impl FnOnce(TyCtxt<'tcx>, &[T]) -> &'tcx ty::List<T>,
|
||||||
) -> Result<&'tcx ty::List<T>, F::Error>
|
) -> Result<&'tcx ty::List<T>, F::Error>
|
||||||
where
|
where
|
||||||
F: TypeFolderFallible<'tcx>,
|
F: FallibleTypeFolder<'tcx>,
|
||||||
T: TypeFoldable<'tcx> + PartialEq + Copy,
|
T: TypeFoldable<'tcx> + PartialEq + Copy,
|
||||||
{
|
{
|
||||||
let mut iter = list.iter();
|
let mut iter = list.iter();
|
||||||
|
@ -12,7 +12,7 @@ use rustc_data_structures::sso::SsoHashMap;
|
|||||||
use rustc_data_structures::stack::ensure_sufficient_stack;
|
use rustc_data_structures::stack::ensure_sufficient_stack;
|
||||||
use rustc_infer::traits::Normalized;
|
use rustc_infer::traits::Normalized;
|
||||||
use rustc_middle::mir;
|
use rustc_middle::mir;
|
||||||
use rustc_middle::ty::fold::{TypeFoldable, TypeFolder, TypeFolderFallible};
|
use rustc_middle::ty::fold::{FallibleTypeFolder, TypeFoldable, TypeFolder};
|
||||||
use rustc_middle::ty::subst::Subst;
|
use rustc_middle::ty::subst::Subst;
|
||||||
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitor};
|
use rustc_middle::ty::{self, Ty, TyCtxt, TypeVisitor};
|
||||||
|
|
||||||
@ -178,7 +178,7 @@ impl<'cx, 'tcx> TypeFolder<'tcx> for QueryNormalizer<'cx, 'tcx> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'cx, 'tcx> TypeFolderFallible<'tcx> for QueryNormalizer<'cx, 'tcx> {
|
impl<'cx, 'tcx> FallibleTypeFolder<'tcx> for QueryNormalizer<'cx, 'tcx> {
|
||||||
fn try_fold_binder<T: TypeFoldable<'tcx>>(
|
fn try_fold_binder<T: TypeFoldable<'tcx>>(
|
||||||
&mut self,
|
&mut self,
|
||||||
t: ty::Binder<'tcx, T>,
|
t: ty::Binder<'tcx, T>,
|
||||||
|
Loading…
Reference in New Issue
Block a user