Use Crate instead of CrateId

This commit is contained in:
Aleksey Kladov
2019-01-30 22:23:14 +03:00
parent 95aa7e46fc
commit ef7eb8c257
9 changed files with 36 additions and 45 deletions

View File

@@ -1,31 +1,28 @@
use ra_db::CrateId;
use crate::{
Crate, CrateDependency, AsName, Module,
db::HirDatabase,
};
impl Crate {
pub(crate) fn new(crate_id: CrateId) -> Crate {
Crate { crate_id }
}
pub(crate) fn dependencies_impl(&self, db: &impl HirDatabase) -> Vec<CrateDependency> {
let crate_graph = db.crate_graph();
crate_graph
.dependencies(self.crate_id)
.map(|dep| {
let krate = Crate::new(dep.crate_id());
let krate = Crate {
crate_id: dep.crate_id(),
};
let name = dep.as_name();
CrateDependency { krate, name }
})
.collect()
}
pub(crate) fn root_module_impl(&self, db: &impl HirDatabase) -> Option<Module> {
let module_tree = db.module_tree(self.crate_id);
let module_tree = db.module_tree(*self);
let module_id = module_tree.modules().next()?;
let module = Module {
krate: self.crate_id,
krate: *self,
module_id,
};
Some(module)

View File

@@ -3,7 +3,7 @@ use ra_syntax::{ast, SyntaxNode, TreeArc};
use crate::{
Module, ModuleSource, Problem,
Crate, Name,
Name,
module_tree::ModuleId,
impl_block::ImplId,
nameres::{lower::ImportId},
@@ -67,10 +67,6 @@ impl Module {
source_map.get(&source, impl_id)
}
pub(crate) fn krate_impl(&self, _db: &impl HirDatabase) -> Option<Crate> {
Some(Crate::new(self.krate))
}
pub(crate) fn crate_root_impl(&self, db: &impl HirDatabase) -> Module {
let module_tree = db.module_tree(self.krate);
let module_id = self.module_id.crate_root(&module_tree);