aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/lib.rs')
-rw-r--r--crates/ra_hir/src/lib.rs14
1 files changed, 9 insertions, 5 deletions
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs
index 760524f6b..5941a9ea3 100644
--- a/crates/ra_hir/src/lib.rs
+++ b/crates/ra_hir/src/lib.rs
@@ -109,7 +109,8 @@ pub(crate) type SourceFileItemId = Id<SyntaxNode>;
109#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 109#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
110pub struct SourceItemId { 110pub struct SourceItemId {
111 file_id: FileId, 111 file_id: FileId,
112 item_id: SourceFileItemId, 112 /// None for the whole file.
113 item_id: Option<SourceFileItemId>,
113} 114}
114 115
115/// Maps item's `SyntaxNode`s to `SourceFileItemId` and back. 116/// Maps item's `SyntaxNode`s to `SourceFileItemId` and back.
@@ -143,11 +144,14 @@ impl SourceFileItems {
143 return id; 144 return id;
144 } 145 }
145 // This should not happen. Let's try to give a sensible diagnostics. 146 // This should not happen. Let's try to give a sensible diagnostics.
146 if let Some((_, i)) = self.arena.iter().find(|(_id, i)| i.range() == item.range()) { 147 if let Some((id, i)) = self.arena.iter().find(|(_id, i)| i.range() == item.range()) {
147 panic!( 148 // FIXME(#288): whyyy are we getting here?
149 log::error!(
148 "unequal syntax nodes with the same range:\n{:?}\n{:?}", 150 "unequal syntax nodes with the same range:\n{:?}\n{:?}",
149 item, i 151 item,
150 ) 152 i
153 );
154 return id;
151 } 155 }
152 panic!( 156 panic!(
153 "Can't find {:?} in SourceFileItems:\n{:?}", 157 "Can't find {:?} in SourceFileItems:\n{:?}",