about summary refs log tree commit diff
path: root/compiler/rustc_ty_utils/src/instance.rs
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2024-01-19 20:04:14 +0000
committerMichael Goulet <michael@errs.io>2024-01-22 16:50:30 +0000
commitf700ee4e709abb2243acd0fb8b9928160896c2bd (patch)
treed06c504a8d2be6182384b2bc0f0cd8d9ed57bccf /compiler/rustc_ty_utils/src/instance.rs
parent30662530506ed29ea29191798cb2ab8aa1249023 (diff)
downloadrust-f700ee4e709abb2243acd0fb8b9928160896c2bd.tar.gz
rust-f700ee4e709abb2243acd0fb8b9928160896c2bd.zip
Do not normalize closure signature when building FnOnce shim
Diffstat (limited to 'compiler/rustc_ty_utils/src/instance.rs')
-rw-r--r--compiler/rustc_ty_utils/src/instance.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/rustc_ty_utils/src/instance.rs b/compiler/rustc_ty_utils/src/instance.rs
index 81d5304b812..18eb5314e89 100644
--- a/compiler/rustc_ty_utils/src/instance.rs
+++ b/compiler/rustc_ty_utils/src/instance.rs
@@ -322,7 +322,12 @@ fn resolve_associated_item<'tcx>(
                 match *rcvr_args.type_at(0).kind() {
                     ty::Closure(closure_def_id, args) => {
                         let trait_closure_kind = tcx.fn_trait_kind_from_def_id(trait_id).unwrap();
-                        Instance::resolve_closure(tcx, closure_def_id, args, trait_closure_kind)
+                        Some(Instance::resolve_closure(
+                            tcx,
+                            closure_def_id,
+                            args,
+                            trait_closure_kind,
+                        ))
                     }
                     ty::FnDef(..) | ty::FnPtr(..) => Some(Instance {
                         def: ty::InstanceDef::FnPtrShim(trait_item_id, rcvr_args.type_at(0)),