diff options
| author | Michael Goulet <michael@errs.io> | 2025-04-13 22:43:16 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2025-04-14 14:47:59 +0000 |
| commit | 13b4734e3102b4fd5ad99b98a8cc46744faf5d68 (patch) | |
| tree | 09834e49d8583019cacdfd22199aedffd2fb1773 /compiler/rustc_infer/src/traits/structural_impls.rs | |
| parent | c580c498a1fe144d7c5b2dfc7faab1a229aa288b (diff) | |
| download | rust-13b4734e3102b4fd5ad99b98a8cc46744faf5d68.tar.gz rust-13b4734e3102b4fd5ad99b98a8cc46744faf5d68.zip | |
Derive Obligation's fold impls
Diffstat (limited to 'compiler/rustc_infer/src/traits/structural_impls.rs')
| -rw-r--r-- | compiler/rustc_infer/src/traits/structural_impls.rs | 32 |
1 files changed, 1 insertions, 31 deletions
diff --git a/compiler/rustc_infer/src/traits/structural_impls.rs b/compiler/rustc_infer/src/traits/structural_impls.rs index 4335073d9bc..03661ebf7ec 100644 --- a/compiler/rustc_infer/src/traits/structural_impls.rs +++ b/compiler/rustc_infer/src/traits/structural_impls.rs @@ -1,8 +1,6 @@ use std::fmt; -use rustc_middle::ty::{ - self, FallibleTypeFolder, TyCtxt, TypeFoldable, TypeVisitable, TypeVisitor, try_visit, -}; +use rustc_middle::ty; use crate::traits; use crate::traits::project::Normalized; @@ -34,31 +32,3 @@ impl<'tcx> fmt::Debug for traits::MismatchedProjectionTypes<'tcx> { write!(f, "MismatchedProjectionTypes({:?})", self.err) } } - -/////////////////////////////////////////////////////////////////////////// -// TypeFoldable implementations. - -impl<'tcx, O: TypeFoldable<TyCtxt<'tcx>>> TypeFoldable<TyCtxt<'tcx>> - for traits::Obligation<'tcx, O> -{ - fn try_fold_with<F: FallibleTypeFolder<TyCtxt<'tcx>>>( - self, - folder: &mut F, - ) -> Result<Self, F::Error> { - Ok(traits::Obligation { - cause: self.cause, - recursion_depth: self.recursion_depth, - predicate: self.predicate.try_fold_with(folder)?, - param_env: self.param_env.try_fold_with(folder)?, - }) - } -} - -impl<'tcx, O: TypeVisitable<TyCtxt<'tcx>>> TypeVisitable<TyCtxt<'tcx>> - for traits::Obligation<'tcx, O> -{ - fn visit_with<V: TypeVisitor<TyCtxt<'tcx>>>(&self, visitor: &mut V) -> V::Result { - try_visit!(self.predicate.visit_with(visitor)); - self.param_env.visit_with(visitor) - } -} |
