Skip to content

Commit 3f639a0

Browse files
committed
Do not intern filemap to entry w/ mismatched length. Fix #37274 (I think).
1 parent c40fad3 commit 3f639a0

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

src/librustc_metadata/decoder.rs

+4
Original file line numberDiff line numberDiff line change
@@ -1207,6 +1207,10 @@ impl<'a, 'tcx> CrateMetadata {
12071207
}
12081208

12091209
fn are_equal_modulo_startpos(fm1: &syntax_pos::FileMap, fm2: &syntax_pos::FileMap) -> bool {
1210+
if fm1.byte_length() != fm2.byte_length() {
1211+
return false;
1212+
}
1213+
12101214
if fm1.name != fm2.name {
12111215
return false;
12121216
}

src/libsyntax_pos/lib.rs

+3
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)