aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2014-07-01 14:34:17 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2014-07-01 14:37:04 +0200
commit3d2582eeb492fb21b7136016bf4c1a0463dc15c2 (patch)
treef73623b8e154ed3251ab8ffe7a1c23888a9cbfe6
parent2e8fb20e04da220cba68443a779c7ef6b08af9e5 (diff)
Patch from Enrico Tassi to get Drop compatible with stm.
-rw-r--r--stm/stm.ml4
1 files changed, 4 insertions, 0 deletions
diff --git a/stm/stm.ml b/stm/stm.ml
index 4a409c085..f62bae4b1 100644
--- a/stm/stm.ml
+++ b/stm/stm.ml
@@ -1602,6 +1602,7 @@ let merge_proof_branch qast keep brname =
(* When tty is true, this code also does some of the job of the user interface:
jump back to a state that is valid *)
let handle_failure e vcs tty =
+ if e = Errors.Drop then raise e else
match Stateid.get e with
| None ->
VCS.restore vcs;
@@ -1740,6 +1741,9 @@ let process_transaction ~tty verbose c (loc, expr) =
rc
(* Side effect on all branches *)
+ | VtUnknown, _ when expr = VernacToplevelControl Drop ->
+ vernac_interp (VCS.get_branch_pos head) x; `Ok
+
| VtSideff l, w ->
let id = VCS.new_node () in
VCS.checkout VCS.Branch.master;