aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/resolve.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/resolve.rs')
-rw-r--r--crates/ra_hir/src/resolve.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ra_hir/src/resolve.rs b/crates/ra_hir/src/resolve.rs
index 61925e832..f2c85eb66 100644
--- a/crates/ra_hir/src/resolve.rs
+++ b/crates/ra_hir/src/resolve.rs
@@ -5,13 +5,15 @@ use rustc_hash::FxHashMap;
5 5
6use crate::{ 6use crate::{
7 ModuleDef, 7 ModuleDef,
8 code_model_api::Crate,
8 db::HirDatabase, 9 db::HirDatabase,
9 name::{Name, KnownName}, 10 name::{Name, KnownName},
10 nameres::{PerNs, CrateDefMap, CrateModuleId}, 11 nameres::{PerNs, CrateDefMap, CrateModuleId},
11 generics::GenericParams, 12 generics::GenericParams,
12 expr::{scope::{ExprScopes, ScopeId}, PatId}, 13 expr::{scope::{ExprScopes, ScopeId}, PatId},
13 impl_block::ImplBlock, 14 impl_block::ImplBlock,
14 path::Path, Trait 15 path::Path,
16 Trait
15}; 17};
16 18
17#[derive(Debug, Clone, Default)] 19#[derive(Debug, Clone, Default)]
@@ -190,13 +192,17 @@ impl Resolver {
190 .flatten() 192 .flatten()
191 } 193 }
192 194
193 pub(crate) fn module(&self) -> Option<(&CrateDefMap, CrateModuleId)> { 195 fn module(&self) -> Option<(&CrateDefMap, CrateModuleId)> {
194 self.scopes.iter().rev().find_map(|scope| match scope { 196 self.scopes.iter().rev().find_map(|scope| match scope {
195 Scope::ModuleScope(m) => Some((&*m.crate_def_map, m.module_id)), 197 Scope::ModuleScope(m) => Some((&*m.crate_def_map, m.module_id)),
196 198
197 _ => None, 199 _ => None,
198 }) 200 })
199 } 201 }
202
203 pub(crate) fn krate(&self) -> Option<Crate> {
204 self.module().map(|t| t.0.krate())
205 }
200} 206}
201 207
202impl Resolver { 208impl Resolver {