Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_expand/src/lib.rs')
| -rw-r--r-- | crates/hir_expand/src/lib.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/crates/hir_expand/src/lib.rs b/crates/hir_expand/src/lib.rs index de32d02415..1fc74cb3b0 100644 --- a/crates/hir_expand/src/lib.rs +++ b/crates/hir_expand/src/lib.rs @@ -175,6 +175,19 @@ impl HirFileId { } } + pub fn is_custom_derive(&self, db: &dyn db::AstDatabase) -> bool { + match self.0 { + HirFileIdRepr::FileId(_) => false, + HirFileIdRepr::MacroFile(macro_file) => { + let loc: MacroCallLoc = db.lookup_intern_macro(macro_file.macro_call_id); + match loc.def.kind { + MacroDefKind::ProcMacro(_, ProcMacroKind::CustomDerive, _) => true, + _ => false, + } + } + } + } + /// Return whether this file is an include macro pub fn is_include_macro(&self, db: &dyn db::AstDatabase) -> bool { match self.0 { |