aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres/mod_resolution.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/nameres/mod_resolution.rs')
-rw-r--r--crates/ra_hir_def/src/nameres/mod_resolution.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/crates/ra_hir_def/src/nameres/mod_resolution.rs b/crates/ra_hir_def/src/nameres/mod_resolution.rs
index 19fe0615a..39e9a6d97 100644
--- a/crates/ra_hir_def/src/nameres/mod_resolution.rs
+++ b/crates/ra_hir_def/src/nameres/mod_resolution.rs
@@ -44,7 +44,7 @@ impl ModDir {
44 file_id: HirFileId, 44 file_id: HirFileId,
45 name: &Name, 45 name: &Name,
46 attr_path: Option<&SmolStr>, 46 attr_path: Option<&SmolStr>,
47 ) -> Result<(FileId, ModDir), String> { 47 ) -> Result<(FileId, bool, ModDir), String> {
48 let file_id = file_id.original_file(db.upcast()); 48 let file_id = file_id.original_file(db.upcast());
49 49
50 let mut candidate_files = Vec::new(); 50 let mut candidate_files = Vec::new();
@@ -64,11 +64,12 @@ impl ModDir {
64 if let Some(file_id) = db.resolve_path(file_id, candidate.as_str()) { 64 if let Some(file_id) = db.resolve_path(file_id, candidate.as_str()) {
65 let mut root_non_dir_owner = false; 65 let mut root_non_dir_owner = false;
66 let mut mod_path = RelativePathBuf::new(); 66 let mut mod_path = RelativePathBuf::new();
67 if !(candidate.ends_with("mod.rs") || attr_path.is_some()) { 67 let is_mod_rs = candidate.ends_with("mod.rs");
68 if !(is_mod_rs || attr_path.is_some()) {
68 root_non_dir_owner = true; 69 root_non_dir_owner = true;
69 mod_path.push(&name.to_string()); 70 mod_path.push(&name.to_string());
70 } 71 }
71 return Ok((file_id, ModDir { path: mod_path, root_non_dir_owner })); 72 return Ok((file_id, is_mod_rs, ModDir { path: mod_path, root_non_dir_owner }));
72 } 73 }
73 } 74 }
74 Err(candidate_files.remove(0)) 75 Err(candidate_files.remove(0))