move crate for

This commit is contained in:
Aleksey Kladov 2019-02-08 13:50:18 +03:00
parent 842e8001b2
commit bddd124298
3 changed files with 16 additions and 16 deletions

View file

@ -10,25 +10,12 @@ use ra_syntax::{
use ra_db::SourceDatabase;
use crate::{
CrateId, db, Diagnostic, FileId, FilePosition, FileSystemEdit,
db, Diagnostic, FileId, FilePosition, FileSystemEdit,
Query, SourceChange, SourceFileEdit,
symbol_index::FileSymbol,
};
impl db::RootDatabase {
/// Returns `Vec` for the same reason as `parent_module`
pub(crate) fn crate_for(&self, file_id: FileId) -> Vec<CrateId> {
let module = match source_binder::module_from_file_id(self, file_id) {
Some(it) => it,
None => return Vec::new(),
};
let krate = match module.krate(self) {
Some(it) => it,
None => return Vec::new(),
};
vec![krate.crate_id()]
}
pub(crate) fn find_all_refs(&self, position: FilePosition) -> Vec<(FileId, TextRange)> {
let file = self.parse(position.file_id);
// Find the binding associated with the offset

View file

@ -342,7 +342,7 @@ impl Analysis {
/// Returns crates this file belongs too.
pub fn crate_for(&self, file_id: FileId) -> Cancelable<Vec<CrateId>> {
self.with_db(|db| db.crate_for(file_id))
self.with_db(|db| parent_module::crate_for(db, file_id))
}
/// Returns the root file of the given crate.

View file

@ -1,4 +1,4 @@
use ra_db::FilePosition;
use ra_db::{FilePosition, FileId, CrateId};
use crate::{NavigationTarget, db::RootDatabase};
@ -13,6 +13,19 @@ pub(crate) fn parent_module(db: &RootDatabase, position: FilePosition) -> Vec<Na
vec![nav]
}
/// Returns `Vec` for the same reason as `parent_module`
pub(crate) fn crate_for(db: &RootDatabase, file_id: FileId) -> Vec<CrateId> {
let module = match hir::source_binder::module_from_file_id(db, file_id) {
Some(it) => it,
None => return Vec::new(),
};
let krate = match module.krate(db) {
Some(it) => it,
None => return Vec::new(),
};
vec![krate.crate_id()]
}
#[cfg(test)]
mod tests {
use crate::mock_analysis::analysis_and_position;