aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ids.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-02-08 11:49:43 +0000
committerAleksey Kladov <[email protected]>2019-02-08 11:49:43 +0000
commit12e3b4c70b5ef23b2fdfc197296d483680e125f9 (patch)
tree71baa0e0a62f9f6b61450501c5f821f67badf9e4 /crates/ra_hir/src/ids.rs
parent5cb1d41a30d25cbe136402644bf5434dd667f1e5 (diff)
reformat the world
Diffstat (limited to 'crates/ra_hir/src/ids.rs')
-rw-r--r--crates/ra_hir/src/ids.rs34
1 files changed, 8 insertions, 26 deletions
diff --git a/crates/ra_hir/src/ids.rs b/crates/ra_hir/src/ids.rs
index 95678bf70..ea13c1196 100644
--- a/crates/ra_hir/src/ids.rs
+++ b/crates/ra_hir/src/ids.rs
@@ -169,11 +169,7 @@ impl<N: AstNode> Hash for ItemLoc<N> {
169 169
170impl<N: AstNode> Clone for ItemLoc<N> { 170impl<N: AstNode> Clone for ItemLoc<N> {
171 fn clone(&self) -> ItemLoc<N> { 171 fn clone(&self) -> ItemLoc<N> {
172 ItemLoc { 172 ItemLoc { module: self.module, raw: self.raw, _ty: PhantomData }
173 module: self.module,
174 raw: self.raw,
175 _ty: PhantomData,
176 }
177 } 173 }
178} 174}
179 175
@@ -186,11 +182,7 @@ pub(crate) struct LocationCtx<DB> {
186 182
187impl<'a, DB: PersistentHirDatabase> LocationCtx<&'a DB> { 183impl<'a, DB: PersistentHirDatabase> LocationCtx<&'a DB> {
188 pub(crate) fn new(db: &'a DB, module: Module, file_id: HirFileId) -> LocationCtx<&'a DB> { 184 pub(crate) fn new(db: &'a DB, module: Module, file_id: HirFileId) -> LocationCtx<&'a DB> {
189 LocationCtx { 185 LocationCtx { db, module, file_id }
190 db,
191 module,
192 file_id,
193 }
194 } 186 }
195 pub(crate) fn to_def<N, DEF>(self, ast: &N) -> DEF 187 pub(crate) fn to_def<N, DEF>(self, ast: &N) -> DEF
196 where 188 where
@@ -205,15 +197,9 @@ pub(crate) trait AstItemDef<N: AstNode>: ArenaId + Clone {
205 fn interner(interner: &HirInterner) -> &LocationIntener<ItemLoc<N>, Self>; 197 fn interner(interner: &HirInterner) -> &LocationIntener<ItemLoc<N>, Self>;
206 fn from_ast(ctx: LocationCtx<&impl PersistentHirDatabase>, ast: &N) -> Self { 198 fn from_ast(ctx: LocationCtx<&impl PersistentHirDatabase>, ast: &N) -> Self {
207 let items = ctx.db.file_items(ctx.file_id); 199 let items = ctx.db.file_items(ctx.file_id);
208 let raw = SourceItemId { 200 let raw =
209 file_id: ctx.file_id, 201 SourceItemId { file_id: ctx.file_id, item_id: items.id_of(ctx.file_id, ast.syntax()) };
210 item_id: items.id_of(ctx.file_id, ast.syntax()), 202 let loc = ItemLoc { module: ctx.module, raw, _ty: PhantomData };
211 };
212 let loc = ItemLoc {
213 module: ctx.module,
214 raw,
215 _ty: PhantomData,
216 };
217 203
218 Self::interner(ctx.db.as_ref()).loc2id(&loc) 204 Self::interner(ctx.db.as_ref()).loc2id(&loc)
219 } 205 }
@@ -221,9 +207,8 @@ pub(crate) trait AstItemDef<N: AstNode>: ArenaId + Clone {
221 let int = Self::interner(db.as_ref()); 207 let int = Self::interner(db.as_ref());
222 let loc = int.id2loc(self); 208 let loc = int.id2loc(self);
223 let syntax = db.file_item(loc.raw); 209 let syntax = db.file_item(loc.raw);
224 let ast = N::cast(&syntax) 210 let ast =
225 .unwrap_or_else(|| panic!("invalid ItemLoc: {:?}", loc.raw)) 211 N::cast(&syntax).unwrap_or_else(|| panic!("invalid ItemLoc: {:?}", loc.raw)).to_owned();
226 .to_owned();
227 (loc.raw.file_id, ast) 212 (loc.raw.file_id, ast)
228 } 213 }
229 fn module(self, db: &impl HirDatabase) -> Module { 214 fn module(self, db: &impl HirDatabase) -> Module {
@@ -317,10 +302,7 @@ pub struct SourceFileItems {
317 302
318impl SourceFileItems { 303impl SourceFileItems {
319 pub(crate) fn new(file_id: HirFileId, source_file: &SourceFile) -> SourceFileItems { 304 pub(crate) fn new(file_id: HirFileId, source_file: &SourceFile) -> SourceFileItems {
320 let mut res = SourceFileItems { 305 let mut res = SourceFileItems { file_id, arena: Arena::default() };
321 file_id,
322 arena: Arena::default(),
323 };
324 res.init(source_file); 306 res.init(source_file);
325 res 307 res
326 } 308 }