summaryrefslogtreecommitdiff
path: root/src/mod_db.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-05-02 08:56:19 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2012-05-02 08:56:19 -0400
commit1fd7e4392db0bace167853850188c464b00a8126 (patch)
tree62439e548ac25411e953783beb116b5937e87fae /src/mod_db.sml
parentb314c01095c5cd4617f71f706e43530a57ffb65b (diff)
Don't modify the module cache after elaboration failures
Diffstat (limited to 'src/mod_db.sml')
-rw-r--r--src/mod_db.sml6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mod_db.sml b/src/mod_db.sml
index 22c11183..5e9e3342 100644
--- a/src/mod_db.sml
+++ b/src/mod_db.sml
@@ -141,4 +141,10 @@ fun lookup (d : Source.decl) =
NONE)
| _ => NONE
+val byNameBackup = ref (!byName)
+val byIdBackup = ref (!byId)
+
+fun snapshot () = (byNameBackup := !byName; byIdBackup := !byId)
+fun revert () = (byName := !byNameBackup; byId := !byIdBackup)
+
end