diff options
author | 2009-04-24 10:12:49 +0000 | |
---|---|---|
committer | 2009-04-24 10:12:49 +0000 | |
commit | cf71bfb25ddba52c72bdec4507021cd6e5ee06e8 (patch) | |
tree | 593d4585cb99091c76a8586dc4f9c17d87cf7bcf /tactics/tacinterp.ml | |
parent | 8bc5a17d7beb67a68befe2fcd73932d477d1925f (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.ml | 12 |
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 |