about summary refs log tree commit diff
path: root/compiler/rustc_infer/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2025-05-24 17:24:55 +0000
committerMichael Goulet <michael@errs.io>2025-05-25 14:12:17 +0000
commit84a3255cc309c9c25e8ed2c16435bb882f364e96 (patch)
tree02a9495515e18f972a22f38034ee4bccc1cbdcca /compiler/rustc_infer/src
parentaa57e46e24a4a08cc336325e92567b40b0c2ba62 (diff)
downloadrust-84a3255cc309c9c25e8ed2c16435bb882f364e96.tar.gz
rust-84a3255cc309c9c25e8ed2c16435bb882f364e96.zip
Fast path fold_predicate in old canonicalizer
Diffstat (limited to 'compiler/rustc_infer/src')
-rw-r--r--compiler/rustc_infer/src/infer/canonical/canonicalizer.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs b/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs
index 26ecaebe97f..0b543f091f7 100644
--- a/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs
+++ b/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs
@@ -493,6 +493,10 @@ impl<'cx, 'tcx> TypeFolder<TyCtxt<'tcx>> for Canonicalizer<'cx, 'tcx> {
             ct
         }
     }
+
+    fn fold_predicate(&mut self, p: ty::Predicate<'tcx>) -> ty::Predicate<'tcx> {
+        if p.flags().intersects(self.needs_canonical_flags) { p.super_fold_with(self) } else { p }
+    }
 }
 
 impl<'cx, 'tcx> Canonicalizer<'cx, 'tcx> {