From 2ecb126f5caeb248e333f8559eb1b7dfd34cc744 Mon Sep 17 00:00:00 2001 From: uHOOCCOOHu Date: Fri, 27 Sep 2019 01:59:38 +0800 Subject: Support `$crate` in item and expr place. --- crates/ra_hir/src/nameres.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'crates/ra_hir/src/nameres.rs') diff --git a/crates/ra_hir/src/nameres.rs b/crates/ra_hir/src/nameres.rs index b808a0c36..15b5b4ee6 100644 --- a/crates/ra_hir/src/nameres.rs +++ b/crates/ra_hir/src/nameres.rs @@ -332,6 +332,20 @@ impl CrateDefMap { ) -> ResolvePathResult { let mut segments = path.segments.iter().enumerate(); let mut curr_per_ns: PerNs = match path.kind { + PathKind::DollarCrate(krate) => { + if krate == self.krate { + tested_by!(macro_dollar_crate_self); + PerNs::types(Module { krate: self.krate, module_id: self.root }.into()) + } else { + match krate.root_module(db) { + Some(module) => { + tested_by!(macro_dollar_crate_other); + PerNs::types(module.into()) + } + None => return ResolvePathResult::empty(ReachedFixedPoint::No), + } + } + } PathKind::Crate => { PerNs::types(Module { krate: self.krate, module_id: self.root }.into()) } -- cgit v1.2.3