Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/lib.rs')
-rw-r--r--crates/hir/src/lib.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index d187763151..3b0fbc3e40 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -2283,6 +2283,14 @@ impl fmt::Debug for Function {
}
impl Function {
+ pub fn lang(db: &dyn HirDatabase, krate: Crate, lang_item: LangItem) -> Option<Function> {
+ let lang_items = hir_def::lang_item::lang_items(db, krate.id);
+ match lang_item.from_lang_items(lang_items)? {
+ LangItemTarget::FunctionId(it) => Some(it.into()),
+ _ => None,
+ }
+ }
+
pub fn module(self, db: &dyn HirDatabase) -> Module {
match self.id {
AnyFunctionId::FunctionId(id) => id.module(db).into(),