Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir_def/src/item_tree.rs')
| -rw-r--r-- | crates/hir_def/src/item_tree.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/crates/hir_def/src/item_tree.rs b/crates/hir_def/src/item_tree.rs index aafda49693..45b374f338 100644 --- a/crates/hir_def/src/item_tree.rs +++ b/crates/hir_def/src/item_tree.rs @@ -56,6 +56,7 @@ use la_arena::{Arena, Idx, IdxRange, RawIdx}; use profile::Count; use rustc_hash::FxHashMap; use smallvec::SmallVec; +use stdx::never; use syntax::{ast, match_ast, SyntaxKind}; use crate::{ @@ -109,18 +110,17 @@ impl ItemTree { Some(node) => node, None => return Default::default(), }; - if syntax.kind() == SyntaxKind::ERROR { + if never!(syntax.kind() == SyntaxKind::ERROR) { // FIXME: not 100% sure why these crop up, but return an empty tree to avoid a panic return Default::default(); } - let hygiene = Hygiene::new(db.upcast(), file_id); - let ctx = lower::Ctx::new(db, hygiene.clone(), file_id); + let ctx = lower::Ctx::new(db, file_id); let mut top_attrs = None; let mut item_tree = match_ast! { match syntax { ast::SourceFile(file) => { - top_attrs = Some(RawAttrs::new(db, &file, &hygiene)); + top_attrs = Some(RawAttrs::new(db, &file, ctx.hygiene())); ctx.lower_module_items(&file) }, ast::MacroItems(items) => { @@ -147,8 +147,7 @@ impl ItemTree { fn block_item_tree(db: &dyn DefDatabase, block: BlockId) -> Arc<ItemTree> { let loc = db.lookup_intern_block(block); let block = loc.ast_id.to_node(db.upcast()); - let hygiene = Hygiene::new(db.upcast(), loc.ast_id.file_id); - let ctx = lower::Ctx::new(db, hygiene, loc.ast_id.file_id); + let ctx = lower::Ctx::new(db, loc.ast_id.file_id); Arc::new(ctx.lower_block(&block)) } |