aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/body/lower.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/body/lower.rs')
-rw-r--r--crates/ra_hir_def/src/body/lower.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/crates/ra_hir_def/src/body/lower.rs b/crates/ra_hir_def/src/body/lower.rs
index e7cf80676..bbde0b802 100644
--- a/crates/ra_hir_def/src/body/lower.rs
+++ b/crates/ra_hir_def/src/body/lower.rs
@@ -564,12 +564,14 @@ impl ExprCollector<'_> {
564 }); 564 });
565 let tree = &self.item_trees[index].1; 565 let tree = &self.item_trees[index].1;
566 566
567 // FIXME: This probably breaks with `use` items, since they produce multiple item tree nodes
568
567 // Root file (non-macro). 569 // Root file (non-macro).
568 tree.all_inner_items() 570 tree.all_inner_items()
569 .chain(tree.top_level_items().iter().copied()) 571 .chain(tree.top_level_items().iter().copied())
570 .filter_map(|mod_item| mod_item.downcast::<S>()) 572 .filter_map(|mod_item| mod_item.downcast::<S>())
571 .find(|tree_id| tree[*tree_id].ast_id().upcast() == id.value) 573 .find(|tree_id| tree[*tree_id].ast_id().upcast() == id.value)
572 .unwrap() 574 .unwrap_or_else(|| panic!("couldn't find inner item for {:?}", id))
573 } 575 }
574 576
575 fn collect_expr_opt(&mut self, expr: Option<ast::Expr>) -> ExprId { 577 fn collect_expr_opt(&mut self, expr: Option<ast::Expr>) -> ExprId {