aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
authorppedrot2013-06-12 21:07:49 +0000
committerppedrot2013-06-12 21:07:49 +0000
commitf3376db665463fa75631f001321a090165c44da1 (patch)
treece836fb16e81228c64a53cc527d4bfac1cdb59d4 /tactics
parentbea2a4f5fe5cab0abfc27492117c335a311a0c19 (diff)
Added Genarg as generic argument type.
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@16575 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics')
-rw-r--r--tactics/tacintern.ml2
-rw-r--r--tactics/tacinterp.ml5
-rw-r--r--tactics/tacsubst.ml1
3 files changed, 7 insertions, 1 deletions
diff --git a/tactics/tacintern.ml b/tactics/tacintern.ml
index aa91db9b0e..883b9094f2 100644
--- a/tactics/tacintern.ml
+++ b/tactics/tacintern.ml
@@ -787,6 +787,8 @@ and intern_genarg ist x =
in_gen (glbwit wit_var) (intern_hyp ist (out_gen (rawwit wit_var) x))
| RefArgType ->
in_gen (glbwit wit_ref) (intern_global_reference ist (out_gen (rawwit wit_ref) x))
+ | GenArgType ->
+ in_gen (glbwit wit_genarg) (intern_genarg ist (out_gen (rawwit wit_genarg) x))
| SortArgType ->
in_gen (glbwit wit_sort) (out_gen (rawwit wit_sort) x)
| ConstrArgType ->
diff --git a/tactics/tacinterp.ml b/tactics/tacinterp.ml
index 82354c815e..4847362d3a 100644
--- a/tactics/tacinterp.ml
+++ b/tactics/tacinterp.ml
@@ -1561,6 +1561,8 @@ and interp_genarg ist gl x =
in_gen (topwit wit_var) (interp_hyp ist gl (out_gen (glbwit wit_var) x))
| RefArgType ->
in_gen (topwit wit_ref) (pf_interp_reference ist gl (out_gen (glbwit wit_ref) x))
+ | GenArgType ->
+ in_gen (topwit wit_genarg) (interp_genarg ist gl (out_gen (glbwit wit_genarg) x))
| SortArgType ->
let (sigma,c_interp) =
pf_interp_constr ist gl
@@ -2057,7 +2059,7 @@ and interp_atomic ist gl tac =
tac args ist
| TacAlias (loc,s,l,(_,body)) -> fun gl ->
let evdref = ref gl.sigma in
- let f x = match genarg_tag x with
+ let rec f x = match genarg_tag x with
| IntArgType ->
of_tacvalue (VInteger (out_gen (glbwit wit_int) x))
| IntOrVarArgType ->
@@ -2075,6 +2077,7 @@ and interp_atomic ist gl tac =
| RefArgType ->
of_tacvalue (VConstr ([],constr_of_global
(pf_interp_reference ist gl (out_gen (glbwit wit_ref) x))))
+ | GenArgType -> f (out_gen (glbwit wit_genarg) x)
| SortArgType ->
of_tacvalue (VConstr ([],mkSort (interp_sort (out_gen (glbwit wit_sort) x))))
| ConstrArgType ->
diff --git a/tactics/tacsubst.ml b/tactics/tacsubst.ml
index bb7caf93b4..3070cf01cc 100644
--- a/tactics/tacsubst.ml
+++ b/tactics/tacsubst.ml
@@ -313,6 +313,7 @@ and subst_genarg subst (x:glob_generic_argument) =
| RefArgType ->
in_gen (glbwit wit_ref) (subst_global_reference subst
(out_gen (glbwit wit_ref) x))
+ | GenArgType -> in_gen (glbwit wit_genarg) (subst_genarg subst (out_gen (glbwit wit_genarg) x))
| SortArgType ->
in_gen (glbwit wit_sort) (out_gen (glbwit wit_sort) x)
| ConstrArgType ->