about summary refs log tree commit diff
path: root/compiler/rustc_middle/src/ty/generics.rs
diff options
context:
space:
mode:
authorVeera <sveera.2001@gmail.com>2024-02-22 21:37:11 -0500
committerVeera <sveera.2001@gmail.com>2024-02-28 19:28:34 -0500
commit3ba50b36e7a20036c7b2c47ab551508b923b0004 (patch)
tree7f1c75fee00e48b2716087167039ea8988a52321 /compiler/rustc_middle/src/ty/generics.rs
parent49961947c8a830fc1d5d4ecc5916267a7e4bb6b0 (diff)
downloadrust-3ba50b36e7a20036c7b2c47ab551508b923b0004.tar.gz
rust-3ba50b36e7a20036c7b2c47ab551508b923b0004.zip
Avoid code duplication
Diffstat (limited to 'compiler/rustc_middle/src/ty/generics.rs')
-rw-r--r--compiler/rustc_middle/src/ty/generics.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/compiler/rustc_middle/src/ty/generics.rs b/compiler/rustc_middle/src/ty/generics.rs
index 4f75b7b42fb..2630b96869b 100644
--- a/compiler/rustc_middle/src/ty/generics.rs
+++ b/compiler/rustc_middle/src/ty/generics.rs
@@ -372,17 +372,14 @@ impl<'tcx> Generics {
     ) -> bool {
         let mut default_param_seen = false;
         for param in self.params.iter() {
-            if param
-                .default_value(tcx)
-                .is_some_and(|default| default.instantiate(tcx, args) == args[param.index as usize])
+            if let Some(inst) =
+                param.default_value(tcx).map(|default| default.instantiate(tcx, args))
             {
-                default_param_seen = true;
-            } else if default_param_seen
-                && param.default_value(tcx).is_some_and(|default| {
-                    default.instantiate(tcx, args) != args[param.index as usize]
-                })
-            {
-                return true;
+                if inst == args[param.index as usize] {
+                    default_param_seen = true;
+                } else if default_param_seen {
+                    return true;
+                }
             }
         }
         false