about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libsyntax_pos/hygiene.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libsyntax_pos/hygiene.rs b/src/libsyntax_pos/hygiene.rs
index 6cf6f6f17c1..64cd31a485c 100644
--- a/src/libsyntax_pos/hygiene.rs
+++ b/src/libsyntax_pos/hygiene.rs
@@ -85,7 +85,14 @@ impl Mark {
 
     #[inline]
     pub fn set_expn_info(self, info: ExpnInfo) {
-        HygieneData::with(|data| data.marks[self.0 as usize].expn_info = Some(info))
+        HygieneData::with(|data| {
+            let old_info = &mut data.marks[self.0 as usize].expn_info;
+            if let Some(old_info) = old_info {
+                panic!("expansion info is reset for the mark {}\nold: {:#?}\nnew: {:#?}",
+                       self.0, old_info, info);
+            }
+            *old_info = Some(info);
+        })
     }
 
     pub fn modern(mut self) -> Mark {