From 2573adf5b94e994f8d3940c9739453bbe1d3e632 Mon Sep 17 00:00:00 2001 From: Pierre-Etienne Date: Sat, 1 Mar 2025 17:17:41 +0100 Subject: [PATCH 1/3] fix parsing submod --- crates/analyzer/src/analyze/crate_.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/analyzer/src/analyze/crate_.rs b/crates/analyzer/src/analyze/crate_.rs index e72aac9..bfe43f8 100644 --- a/crates/analyzer/src/analyze/crate_.rs +++ b/crates/analyzer/src/analyze/crate_.rs @@ -105,6 +105,12 @@ pub fn analyze_crate(path: &str) -> Result { parent_dir.join(&module_name).join("mod.rs"), parent_dir.to_path_buf(), ) + } + else if parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs").exists() { + ( + parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs"), + parent_dir.join(&module_name), + ) } else { // TODO warn about missing module? continue; From 4b82e508fa74079e7d6ca660ed01b93b2f2038f9 Mon Sep 17 00:00:00 2001 From: Pierre-Etienne Date: Sat, 1 Mar 2025 17:28:57 +0100 Subject: [PATCH 2/3] fix for mod.rs in sub mod (ex my_mod/my_sub_mod/mod.rs) --- crates/analyzer/src/analyze/crate_.rs | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/crates/analyzer/src/analyze/crate_.rs b/crates/analyzer/src/analyze/crate_.rs index bfe43f8..79d0f47 100644 --- a/crates/analyzer/src/analyze/crate_.rs +++ b/crates/analyzer/src/analyze/crate_.rs @@ -95,23 +95,18 @@ pub fn analyze_crate(path: &str) -> Result { let mut read_modules = vec![]; while let Some((parent_dir, module_name, parent)) = modules_to_read.pop() { let (module_path, submodule_dir) = - if parent_dir.join(&module_name).with_extension("rs").exists() { + if parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs").exists() { ( - parent_dir.join(&module_name).with_extension("rs"), - parent_dir.join(&module_name), + parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs"), + parent_dir.join(&parent[1..].join("/")).join(&module_name), ) - } else if parent_dir.join(&module_name).join("mod.rs").exists() { + } else if parent_dir.join(&parent[1..].join("/")).join(&module_name).join("mod.rs").exists() { ( - parent_dir.join(&module_name).join("mod.rs"), - parent_dir.to_path_buf(), + parent_dir.join(&parent[1..].join("/")).join(&module_name).join("mod.rs"), + parent_dir.join(&parent[1..].join("/")).to_path_buf(), ) } - else if parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs").exists() { - ( - parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs"), - parent_dir.join(&module_name), - ) - } else { + else { // TODO warn about missing module? continue; }; From 56d53831ccd80e93a0ece6807a889aea1e819c4f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 1 Mar 2025 16:30:16 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- crates/analyzer/src/analyze/crate_.rs | 46 +++++++++++++++++---------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git a/crates/analyzer/src/analyze/crate_.rs b/crates/analyzer/src/analyze/crate_.rs index 79d0f47..4daef58 100644 --- a/crates/analyzer/src/analyze/crate_.rs +++ b/crates/analyzer/src/analyze/crate_.rs @@ -94,22 +94,36 @@ pub fn analyze_crate(path: &str) -> Result { // recursively find/read the public sub-modules let mut read_modules = vec![]; while let Some((parent_dir, module_name, parent)) = modules_to_read.pop() { - let (module_path, submodule_dir) = - if parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs").exists() { - ( - parent_dir.join(&parent[1..].join("/")).join(&module_name).with_extension("rs"), - parent_dir.join(&parent[1..].join("/")).join(&module_name), - ) - } else if parent_dir.join(&parent[1..].join("/")).join(&module_name).join("mod.rs").exists() { - ( - parent_dir.join(&parent[1..].join("/")).join(&module_name).join("mod.rs"), - parent_dir.join(&parent[1..].join("/")).to_path_buf(), - ) - } - else { - // TODO warn about missing module? - continue; - }; + let (module_path, submodule_dir) = if parent_dir + .join(&parent[1..].join("/")) + .join(&module_name) + .with_extension("rs") + .exists() + { + ( + parent_dir + .join(&parent[1..].join("/")) + .join(&module_name) + .with_extension("rs"), + parent_dir.join(&parent[1..].join("/")).join(&module_name), + ) + } else if parent_dir + .join(&parent[1..].join("/")) + .join(&module_name) + .join("mod.rs") + .exists() + { + ( + parent_dir + .join(&parent[1..].join("/")) + .join(&module_name) + .join("mod.rs"), + parent_dir.join(&parent[1..].join("/")).to_path_buf(), + ) + } else { + // TODO warn about missing module? + continue; + }; if read_modules.contains(&module_path) { continue;