fix infinite loop in path distance for fuzzy finder

This commit is contained in:
Kay Simmons 2023-02-27 11:57:21 -08:00
parent 81cbefec22
commit b3dffeaf2a

View file

@ -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(""));
}
}