aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/tactics.ml
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2013-06-02 21:31:30 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2013-06-02 21:31:30 +0000
commit792a07d519a8dd396674e5431af2380a26d74b9c (patch)
tree6454d15eee9f3c492a6ce7111692a78cfa38b95c /tactics/tactics.ml
parent164b3bdb69f60b9bbbe83abce73c6256869d1f4b (diff)
Fixing buggy backtracking in "intros * pat" with failing "pat".
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16549 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics/tactics.ml')
-rw-r--r--tactics/tactics.ml11
1 files changed, 6 insertions, 5 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index 0595a7789..44bc4df1f 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -490,11 +490,12 @@ let intros = tclREPEAT intro
let intro_erasing id = tclTHEN (thin [id]) (introduction id)
let intro_forthcoming_then_gen loc name_flag move_flag dep_flag tac =
- let rec aux ids =
- tclORELSE0
- (intro_then_gen loc name_flag move_flag false dep_flag
- (fun id -> aux (id::ids)))
- (tac ids) in
+ let rec aux ids gl =
+ try
+ intro_then_gen loc name_flag move_flag false dep_flag
+ (fun id -> aux (id::ids)) gl
+ with RefinerError IntroNeedsProduct ->
+ tac ids gl in
aux []
let rec get_next_hyp_position id = function