about summary refs log tree commit diff
path: root/compiler/rustc_middle
diff options
context:
space:
mode:
authorBryanskiy <ivakin.kir@gmail.com>2024-07-31 18:58:04 +0300
committerBryanskiy <ivakin.kir@gmail.com>2024-07-31 18:58:04 +0300
commit9b097b2d44a8f953640ba42122a804485d651ea9 (patch)
tree41b120822b815330e0b22e38d145b36e3f04e3f7 /compiler/rustc_middle
parent595316b4006932405a63862d8fe65f71a6356293 (diff)
downloadrust-9b097b2d44a8f953640ba42122a804485d651ea9.tar.gz
rust-9b097b2d44a8f953640ba42122a804485d651ea9.zip
Delegation: second attempt to improve perf
Diffstat (limited to 'compiler/rustc_middle')
-rw-r--r--compiler/rustc_middle/src/hir/map/mod.rs13
1 files changed, 1 insertions, 12 deletions
diff --git a/compiler/rustc_middle/src/hir/map/mod.rs b/compiler/rustc_middle/src/hir/map/mod.rs
index 1705c016437..4c243e6330b 100644
--- a/compiler/rustc_middle/src/hir/map/mod.rs
+++ b/compiler/rustc_middle/src/hir/map/mod.rs
@@ -747,18 +747,7 @@ impl<'hir> Map<'hir> {
     }
 
     pub fn opt_delegation_sig_id(self, def_id: LocalDefId) -> Option<DefId> {
-        if let Some(ret) = self.get_fn_output(def_id)
-            && let FnRetTy::Return(ty) = ret
-            && let TyKind::InferDelegation(sig_id, _) = ty.kind
-        {
-            return Some(sig_id);
-        }
-        None
-    }
-
-    #[inline]
-    pub fn delegation_sig_id(self, def_id: LocalDefId) -> DefId {
-        self.opt_delegation_sig_id(def_id).unwrap()
+        self.tcx.opt_hir_owner_node(def_id)?.fn_decl()?.opt_delegation_sig_id()
     }
 
     #[inline]