From b18a6d179903546cbf5745e601ab221f06e30078 Mon Sep 17 00:00:00 2001 From: herbelin Date: Mon, 29 Dec 2008 17:15:52 +0000 Subject: - Added support for subterm matching in SearchAbout. - Backtrack on precise unfolding of "iff" in "tauto": it has effects on the naming of hypotheses (especially when doing "case H" with H of type "{x|P<->Q}" since not unfolding will eventually introduce a name "i" while unfolding will eventually introduce a name "a" (deep sigh). - Miscellaneous (error when a plugin is missing, doc hnf, standardization of names manipulating type constr_pattern, ...). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@11725 85f007b7-540e-0410-9357-904b9bb8a0f7 --- interp/constrintern.ml | 5 +++-- interp/constrintern.mli | 5 +++-- interp/topconstr.ml | 2 ++ interp/topconstr.mli | 2 ++ 4 files changed, 10 insertions(+), 4 deletions(-) (limited to 'interp') diff --git a/interp/constrintern.ml b/interp/constrintern.ml index a8dad2216a..357ce43774 100644 --- a/interp/constrintern.ml +++ b/interp/constrintern.ml @@ -1277,8 +1277,9 @@ let interp_constr_judgment_evars evdref env c = type ltac_sign = identifier list * unbound_ltac_var_map -let interp_constrpattern sigma env c = - pattern_of_rawconstr (intern_gen false sigma env ~allow_patvar:true c) +let intern_constr_pattern sigma env ?(as_type=false) ?(ltacvars=([],[])) c = + let c = intern_gen as_type ~allow_patvar:true ~ltacvars sigma env c in + pattern_of_rawconstr c let interp_aconstr impls (vars,varslist) a = let env = Global.env () in diff --git a/interp/constrintern.mli b/interp/constrintern.mli index a646b63146..6410c9b2ee 100644 --- a/interp/constrintern.mli +++ b/interp/constrintern.mli @@ -113,8 +113,9 @@ val interp_constr_judgment : evar_map -> env -> constr_expr -> unsafe_judgment (* Interprets constr patterns *) -val interp_constrpattern : - evar_map -> env -> constr_expr -> patvar list * constr_pattern +val intern_constr_pattern : + evar_map -> env -> ?as_type:bool -> ?ltacvars:ltac_sign -> + constr_pattern_expr -> patvar list * constr_pattern val interp_reference : ltac_sign -> reference -> rawconstr diff --git a/interp/topconstr.ml b/interp/topconstr.ml index 2cbe539819..6bee22f6cf 100644 --- a/interp/topconstr.ml +++ b/interp/topconstr.ml @@ -675,6 +675,8 @@ and recursion_order_expr = | CWfRec of constr_expr | CMeasureRec of constr_expr +type constr_pattern_expr = constr_expr + (***********************) (* For binders parsing *) diff --git a/interp/topconstr.mli b/interp/topconstr.mli index 2d293eacbf..cecea239c3 100644 --- a/interp/topconstr.mli +++ b/interp/topconstr.mli @@ -172,6 +172,8 @@ type typeclass_constraint = name located * binding_kind * constr_expr and typeclass_context = typeclass_constraint list +type constr_pattern_expr = constr_expr + (**********************************************************************) (* Utilities on constr_expr *) -- cgit v1.2.3