diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-02-02 17:02:48 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-02-02 17:02:48 +0000 |
commit | 7e66cde76460d61cb19a19e4bb7bc1f6642e993d (patch) | |
tree | c8c20aff862d670f1baebd33d95e645a1281ca7f /crates/hir_def/src/nameres.rs | |
parent | 12e8cc4aa29f616e43b4951e18b1f1f231e539a3 (diff) | |
parent | 5914f86d473f34e0fa78dc150024b07bd26a2db9 (diff) |
Merge #7525
7525: Fix resolution of `crate` paths from within blocks r=jonas-schievink a=jonas-schievink
They resolve to the crate root, not the DefMap's root module (which
can be a block)
bors r+
Co-authored-by: Jonas Schievink <[email protected]>
Diffstat (limited to 'crates/hir_def/src/nameres.rs')
-rw-r--r-- | crates/hir_def/src/nameres.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/crates/hir_def/src/nameres.rs b/crates/hir_def/src/nameres.rs index 5efc2fe47..0a15fc470 100644 --- a/crates/hir_def/src/nameres.rs +++ b/crates/hir_def/src/nameres.rs | |||
@@ -275,6 +275,11 @@ impl DefMap { | |||
275 | ModuleId { krate: self.krate, local_id, block } | 275 | ModuleId { krate: self.krate, local_id, block } |
276 | } | 276 | } |
277 | 277 | ||
278 | pub(crate) fn crate_root(&self) -> ModuleId { | ||
279 | let (root_map, _) = self.ancestor_maps(self.root).last().unwrap(); | ||
280 | root_map.module_id(root_map.root) | ||
281 | } | ||
282 | |||
278 | pub(crate) fn resolve_path( | 283 | pub(crate) fn resolve_path( |
279 | &self, | 284 | &self, |
280 | db: &dyn DefDatabase, | 285 | db: &dyn DefDatabase, |