diff: remove redundant check for empty ranges from unchanged_ranges() recursion

It's cheap to create an empty Vec, and I'm going to remove it anyway.
This commit is contained in:
Yuya Nishihara 2024-09-24 17:54:11 +09:00
parent fd2c377a4a
commit f6277bbdb8

View File

@ -289,31 +289,23 @@ fn unchanged_ranges_lcs(
for (left_index, right_index) in lcs { for (left_index, right_index) in lcs {
let (left_position, _) = left_positions[left_index]; let (left_position, _) = left_positions[left_index];
let (right_position, _) = right_positions[right_index]; let (right_position, _) = right_positions[right_index];
let skipped_left_positions = previous_left_position..left_position;
let skipped_right_positions = previous_right_position..right_position;
if !skipped_left_positions.is_empty() || !skipped_right_positions.is_empty() {
for unchanged_nested_range in unchanged_ranges( for unchanged_nested_range in unchanged_ranges(
&left.narrowed(skipped_left_positions.clone()), &left.narrowed(previous_left_position..left_position),
&right.narrowed(skipped_right_positions.clone()), &right.narrowed(previous_right_position..right_position),
) { ) {
result.push(unchanged_nested_range); result.push(unchanged_nested_range);
} }
}
result.push((left.range_at(left_position), right.range_at(right_position))); result.push((left.range_at(left_position), right.range_at(right_position)));
previous_left_position = WordPosition(left_position.0 + 1); previous_left_position = WordPosition(left_position.0 + 1);
previous_right_position = WordPosition(right_position.0 + 1); previous_right_position = WordPosition(right_position.0 + 1);
} }
// Also recurse into range at end (after common ranges). // Also recurse into range at end (after common ranges).
let skipped_left_positions = previous_left_position..WordPosition(left.ranges.len());
let skipped_right_positions = previous_right_position..WordPosition(right.ranges.len());
if !skipped_left_positions.is_empty() || !skipped_right_positions.is_empty() {
for unchanged_nested_range in unchanged_ranges( for unchanged_nested_range in unchanged_ranges(
&left.narrowed(skipped_left_positions), &left.narrowed(previous_left_position..WordPosition(left.ranges.len())),
&right.narrowed(skipped_right_positions), &right.narrowed(previous_right_position..WordPosition(right.ranges.len())),
) { ) {
result.push(unchanged_nested_range); result.push(unchanged_nested_range);
} }
}
result result
} }