aboutsummaryrefslogtreecommitdiff
path: root/interp/constrarg.ml
diff options
context:
space:
mode:
authorArnaud Spiwack2014-07-29 12:20:54 +0200
committerArnaud Spiwack2014-07-29 17:16:29 +0200
commit52247f50fa9aed83cc4a9a714b6b8f779479fd9b (patch)
treedeba7d80c23fcef9ac3632beca3b0e0b7b8567bd /interp/constrarg.ml
parentdfb5897b99cd21934c5d096c329585367665b986 (diff)
Add a type of untyped term to Ltac's value.
It is meant to avoid intermediary retyping when a term is built in Ltac. See #3218. The implementation makes a small modification in Constrintern: now the main internalisation function can take an extra substitution from Ltac variables to glob_constr and will apply the substitution during the internalisation.
Diffstat (limited to 'interp/constrarg.ml')
-rw-r--r--interp/constrarg.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/interp/constrarg.ml b/interp/constrarg.ml
index c25e02c02c..cb980f5a38 100644
--- a/interp/constrarg.ml
+++ b/interp/constrarg.ml
@@ -47,6 +47,8 @@ let wit_constr = unsafe_of_type ConstrArgType
let wit_constr_may_eval = unsafe_of_type ConstrMayEvalArgType
+let wit_uconstr = Genarg.make0 None "uconstr"
+
let wit_open_constr = unsafe_of_type OpenConstrArgType
let wit_constr_with_bindings = unsafe_of_type ConstrWithBindingsArgType
@@ -65,4 +67,5 @@ let () =
register_name0 wit_intro_pattern "Constrarg.wit_intro_pattern";
register_name0 wit_tactic "Constrarg.wit_tactic";
register_name0 wit_sort "Constrarg.wit_sort";
+ register_name0 wit_uconstr "Constrarg.uconstr";
register_name0 wit_clause_dft_concl "Constrarg.wit_clause_dft_concl";