aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/mod_resolution.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/nameres/mod_resolution.rs')
-rw-r--r--crates/ra_hir/src/nameres/mod_resolution.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/crates/ra_hir/src/nameres/mod_resolution.rs b/crates/ra_hir/src/nameres/mod_resolution.rs
index c6be93dcd..918c9591f 100644
--- a/crates/ra_hir/src/nameres/mod_resolution.rs
+++ b/crates/ra_hir/src/nameres/mod_resolution.rs
@@ -122,10 +122,12 @@ enum OutOfLineMode {
122impl OutOfLineMode { 122impl OutOfLineMode {
123 pub fn resolve(&self, source_root: Arc<SourceRoot>) -> Result<FileId, RelativePathBuf> { 123 pub fn resolve(&self, source_root: Arc<SourceRoot>) -> Result<FileId, RelativePathBuf> {
124 match self { 124 match self {
125 OutOfLineMode::RootOrModRs { file, directory } => match source_root.files.get(file) { 125 OutOfLineMode::RootOrModRs { file, directory } => {
126 None => resolve_simple_path(source_root, directory).map_err(|_| file.clone()), 126 match source_root.file_by_relative_path(file) {
127 file_id => resolve_find_result(file_id, file), 127 None => resolve_simple_path(source_root, directory).map_err(|_| file.clone()),
128 }, 128 file_id => resolve_find_result(file_id, file),
129 }
130 }
129 OutOfLineMode::FileInDirectory(path) => resolve_simple_path(source_root, path), 131 OutOfLineMode::FileInDirectory(path) => resolve_simple_path(source_root, path),
130 OutOfLineMode::WithAttributePath(path) => resolve_simple_path(source_root, path), 132 OutOfLineMode::WithAttributePath(path) => resolve_simple_path(source_root, path),
131 } 133 }
@@ -170,11 +172,11 @@ fn resolve_simple_path(
170 source_root: Arc<SourceRoot>, 172 source_root: Arc<SourceRoot>,
171 path: &RelativePathBuf, 173 path: &RelativePathBuf,
172) -> Result<FileId, RelativePathBuf> { 174) -> Result<FileId, RelativePathBuf> {
173 resolve_find_result(source_root.files.get(path), path) 175 resolve_find_result(source_root.file_by_relative_path(path), path)
174} 176}
175 177
176fn resolve_find_result( 178fn resolve_find_result(
177 file_id: Option<&FileId>, 179 file_id: Option<FileId>,
178 path: &RelativePathBuf, 180 path: &RelativePathBuf,
179) -> Result<FileId, RelativePathBuf> { 181) -> Result<FileId, RelativePathBuf> {
180 match file_id { 182 match file_id {