@@ -1314,11 +1314,6 @@ impl SourceFileLines {
1314
1314
/// small crates where very little of `std`'s metadata is used.
1315
1315
#[ derive( Clone ) ]
1316
1316
pub struct SourceFileDiffs {
1317
- /// Position of the first line. Note that this is always encoded as a
1318
- /// `BytePos` because it is often much larger than any of the
1319
- /// differences.
1320
- line_start : RelativeBytePos ,
1321
-
1322
1317
/// Always 1, 2, or 4. Always as small as possible, while being big
1323
1318
/// enough to hold the length of the longest line in the source file.
1324
1319
/// The 1 case is by far the most common.
@@ -1422,7 +1417,7 @@ impl<S: Encoder> Encodable<S> for SourceFile {
1422
1417
s. emit_u8 ( bytes_per_diff as u8 ) ;
1423
1418
1424
1419
// Encode the first element.
1425
- lines[ 0 ] . encode ( s ) ;
1420
+ assert_eq ! ( lines[ 0 ] , RelativeBytePos ( 0 ) ) ;
1426
1421
1427
1422
// Encode the difference list.
1428
1423
let diff_iter = lines. array_windows ( ) . map ( |& [ fst, snd] | snd - fst) ;
@@ -1472,18 +1467,10 @@ impl<D: Decoder> Decodable<D> for SourceFile {
1472
1467
// Read the number of bytes used per diff.
1473
1468
let bytes_per_diff = d. read_u8 ( ) as usize ;
1474
1469
1475
- // Read the first element.
1476
- let line_start: RelativeBytePos = Decodable :: decode ( d) ;
1477
-
1478
1470
// Read the difference list.
1479
1471
let num_diffs = num_lines as usize - 1 ;
1480
1472
let raw_diffs = d. read_raw_bytes ( bytes_per_diff * num_diffs) . to_vec ( ) ;
1481
- SourceFileLines :: Diffs ( SourceFileDiffs {
1482
- line_start,
1483
- bytes_per_diff,
1484
- num_diffs,
1485
- raw_diffs,
1486
- } )
1473
+ SourceFileLines :: Diffs ( SourceFileDiffs { bytes_per_diff, num_diffs, raw_diffs } )
1487
1474
} else {
1488
1475
SourceFileLines :: Lines ( vec ! [ ] )
1489
1476
}
@@ -1562,15 +1549,11 @@ impl SourceFile {
1562
1549
let mut guard = self . lines . borrow_mut ( ) ;
1563
1550
match & * guard {
1564
1551
SourceFileLines :: Lines ( lines) => f ( lines) ,
1565
- SourceFileLines :: Diffs ( SourceFileDiffs {
1566
- mut line_start,
1567
- bytes_per_diff,
1568
- num_diffs,
1569
- raw_diffs,
1570
- } ) => {
1552
+ SourceFileLines :: Diffs ( SourceFileDiffs { bytes_per_diff, num_diffs, raw_diffs } ) => {
1571
1553
// Convert from "diffs" form to "lines" form.
1572
1554
let num_lines = num_diffs + 1 ;
1573
1555
let mut lines = Vec :: with_capacity ( num_lines) ;
1556
+ let mut line_start = RelativeBytePos ( 0 ) ;
1574
1557
lines. push ( line_start) ;
1575
1558
1576
1559
assert_eq ! ( * num_diffs, raw_diffs. len( ) / bytes_per_diff) ;
0 commit comments