summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorMurarth <murarth@gmail.com>2014-11-28 21:56:09 -0700
committerMurarth <murarth@gmail.com>2014-11-29 09:50:48 -0700
commit004533ea755ecfc5d65e282366aaffc523e9632c (patch)
tree6da61627cfc0439e7eb220413eceed153be01df2 /src/libsyntax/ext
parent29e928f2ba3501d37660314f6186d0e2ac18b9db (diff)
downloadrust-004533ea755ecfc5d65e282366aaffc523e9632c.tar.gz
rust-004533ea755ecfc5d65e282366aaffc523e9632c.zip
Fix rustc panic on second compile_input
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/mtwt.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libsyntax/ext/mtwt.rs b/src/libsyntax/ext/mtwt.rs
index e6d886e28ba..6ba90bbebed 100644
--- a/src/libsyntax/ext/mtwt.rs
+++ b/src/libsyntax/ext/mtwt.rs
@@ -136,6 +136,16 @@ pub fn clear_tables() {
     with_resolve_table_mut(|table| *table = HashMap::new());
 }
 
+/// Reset the tables to their initial state
+pub fn reset_tables() {
+    with_sctable(|table| {
+        *table.table.borrow_mut() = vec!(EmptyCtxt, IllegalCtxt);
+        *table.mark_memo.borrow_mut() = HashMap::new();
+        *table.rename_memo.borrow_mut() = HashMap::new();
+    });
+    with_resolve_table_mut(|table| *table = HashMap::new());
+}
+
 /// Add a value to the end of a vec, return its index
 fn idx_push<T>(vec: &mut Vec<T>, val: T) -> u32 {
     vec.push(val);