Skip to content

Commit e53b4dd

Browse files
pnkfelixbrson
authored andcommitted
Do not intern filemap to entry w/ mismatched length. Fix rust-lang#37274 (I think).
1 parent 947579e commit e53b4dd

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/librustc_metadata/decoder.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,6 +1106,10 @@ impl<'a, 'tcx> CrateMetadata {
11061106
}
11071107

11081108
fn are_equal_modulo_startpos(fm1: &syntax_pos::FileMap, fm2: &syntax_pos::FileMap) -> bool {
1109+
if fm1.byte_length() != fm2.byte_length() {
1110+
return false;
1111+
}
1112+
11091113
if fm1.name != fm2.name {
11101114
return false;
11111115
}

src/libsyntax_pos/lib.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,9 @@ impl FileMap {
481481
self.src.is_none()
482482
}
483483

484+
pub fn byte_length(&self) -> u32 {
485+
self.end_pos.0 - self.start_pos.0
486+
}
484487
pub fn count_lines(&self) -> usize {
485488
self.lines.borrow().len()
486489
}

0 commit comments

Comments
 (0)