diff options
author | Enrico Tassi <Enrico.Tassi@inria.fr> | 2014-07-01 14:34:17 +0200 |
---|---|---|
committer | Hugo Herbelin <Hugo.Herbelin@inria.fr> | 2014-07-01 14:37:04 +0200 |
commit | 3d2582eeb492fb21b7136016bf4c1a0463dc15c2 (patch) | |
tree | f73623b8e154ed3251ab8ffe7a1c23888a9cbfe6 | |
parent | 2e8fb20e04da220cba68443a779c7ef6b08af9e5 (diff) |
Patch from Enrico Tassi to get Drop compatible with stm.
-rw-r--r-- | stm/stm.ml | 4 |
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; |