diff options
author | csmoe <[email protected]> | 2019-02-01 10:33:41 +0000 |
---|---|---|
committer | csmoe <[email protected]> | 2019-02-01 14:05:24 +0000 |
commit | 4dffdcf14abe0c79f9d7a9702be77958be1f75b1 (patch) | |
tree | 3904cb714292f3e1abe5081e4e516eea1b2568fa /crates/ra_hir/src/code_model_api.rs | |
parent | 12433a78871610edfccc82442846615872747e06 (diff) |
split HirDatabase api
Diffstat (limited to 'crates/ra_hir/src/code_model_api.rs')
-rw-r--r-- | crates/ra_hir/src/code_model_api.rs | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 9405aa8ad..71123a698 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs | |||
@@ -8,7 +8,7 @@ use crate::{ | |||
8 | Name, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId, | 8 | Name, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId, |
9 | type_ref::TypeRef, | 9 | type_ref::TypeRef, |
10 | nameres::{ModuleScope, lower::ImportId}, | 10 | nameres::{ModuleScope, lower::ImportId}, |
11 | db::HirDatabase, | 11 | HirDatabase, PersistentHirDatabase, |
12 | expr::BodySyntaxMapping, | 12 | expr::BodySyntaxMapping, |
13 | ty::{InferenceResult}, | 13 | ty::{InferenceResult}, |
14 | adt::{EnumVariantId, StructFieldId, VariantDef}, | 14 | adt::{EnumVariantId, StructFieldId, VariantDef}, |
@@ -37,10 +37,10 @@ impl Crate { | |||
37 | pub fn crate_id(&self) -> CrateId { | 37 | pub fn crate_id(&self) -> CrateId { |
38 | self.crate_id | 38 | self.crate_id |
39 | } | 39 | } |
40 | pub fn dependencies(&self, db: &impl HirDatabase) -> Vec<CrateDependency> { | 40 | pub fn dependencies(&self, db: &impl PersistentHirDatabase) -> Vec<CrateDependency> { |
41 | self.dependencies_impl(db) | 41 | self.dependencies_impl(db) |
42 | } | 42 | } |
43 | pub fn root_module(&self, db: &impl HirDatabase) -> Option<Module> { | 43 | pub fn root_module(&self, db: &impl PersistentHirDatabase) -> Option<Module> { |
44 | self.root_module_impl(db) | 44 | self.root_module_impl(db) |
45 | } | 45 | } |
46 | } | 46 | } |
@@ -105,7 +105,7 @@ impl Module { | |||
105 | } | 105 | } |
106 | 106 | ||
107 | /// Returns a node which defines this module. That is, a file or a `mod foo {}` with items. | 107 | /// Returns a node which defines this module. That is, a file or a `mod foo {}` with items. |
108 | pub fn definition_source(&self, db: &impl HirDatabase) -> (FileId, ModuleSource) { | 108 | pub fn definition_source(&self, db: &impl PersistentHirDatabase) -> (FileId, ModuleSource) { |
109 | self.definition_source_impl(db) | 109 | self.definition_source_impl(db) |
110 | } | 110 | } |
111 | 111 | ||
@@ -140,7 +140,7 @@ impl Module { | |||
140 | /// Topmost parent of this module. Every module has a `crate_root`, but some | 140 | /// Topmost parent of this module. Every module has a `crate_root`, but some |
141 | /// might be missing `krate`. This can happen if a module's file is not included | 141 | /// might be missing `krate`. This can happen if a module's file is not included |
142 | /// in the module tree of any target in Cargo.toml. | 142 | /// in the module tree of any target in Cargo.toml. |
143 | pub fn crate_root(&self, db: &impl HirDatabase) -> Module { | 143 | pub fn crate_root(&self, db: &impl PersistentHirDatabase) -> Module { |
144 | self.crate_root_impl(db) | 144 | self.crate_root_impl(db) |
145 | } | 145 | } |
146 | 146 | ||
@@ -150,12 +150,12 @@ impl Module { | |||
150 | } | 150 | } |
151 | 151 | ||
152 | /// Iterates over all child modules. | 152 | /// Iterates over all child modules. |
153 | pub fn children(&self, db: &impl HirDatabase) -> impl Iterator<Item = Module> { | 153 | pub fn children(&self, db: &impl PersistentHirDatabase) -> impl Iterator<Item = Module> { |
154 | self.children_impl(db) | 154 | self.children_impl(db) |
155 | } | 155 | } |
156 | 156 | ||
157 | /// Finds a parent module. | 157 | /// Finds a parent module. |
158 | pub fn parent(&self, db: &impl HirDatabase) -> Option<Module> { | 158 | pub fn parent(&self, db: &impl PersistentHirDatabase) -> Option<Module> { |
159 | self.parent_impl(db) | 159 | self.parent_impl(db) |
160 | } | 160 | } |
161 | 161 | ||
@@ -174,7 +174,7 @@ impl Module { | |||
174 | db.item_map(self.krate)[self.module_id].clone() | 174 | db.item_map(self.krate)[self.module_id].clone() |
175 | } | 175 | } |
176 | 176 | ||
177 | pub fn resolve_path(&self, db: &impl HirDatabase, path: &Path) -> PerNs<ModuleDef> { | 177 | pub fn resolve_path(&self, db: &impl PersistentHirDatabase, path: &Path) -> PerNs<ModuleDef> { |
178 | db.item_map(self.krate).resolve_path(db, *self, path) | 178 | db.item_map(self.krate).resolve_path(db, *self, path) |
179 | } | 179 | } |
180 | 180 | ||
@@ -209,7 +209,7 @@ impl StructField { | |||
209 | .clone() | 209 | .clone() |
210 | } | 210 | } |
211 | 211 | ||
212 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, FieldSource) { | 212 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, FieldSource) { |
213 | self.source_impl(db) | 213 | self.source_impl(db) |
214 | } | 214 | } |
215 | 215 | ||
@@ -237,7 +237,7 @@ pub struct Struct { | |||
237 | } | 237 | } |
238 | 238 | ||
239 | impl Struct { | 239 | impl Struct { |
240 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { | 240 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { |
241 | self.id.source(db) | 241 | self.id.source(db) |
242 | } | 242 | } |
243 | 243 | ||
@@ -275,7 +275,7 @@ impl Struct { | |||
275 | }) | 275 | }) |
276 | } | 276 | } |
277 | 277 | ||
278 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 278 | pub fn generic_params(&self, db: &impl PersistentHirDatabase) -> Arc<GenericParams> { |
279 | db.generic_params((*self).into()) | 279 | db.generic_params((*self).into()) |
280 | } | 280 | } |
281 | 281 | ||
@@ -296,7 +296,7 @@ pub struct Enum { | |||
296 | } | 296 | } |
297 | 297 | ||
298 | impl Enum { | 298 | impl Enum { |
299 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumDef>) { | 299 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::EnumDef>) { |
300 | self.id.source(db) | 300 | self.id.source(db) |
301 | } | 301 | } |
302 | 302 | ||
@@ -316,7 +316,7 @@ impl Enum { | |||
316 | .collect() | 316 | .collect() |
317 | } | 317 | } |
318 | 318 | ||
319 | pub fn variant(&self, db: &impl HirDatabase, name: &Name) -> Option<EnumVariant> { | 319 | pub fn variant(&self, db: &impl PersistentHirDatabase, name: &Name) -> Option<EnumVariant> { |
320 | db.enum_data(*self) | 320 | db.enum_data(*self) |
321 | .variants | 321 | .variants |
322 | .iter() | 322 | .iter() |
@@ -324,7 +324,7 @@ impl Enum { | |||
324 | .map(|(id, _)| EnumVariant { parent: *self, id }) | 324 | .map(|(id, _)| EnumVariant { parent: *self, id }) |
325 | } | 325 | } |
326 | 326 | ||
327 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 327 | pub fn generic_params(&self, db: &impl PersistentHirDatabase) -> Arc<GenericParams> { |
328 | db.generic_params((*self).into()) | 328 | db.generic_params((*self).into()) |
329 | } | 329 | } |
330 | 330 | ||
@@ -346,13 +346,16 @@ pub struct EnumVariant { | |||
346 | } | 346 | } |
347 | 347 | ||
348 | impl EnumVariant { | 348 | impl EnumVariant { |
349 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::EnumVariant>) { | 349 | pub fn source( |
350 | &self, | ||
351 | db: &impl PersistentHirDatabase, | ||
352 | ) -> (HirFileId, TreeArc<ast::EnumVariant>) { | ||
350 | self.source_impl(db) | 353 | self.source_impl(db) |
351 | } | 354 | } |
352 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 355 | pub fn module(&self, db: &impl HirDatabase) -> Module { |
353 | self.parent.module(db) | 356 | self.parent.module(db) |
354 | } | 357 | } |
355 | pub fn parent_enum(&self, _db: &impl HirDatabase) -> Enum { | 358 | pub fn parent_enum(&self, _db: &impl PersistentHirDatabase) -> Enum { |
356 | self.parent | 359 | self.parent |
357 | } | 360 | } |
358 | 361 | ||
@@ -430,7 +433,7 @@ impl FnSignature { | |||
430 | } | 433 | } |
431 | 434 | ||
432 | impl Function { | 435 | impl Function { |
433 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::FnDef>) { | 436 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::FnDef>) { |
434 | self.id.source(db) | 437 | self.id.source(db) |
435 | } | 438 | } |
436 | 439 | ||
@@ -463,7 +466,7 @@ impl Function { | |||
463 | db.infer(*self) | 466 | db.infer(*self) |
464 | } | 467 | } |
465 | 468 | ||
466 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 469 | pub fn generic_params(&self, db: &impl PersistentHirDatabase) -> Arc<GenericParams> { |
467 | db.generic_params((*self).into()) | 470 | db.generic_params((*self).into()) |
468 | } | 471 | } |
469 | } | 472 | } |
@@ -480,7 +483,7 @@ pub struct Const { | |||
480 | } | 483 | } |
481 | 484 | ||
482 | impl Const { | 485 | impl Const { |
483 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::ConstDef>) { | 486 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::ConstDef>) { |
484 | self.id.source(db) | 487 | self.id.source(db) |
485 | } | 488 | } |
486 | } | 489 | } |
@@ -497,7 +500,7 @@ pub struct Static { | |||
497 | } | 500 | } |
498 | 501 | ||
499 | impl Static { | 502 | impl Static { |
500 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::StaticDef>) { | 503 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::StaticDef>) { |
501 | self.id.source(db) | 504 | self.id.source(db) |
502 | } | 505 | } |
503 | } | 506 | } |
@@ -514,11 +517,11 @@ pub struct Trait { | |||
514 | } | 517 | } |
515 | 518 | ||
516 | impl Trait { | 519 | impl Trait { |
517 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::TraitDef>) { | 520 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::TraitDef>) { |
518 | self.id.source(db) | 521 | self.id.source(db) |
519 | } | 522 | } |
520 | 523 | ||
521 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 524 | pub fn generic_params(&self, db: &impl PersistentHirDatabase) -> Arc<GenericParams> { |
522 | db.generic_params((*self).into()) | 525 | db.generic_params((*self).into()) |
523 | } | 526 | } |
524 | } | 527 | } |
@@ -535,11 +538,11 @@ pub struct Type { | |||
535 | } | 538 | } |
536 | 539 | ||
537 | impl Type { | 540 | impl Type { |
538 | pub fn source(&self, db: &impl HirDatabase) -> (HirFileId, TreeArc<ast::TypeDef>) { | 541 | pub fn source(&self, db: &impl PersistentHirDatabase) -> (HirFileId, TreeArc<ast::TypeDef>) { |
539 | self.id.source(db) | 542 | self.id.source(db) |
540 | } | 543 | } |
541 | 544 | ||
542 | pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> { | 545 | pub fn generic_params(&self, db: &impl PersistentHirDatabase) -> Arc<GenericParams> { |
543 | db.generic_params((*self).into()) | 546 | db.generic_params((*self).into()) |
544 | } | 547 | } |
545 | } | 548 | } |