aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2003-10-21 08:53:20 +0000
committerherbelin2003-10-21 08:53:20 +0000
commit505df17983e546305278c6332e5976d751c01b9b (patch)
tree2a7ad0ccf869e9c3cc6c2909d32e06313c8ad9a3
parent69b0bfdbe4440805840fa00eb5d9714b844dc178 (diff)
Correction bug FreshId
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@4683 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--tactics/tacinterp.ml10
1 files changed, 8 insertions, 2 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index da5ab1772d..d57309a616 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -1059,7 +1059,7 @@ let eval_opt_ident ist = option_app (eval_ident ist)
(* Interpretation of constructions *)
-(* Extracted the constr list from lfun *)
+(* Extract the constr list from lfun *)
let rec constr_list_aux env = function
| (id,v)::tl ->
let (l1,l2) = constr_list_aux env tl in
@@ -1070,6 +1070,12 @@ let rec constr_list_aux env = function
let constr_list ist env = constr_list_aux env ist.lfun
+(* Extract the identifier list from lfun *)
+let rec extract_ids = function
+ | (id,VIdentifier id')::tl -> id'::extract_ids tl
+ | _::tl -> extract_ids tl
+ | [] -> []
+
let retype_list sigma env lst =
List.fold_right (fun (x,csr) a ->
try (x,Retyping.get_judgment_of env sigma csr)::a with
@@ -1266,7 +1272,7 @@ and interp_tacarg ist gl = function
interp_app ist gl fv largs loc
| TacFreshId idopt ->
let s = match idopt with None -> "H" | Some s -> s in
- VIdentifier (Tactics.fresh_id [] (id_of_string s) gl)
+ VIdentifier (Tactics.fresh_id (extract_ids ist.lfun) (id_of_string s) gl)
| Tacexp t -> val_interp ist gl t
| TacDynamic(_,t) ->
let tg = (tag t) in