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 From edadeb95be16a69175e94a0e211ae9bb74267abb Mon Sep 17 00:00:00 2001 From: uHOOCCOOHu Date: Fri, 27 Sep 2019 10:55:25 +0800 Subject: Fix --- crates/ra_hir/src/nameres.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (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 15b5b4ee6..67adcfa28 100644 --- a/crates/ra_hir/src/nameres.rs +++ b/crates/ra_hir/src/nameres.rs @@ -342,7 +342,7 @@ impl CrateDefMap { tested_by!(macro_dollar_crate_other); PerNs::types(module.into()) } - None => return ResolvePathResult::empty(ReachedFixedPoint::No), + None => return ResolvePathResult::empty(ReachedFixedPoint::Yes), } } } -- cgit v1.2.3