From 13f30e9ef5f3d78fdaef450e935782a2edd9f88e Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Thu, 18 Mar 2021 19:39:40 +0800 Subject: Handle inner recursive macro rules cases --- crates/hir_def/src/item_tree/lower.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'crates/hir_def/src/item_tree/lower.rs') diff --git a/crates/hir_def/src/item_tree/lower.rs b/crates/hir_def/src/item_tree/lower.rs index 7e91b991d..d684b89d0 100644 --- a/crates/hir_def/src/item_tree/lower.rs +++ b/crates/hir_def/src/item_tree/lower.rs @@ -87,6 +87,14 @@ impl Ctx { self.tree } + pub(super) fn lower_single_item(mut self, item: ast::Item) -> ItemTree { + self.tree.top_level = self + .lower_mod_item(&item, false) + .map(|item| item.0) + .unwrap_or_else(|| Default::default()); + self.tree + } + pub(super) fn lower_inner_items(mut self, within: &SyntaxNode) -> ItemTree { self.collect_inner_items(within); self.tree -- cgit v1.2.3