@@ -235,7 +235,7 @@ lazy_static! {
235235fn parse_hunk_header ( line : & str ) -> Option < ParsedHunkHeader > {
236236 if let Some ( caps) = HUNK_HEADER_REGEX . captures ( line) {
237237 let file_coordinates = & caps[ 1 ] ;
238- let line_numbers_and_hunk_lengths = HUNK_HEADER_FILE_COORDINATE_REGEX
238+ let line_numbers_and_hunk_lengths: Vec < ( usize , usize ) > = HUNK_HEADER_FILE_COORDINATE_REGEX
239239 . captures_iter ( file_coordinates)
240240 . map ( |caps| {
241241 (
@@ -249,11 +249,15 @@ fn parse_hunk_header(line: &str) -> Option<ParsedHunkHeader> {
249249 )
250250 } )
251251 . collect ( ) ;
252- let code_fragment = caps[ 2 ] . to_string ( ) ;
253- Some ( ParsedHunkHeader {
254- code_fragment,
255- line_numbers_and_hunk_lengths,
256- } )
252+ if line_numbers_and_hunk_lengths. is_empty ( ) {
253+ None
254+ } else {
255+ let code_fragment = caps[ 2 ] . to_string ( ) ;
256+ Some ( ParsedHunkHeader {
257+ code_fragment,
258+ line_numbers_and_hunk_lengths,
259+ } )
260+ }
257261 } else {
258262 None
259263 }
@@ -456,6 +460,12 @@ pub mod tests {
456460 assert_eq ! ( line_numbers_and_hunk_lengths[ 1 ] , ( 75 , 2 ) , ) ;
457461 }
458462
463+ #[ test]
464+ fn test_parse_hunk_header_with_no_hunk_lengths ( ) {
465+ let result = parse_hunk_header ( "@@ @@\n " ) ;
466+ assert_eq ! ( result, None ) ;
467+ }
468+
459469 #[ test]
460470 fn test_parse_hunk_header_added_file ( ) {
461471 let ParsedHunkHeader {
0 commit comments