diff options
Diffstat (limited to 'crates/hir_def/src/lib.rs')
-rw-r--r-- | crates/hir_def/src/lib.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/hir_def/src/lib.rs b/crates/hir_def/src/lib.rs index 42b50b5b7..b50923747 100644 --- a/crates/hir_def/src/lib.rs +++ b/crates/hir_def/src/lib.rs | |||
@@ -81,7 +81,13 @@ pub struct ModuleId { | |||
81 | impl ModuleId { | 81 | impl ModuleId { |
82 | pub fn def_map(&self, db: &dyn db::DefDatabase) -> Arc<DefMap> { | 82 | pub fn def_map(&self, db: &dyn db::DefDatabase) -> Arc<DefMap> { |
83 | match self.block { | 83 | match self.block { |
84 | Some(block) => db.block_def_map(block), | 84 | Some(block) => { |
85 | db.block_def_map(block).unwrap_or_else(|| { | ||
86 | // NOTE: This should be unreachable - all `ModuleId`s come from their `DefMap`s, | ||
87 | // so the `DefMap` here must exist. | ||
88 | panic!("no `block_def_map` for `ModuleId` {:?}", self); | ||
89 | }) | ||
90 | } | ||
85 | None => db.crate_def_map(self.krate), | 91 | None => db.crate_def_map(self.krate), |
86 | } | 92 | } |
87 | } | 93 | } |
@@ -239,6 +245,7 @@ pub struct BlockId(salsa::InternId); | |||
239 | #[derive(Debug, Hash, PartialEq, Eq, Clone)] | 245 | #[derive(Debug, Hash, PartialEq, Eq, Clone)] |
240 | pub struct BlockLoc { | 246 | pub struct BlockLoc { |
241 | ast_id: AstId<ast::BlockExpr>, | 247 | ast_id: AstId<ast::BlockExpr>, |
248 | /// The containing module. | ||
242 | module: ModuleId, | 249 | module: ModuleId, |
243 | } | 250 | } |
244 | impl_intern!(BlockId, BlockLoc, intern_block, lookup_intern_block); | 251 | impl_intern!(BlockId, BlockLoc, intern_block, lookup_intern_block); |
@@ -655,7 +662,7 @@ impl AsMacroCall for AstIdWithPath<ast::Item> { | |||
655 | def.as_lazy_macro( | 662 | def.as_lazy_macro( |
656 | db.upcast(), | 663 | db.upcast(), |
657 | krate, | 664 | krate, |
658 | MacroCallKind::Attr(self.ast_id, self.path.segments.last()?.to_string()), | 665 | MacroCallKind::Attr(self.ast_id, self.path.segments().last()?.to_string()), |
659 | ) | 666 | ) |
660 | .into(), | 667 | .into(), |
661 | ) | 668 | ) |