From b7be2b1d3cc2fd8ca8e7aa7542aaf9d4f905f9f5 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Mon, 1 Feb 2021 13:19:55 +0100 Subject: Use block_def_map in body lowering --- crates/hir_def/src/item_tree.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'crates/hir_def/src/item_tree.rs') diff --git a/crates/hir_def/src/item_tree.rs b/crates/hir_def/src/item_tree.rs index 42d9f0947..4bde67649 100644 --- a/crates/hir_def/src/item_tree.rs +++ b/crates/hir_def/src/item_tree.rs @@ -24,7 +24,7 @@ use la_arena::{Arena, Idx, RawIdx}; use profile::Count; use rustc_hash::FxHashMap; use smallvec::SmallVec; -use syntax::{ast, match_ast}; +use syntax::{ast, match_ast, SyntaxKind}; use test_utils::mark; use crate::{ @@ -80,6 +80,10 @@ impl ItemTree { pub(crate) fn item_tree_query(db: &dyn DefDatabase, file_id: HirFileId) -> Arc { let _p = profile::span("item_tree_query").detail(|| format!("{:?}", file_id)); let syntax = if let Some(node) = db.parse_or_expand(file_id) { + if node.kind() == SyntaxKind::ERROR { + // FIXME: not 100% sure why these crop up, but return an empty tree to avoid a panic + return Default::default(); + } node } else { return Default::default(); -- cgit v1.2.3