From ac2736529005cacf4fdd089b0521f2ddfa697503 Mon Sep 17 00:00:00 2001 From: Yuya Nishihara Date: Thu, 15 Aug 2024 12:35:59 +0900 Subject: [PATCH] files: ensure that DiffLineIterator hunk has exactly two inputs I've made the constructor public, so let's add more sanity checks. --- lib/src/files.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/src/files.rs b/lib/src/files.rs index 72f49a8ee..ed0ee939b 100644 --- a/lib/src/files.rs +++ b/lib/src/files.rs @@ -103,7 +103,10 @@ where } } DiffHunk::Different(contents) => { - let left_lines = contents[0].split_inclusive(|b| *b == b'\n'); + let [left_text, right_text] = contents[..] + .try_into() + .expect("hunk should have exactly two inputs"); + let left_lines = left_text.split_inclusive(|b| *b == b'\n'); for left_line in left_lines { self.current_line.has_left_content = true; self.current_line @@ -115,7 +118,7 @@ where self.current_line.reset_line(); } } - let right_lines = contents[1].split_inclusive(|b| *b == b'\n'); + let right_lines = right_text.split_inclusive(|b| *b == b'\n'); for right_line in right_lines { self.current_line.has_right_content = true; self.current_line