aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2010-07-21 18:35:57 +0000
committerherbelin2010-07-21 18:35:57 +0000
commit7ad1987d79e4338f20165940c60633dbbc8f3fe8 (patch)
tree2a1d3ce7b9c7f8f878d0cafc71484ab350cb117d
parentb6913e056e30f3390e29621d15da57e025d98f97 (diff)
Fix for bug #2350 was really too quick. Here is a version that works better.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13303 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/refine.ml9
1 files changed, 6 insertions, 3 deletions
diff --git a/tactics/refine.ml b/tactics/refine.ml
index db89ec6e2e..e36859cc3a 100644
--- a/tactics/refine.ml
+++ b/tactics/refine.ml
@@ -263,9 +263,12 @@ let rec compute_metamap env sigma c = match kind_of_term c with
let ensure_products n =
let p = ref 0 in
- let rec aux n =
- if n = 0 then tclFAIL 0 (mt())
- else tclORELSE intro (fun gl -> incr p; tclTHEN introf (aux (n-1)) gl) in
+ let rec aux n gl =
+ if n = 0 then tclFAIL 0 (mt()) gl
+ else
+ tclTHEN
+ (tclORELSE intro (fun gl -> incr p; introf gl))
+ (aux (n-1)) gl in
tclORELSE
(aux n)
(* Now we know how many red are needed *)