@@ -1314,11 +1314,6 @@ impl SourceFileLines {
13141314/// small crates where very little of `std`'s metadata is used.
13151315#[ derive( Clone ) ]
13161316pub 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-
13221317 /// Always 1, 2, or 4. Always as small as possible, while being big
13231318 /// enough to hold the length of the longest line in the source file.
13241319 /// The 1 case is by far the most common.
@@ -1422,7 +1417,7 @@ impl<S: Encoder> Encodable<S> for SourceFile {
14221417 s. emit_u8 ( bytes_per_diff as u8 ) ;
14231418
14241419 // Encode the first element.
1425- lines[ 0 ] . encode ( s ) ;
1420+ assert_eq ! ( lines[ 0 ] , RelativeBytePos ( 0 ) ) ;
14261421
14271422 // Encode the difference list.
14281423 let diff_iter = lines. array_windows ( ) . map ( |& [ fst, snd] | snd - fst) ;
@@ -1472,18 +1467,10 @@ impl<D: Decoder> Decodable<D> for SourceFile {
14721467 // Read the number of bytes used per diff.
14731468 let bytes_per_diff = d. read_u8 ( ) as usize ;
14741469
1475- // Read the first element.
1476- let line_start: RelativeBytePos = Decodable :: decode ( d) ;
1477-
14781470 // Read the difference list.
14791471 let num_diffs = num_lines as usize - 1 ;
14801472 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 } )
14871474 } else {
14881475 SourceFileLines :: Lines ( vec ! [ ] )
14891476 }
@@ -1562,15 +1549,11 @@ impl SourceFile {
15621549 let mut guard = self . lines . borrow_mut ( ) ;
15631550 match & * guard {
15641551 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 } ) => {
15711553 // Convert from "diffs" form to "lines" form.
15721554 let num_lines = num_diffs + 1 ;
15731555 let mut lines = Vec :: with_capacity ( num_lines) ;
1556+ let mut line_start = RelativeBytePos ( 0 ) ;
15741557 lines. push ( line_start) ;
15751558
15761559 assert_eq ! ( * num_diffs, raw_diffs. len( ) / bytes_per_diff) ;
0 commit comments