diff options
Diffstat (limited to 'crates/ra_hir/src/nameres/mod_resolution.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/mod_resolution.rs | 14 |
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 { | |||
122 | impl OutOfLineMode { | 122 | impl 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 | ||
176 | fn resolve_find_result( | 178 | fn 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 { |