Skip to content

Commit b15785b

Browse files
committed
hygiene: Make sure expansion info is set at most once for a given Mark
1 parent 17f20be commit b15785b

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/libsyntax_pos/hygiene.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,14 @@ impl Mark {
8585

8686
#[inline]
8787
pub fn set_expn_info(self, info: ExpnInfo) {
88-
HygieneData::with(|data| data.marks[self.0 as usize].expn_info = Some(info))
88+
HygieneData::with(|data| {
89+
let old_info = &mut data.marks[self.0 as usize].expn_info;
90+
if let Some(old_info) = old_info {
91+
panic!("expansion info is reset for the mark {}\nold: {:#?}\nnew: {:#?}",
92+
self.0, old_info, info);
93+
}
94+
*old_info = Some(info);
95+
})
8996
}
9097

9198
pub fn modern(mut self) -> Mark {

0 commit comments

Comments
 (0)