about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_mir_build/src/lints.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/rustc_mir_build/src/lints.rs b/compiler/rustc_mir_build/src/lints.rs
index bdef02a011b..b588bc1ad83 100644
--- a/compiler/rustc_mir_build/src/lints.rs
+++ b/compiler/rustc_mir_build/src/lints.rs
@@ -71,11 +71,12 @@ impl<'mir, 'tcx> Search<'mir, 'tcx> {
 
         let func_ty = func.ty(body, tcx);
         if let ty::FnDef(callee, substs) = *func_ty.kind() {
+            let normalized_substs = tcx.normalize_erasing_regions(param_env, substs);
             let (callee, call_substs) =
-                if let Ok(Some(instance)) = Instance::resolve(tcx, param_env, callee, substs) {
+                if let Ok(Some(instance)) = Instance::resolve(tcx, param_env, callee, normalized_substs) {
                     (instance.def_id(), instance.substs)
                 } else {
-                    (callee, substs)
+                    (callee, normalized_substs)
                 };
 
             // FIXME(#57965): Make this work across function boundaries