fix infinite loop in path distance for fuzzy finder

Kay Simmons created

Change summary

crates/fuzzy/src/paths.rs | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)

Detailed changes

crates/fuzzy/src/paths.rs 🔗

@@ -198,6 +198,25 @@ fn distance_between_paths(path: &Path, relative_to: &Path) -> usize {
     let mut path_components = path.components();
     let mut relative_components = relative_to.components();
 
-    while path_components.next() == relative_components.next() {}
+    // while path_components.next() == relative_components.next() {}
+
+    while path_components
+        .next()
+        .zip(relative_components.next())
+        .map(|(path_component, relative_component)| path_component == relative_component)
+        .unwrap_or_default()
+    {}
     path_components.count() + relative_components.count() + 1
 }
+
+#[cfg(test)]
+mod tests {
+    use std::path::Path;
+
+    use super::distance_between_paths;
+
+    #[test]
+    fn test_distance_between_paths_empty() {
+        distance_between_paths(Path::new(""), Path::new(""));
+    }
+}