File tree Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change @@ -1080,6 +1080,30 @@ mod blame_ranges {
10801080 assert_eq ! ( ranges. to_zero_based_exclusive_ranges( 100 ) , vec![ 0 ..10 ] ) ;
10811081 }
10821082
1083+ #[ test]
1084+ fn to_zero_based_exclusive_ignores_range_past_max_lines ( ) {
1085+ let mut ranges = BlameRanges :: from_one_based_inclusive_range ( 1 ..=5 ) . unwrap ( ) ;
1086+ ranges. add_one_based_inclusive_range ( 16 ..=20 ) . unwrap ( ) ;
1087+
1088+ assert_eq ! ( ranges. to_zero_based_exclusive_ranges( 7 ) , vec![ 0 ..5 ] ) ;
1089+ }
1090+
1091+ #[ test]
1092+ fn to_zero_based_exclusive_range_doesnt_exceed_max_lines ( ) {
1093+ let mut ranges = BlameRanges :: from_one_based_inclusive_range ( 1 ..=5 ) . unwrap ( ) ;
1094+ ranges. add_one_based_inclusive_range ( 6 ..=10 ) . unwrap ( ) ;
1095+
1096+ assert_eq ! ( ranges. to_zero_based_exclusive_ranges( 7 ) , vec![ 0 ..7 ] ) ;
1097+ }
1098+
1099+ #[ test]
1100+ fn to_zero_based_exclusive_merged_ranges_dont_exceed_max_lines ( ) {
1101+ let mut ranges = BlameRanges :: from_one_based_inclusive_range ( 1 ..=4 ) . unwrap ( ) ;
1102+ ranges. add_one_based_inclusive_range ( 6 ..=10 ) . unwrap ( ) ;
1103+
1104+ assert_eq ! ( ranges. to_zero_based_exclusive_ranges( 7 ) , vec![ 0 ..4 , 5 ..7 ] ) ;
1105+ }
1106+
10831107 #[ test]
10841108 fn default_is_full_file ( ) {
10851109 let ranges = BlameRanges :: default ( ) ;
Original file line number Diff line number Diff line change @@ -132,7 +132,20 @@ impl BlameRanges {
132132 let full_range = 0 ..max_lines;
133133 vec ! [ full_range]
134134 }
135- Self :: PartialFile ( ranges) => ranges. clone ( ) ,
135+ Self :: PartialFile ( ranges) => ranges
136+ . iter ( )
137+ . filter_map ( |range| {
138+ if range. end < max_lines {
139+ return Some ( range. clone ( ) ) ;
140+ }
141+
142+ if range. start < max_lines {
143+ Some ( range. start ..max_lines)
144+ } else {
145+ None
146+ }
147+ } )
148+ . collect ( ) ,
136149 }
137150 }
138151}
You can’t perform that action at this time.
0 commit comments