Merge pull request #2226 from zed-industries/fix-infinite-loop-in-path-distance

fix infinite loop in path distance for fuzzy finder
This commit is contained in:
Kay Simmons 2023-02-27 12:03:40 -08:00 committed by GitHub
commit dc7fe72f18
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

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