aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
authorherbelin2006-01-16 14:03:05 +0000
committerherbelin2006-01-16 14:03:05 +0000
commit655f6a6305812d3f95d27f5579e119523ae3bef0 (patch)
tree0bc3e45faeea4fe18c388aa69e2722dc600b1e2a /interp
parent58529cf2252bf6ae386a45c8587bdc9b3285c1c5 (diff)
Version préliminaire d'inversion de la compilation du filtrage
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@7881 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r--interp/constrextern.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml
index 40d0465741..ff494c7825 100644
--- a/interp/constrextern.ml
+++ b/interp/constrextern.ml
@@ -899,7 +899,7 @@ let rec raw_of_pat env = function
let k = mip.Declarations.mind_nrealargs in
let nparams = mib.Declarations.mind_nparams in
let cstrnargs = mip.Declarations.mind_consnrealargs in
- Detyping.detype_case false (raw_of_pat env)(raw_of_eqn env)
+ Detyping.detype_case false (raw_of_pat env) (raw_of_eqns env)
(fun _ _ -> false (* lazy: don't try to display pattern with "if" *))
avoid (ind,cs,nparams,cstrnargs,k) typopt tm bv
| PCase _ -> error "Unsupported case-analysis while printing pattern"
@@ -907,6 +907,9 @@ let rec raw_of_pat env = function
| PCoFix c -> Detyping.detype false [] env (mkCoFix c)
| PSort s -> RSort (loc,s)
+and raw_of_eqns env constructs consnargsl bl =
+ Array.to_list (array_map3 (raw_of_eqn env) constructs consnargsl bl)
+
and raw_of_eqn env constr construct_nargs branch =
let make_pat x env b ids =
let avoid = List.fold_right (name_fold (fun x l -> x::l)) env [] in