aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/tacticals.mli
diff options
context:
space:
mode:
authorGravatar Arnaud Spiwack <arnaud@spiwack.net>2014-12-08 10:44:17 +0100
committerGravatar Arnaud Spiwack <arnaud@spiwack.net>2014-12-08 10:44:17 +0100
commitbdc5c300fc0c461a930b3766c9841d5c72f7947a (patch)
tree0d7acbf51a8cb798ad571dcdfea4acdfa489c91f /tactics/tacticals.mli
parent9a34d3edce15382f2a00ee7870b49fc29187ccbf (diff)
Constructor tactics backtracking is done using [Tacticals.New] rather than [Proofview].
The primitives in [Tacticals] respect Ltac's error level, whereas the one in [Proofview] do not necessarily. In that case the error caught was ignored causing arbitrary error level after [constructor] to be canceled. Needed the addition of an [ORD] variant to [OR] in [Tacticals.New] to avoid unnecessary precomputation (the 'D' stands for 'delay'). Fixes #3838.
Diffstat (limited to 'tactics/tacticals.mli')
-rw-r--r--tactics/tacticals.mli5
1 files changed, 5 insertions, 0 deletions
diff --git a/tactics/tacticals.mli b/tactics/tacticals.mli
index d6630bb79..35a320589 100644
--- a/tactics/tacticals.mli
+++ b/tactics/tacticals.mli
@@ -169,6 +169,11 @@ module New : sig
(** Fail with a [User_Error] containing the given message. *)
val tclOR : unit tactic -> unit tactic -> unit tactic
+ val tclORD : unit tactic -> (unit -> unit tactic) -> unit tactic
+ (** Like {!tclOR} but accepts a delayed tactic as a second argument
+ in the form of a function which will be run only in case of
+ backtracking. *)
+
val tclONCE : unit tactic -> unit tactic
val tclEXACTLY_ONCE : unit tactic -> unit tactic
val tclORELSE0 : unit tactic -> unit tactic -> unit tactic