aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics/tacinterp.ml
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-04-24 10:12:49 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2009-04-24 10:12:49 +0000
commitcf71bfb25ddba52c72bdec4507021cd6e5ee06e8 (patch)
tree593d4585cb99091c76a8586dc4f9c17d87cf7bcf /tactics/tacinterp.ml
parent8bc5a17d7beb67a68befe2fcd73932d477d1925f (diff)
Fixing bug #2308 ("instantiate" tactic did not comply with
the interpretation mechanism of ltac variables) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@12100 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics/tacinterp.ml')
-rw-r--r--tactics/tacinterp.ml12
1 files changed, 10 insertions, 2 deletions
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index a7b3a15e3..da7ae038a 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -1401,6 +1401,14 @@ let retype_list sigma env lst =
try (x,Retyping.get_judgment_of env sigma csr)::a with
| Anomaly _ -> a) lst []
+let extract_ltac_vars_data ist sigma env =
+ let (ltacvars,_ as vars) = constr_list ist env in
+ vars, retype_list sigma env ltacvars
+
+let extract_ltac_vars ist sigma env =
+ let (_,unbndltacvars),typs = extract_ltac_vars_data ist sigma env in
+ typs,unbndltacvars
+
let implicit_tactic = ref None
let declare_implicit_tactic tac = implicit_tactic := Some tac
@@ -1446,8 +1454,8 @@ let solve_remaining_evars env initial_sigma evd c =
proc_rec (Evarutil.nf_isevar !evdref c)
let interp_gen kind ist sigma env (c,ce) =
- let (ltacvars,unbndltacvars as vars) = constr_list ist env in
- let typs = retype_list sigma env ltacvars in
+ let (ltacvars,unbndltacvars as vars),typs =
+ extract_ltac_vars_data ist sigma env in
let c = match ce with
| None -> c
(* If at toplevel (ce<>None), the error can be due to an incorrect