From 41570f60bf268c97223a864b8aa11a339929f55a Mon Sep 17 00:00:00 2001 From: Aleksey Kladov <aleksey.kladov@gmail.com> Date: Fri, 17 Aug 2018 16:04:34 +0300 Subject: extend module resolve to mod.rs --- crates/libanalysis/src/lib.rs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'crates/libanalysis/src') diff --git a/crates/libanalysis/src/lib.rs b/crates/libanalysis/src/lib.rs index 19b64fece..a50a0f32f 100644 --- a/crates/libanalysis/src/lib.rs +++ b/crates/libanalysis/src/lib.rs @@ -163,15 +163,21 @@ impl World { Some(name) => name.text(), None => return Vec::new(), }; - let id = match self.resolve_relative_path(id, &PathBuf::from(format!("../{}.rs", name))) { - Some(id) => id, - None => return Vec::new(), - }; - vec![(id, FileSymbol { - name: name.clone(), - node_range: TextRange::offset_len(0.into(), 0.into()), - kind: MODULE, - })] + let paths = &[ + PathBuf::from(format!("../{}.rs", name)), + PathBuf::from(format!("../{}/mod.rs", name)), + ]; + paths.iter() + .filter_map(|path| self.resolve_relative_path(id, path)) + .map(|id| { + let symbol = FileSymbol { + name: name.clone(), + node_range: TextRange::offset_len(0.into(), 0.into()), + kind: MODULE, + }; + (id, symbol) + }) + .collect() } fn resolve_relative_path(&self, id: FileId, path: &Path) -> Option<FileId> { -- cgit v1.2.3