diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 691cd57982b..53e84429c3e 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -24,7 +24,7 @@ use crate::{ /// root module. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct Crate { - pub crate_id: CrateId, + pub(crate) crate_id: CrateId, } #[derive(Debug)] diff --git a/crates/ra_ide_api/src/impls.rs b/crates/ra_ide_api/src/impls.rs index 16a05758ad1..469d56d63ac 100644 --- a/crates/ra_ide_api/src/impls.rs +++ b/crates/ra_ide_api/src/impls.rs @@ -14,9 +14,8 @@ pub(crate) fn goto_implementation( let file = db.parse(position.file_id); let syntax = file.syntax(); - let krate_id = db.crate_for(position.file_id).pop()?; - let krate = hir::Crate { crate_id: krate_id }; let module = source_binder::module_from_position(db, position)?; + let krate = module.krate(db)?; let node = find_node_at_offset::<ast::NominalDef>(syntax, position.offset)?; let ty = match node.kind() {