about summary refs log tree commit diff
path: root/compiler/rustc_middle/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2022-07-13 05:39:01 +0000
committerMichael Goulet <michael@errs.io>2022-07-14 23:36:46 +0000
commitd25abdc0c52cc08cdd290be325f1be04f3cea548 (patch)
treec439ec566cdce1199ad5d9c8946ff2c791ae4d11 /compiler/rustc_middle/src
parentddb7003b7950a6df815d1f03ea6eca9f4cc2a408 (diff)
downloadrust-d25abdc0c52cc08cdd290be325f1be04f3cea548.tar.gz
rust-d25abdc0c52cc08cdd290be325f1be04f3cea548.zip
Point out custom Fn-family trait impl
Diffstat (limited to 'compiler/rustc_middle/src')
-rw-r--r--compiler/rustc_middle/src/ty/closure.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/ty/closure.rs b/compiler/rustc_middle/src/ty/closure.rs
index f5ce43f3afb..8ead0512274 100644
--- a/compiler/rustc_middle/src/ty/closure.rs
+++ b/compiler/rustc_middle/src/ty/closure.rs
@@ -128,6 +128,14 @@ impl<'tcx> ClosureKind {
             None
         }
     }
+
+    pub fn to_def_id(&self, tcx: TyCtxt<'_>) -> DefId {
+        match self {
+            ClosureKind::Fn => tcx.lang_items().fn_once_trait().unwrap(),
+            ClosureKind::FnMut => tcx.lang_items().fn_mut_trait().unwrap(),
+            ClosureKind::FnOnce => tcx.lang_items().fn_trait().unwrap(),
+        }
+    }
 }
 
 /// A composite describing a `Place` that is captured by a closure.