]> git.lizzy.rs Git - rust.git/commitdiff
Improve early bailout test in `resolve_vars_if_possible`.
authorNicholas Nethercote <n.nethercote@gmail.com>
Thu, 2 Feb 2023 23:15:24 +0000 (10:15 +1100)
committerNicholas Nethercote <n.nethercote@gmail.com>
Sun, 5 Feb 2023 21:52:04 +0000 (08:52 +1100)
`!t.has_non_region_infer()` is the test used in
`OpportunisticVarResolver`, and catches a few cases that
`!t.needs_infer()` misses.

compiler/rustc_infer/src/infer/mod.rs

index f39170bb2916de0802b05016d86ef28b90429659..14af720fca1f929f600719766f689fd748c7402c 100644 (file)
@@ -1389,8 +1389,8 @@ pub fn resolve_vars_if_possible<T>(&self, value: T) -> T
     where
         T: TypeFoldable<'tcx>,
     {
-        if !value.needs_infer() {
-            return value; // Avoid duplicated subst-folding.
+        if !value.has_non_region_infer() {
+            return value;
         }
         let mut r = resolve::OpportunisticVarResolver::new(self);
         value.fold_with(&mut r)