diff --git a/crates/fuzzy/src/paths.rs b/crates/fuzzy/src/paths.rs index 1293e9fa7b..2c5ce81b1c 100644 --- a/crates/fuzzy/src/paths.rs +++ b/crates/fuzzy/src/paths.rs @@ -159,9 +159,14 @@ pub async fn match_path_sets<'a, Set: PathMatchCandidateSet<'a>>( positions: Vec::new(), path: candidate.path.clone(), path_prefix: candidate_set.prefix(), - distance_to_relative_ancestor: distance_to_relative_ancestor( - candidate.path.as_ref(), - &relative_to, + distance_to_relative_ancestor: relative_to.as_ref().map_or( + usize::MAX, + |relative_to| { + distance_between_paths( + candidate.path.as_ref(), + relative_to.as_ref(), + ) + }, ), }, ); @@ -189,11 +194,7 @@ pub async fn match_path_sets<'a, Set: PathMatchCandidateSet<'a>>( /// Compute the distance from a given path to some other path /// If there is no shared path, returns usize::MAX -fn distance_to_relative_ancestor(path: &Path, relative_to: &Option>) -> usize { - let Some(relative_to) = relative_to else { - return usize::MAX; - }; - +fn distance_between_paths(path: &Path, relative_to: &Path) -> usize { let mut path_components = path.components(); let mut relative_components = relative_to.components();