From 34dc8d25c1e461cc311d6d4404f74502513cd3ae Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Wed, 18 Mar 2020 17:47:59 +0800 Subject: Add basic custom derive lowering --- crates/ra_hir_expand/src/proc_macro.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 crates/ra_hir_expand/src/proc_macro.rs (limited to 'crates/ra_hir_expand/src/proc_macro.rs') diff --git a/crates/ra_hir_expand/src/proc_macro.rs b/crates/ra_hir_expand/src/proc_macro.rs new file mode 100644 index 000000000..68c828790 --- /dev/null +++ b/crates/ra_hir_expand/src/proc_macro.rs @@ -0,0 +1,32 @@ +//! Proc Macro Expander stub + +use crate::{db::AstDatabase, LazyMacroId, MacroCallKind, MacroCallLoc}; +use ra_db::CrateId; + +#[derive(Debug, Clone, Copy, Eq, PartialEq, Hash)] +pub struct ProcMacroExpander { + krate: CrateId, +} + +impl ProcMacroExpander { + pub fn new(krate: CrateId) -> ProcMacroExpander { + ProcMacroExpander { krate } + } + + pub fn expand( + &self, + db: &dyn AstDatabase, + id: LazyMacroId, + _tt: &tt::Subtree, + ) -> Result { + let loc: MacroCallLoc = db.lookup_intern_macro(id); + let name = match loc.kind { + MacroCallKind::FnLike(_) => return Err(mbe::ExpandError::ConversionError), + MacroCallKind::Attr(_, name) => name, + }; + + dbg!(name); + + unimplemented!() + } +} -- cgit v1.2.3