aboutsummaryrefslogtreecommitdiff
path: root/interp
diff options
context:
space:
mode:
authorbertot2004-02-26 13:35:24 +0000
committerbertot2004-02-26 13:35:24 +0000
commit67fe536720c5ef5bb509249b9a30cbc6f2cebd92 (patch)
tree54964d8e58b41b401d097f044d50b03ee68da118 /interp
parente6370d38bd56ccd070cb33d257147ace238efc8b (diff)
Keep structure information for Fixpoint declaration and Fix terms
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@5386 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'interp')
-rw-r--r--interp/constrextern.ml4
-rw-r--r--interp/constrintern.ml2
-rw-r--r--interp/topconstr.ml4
-rw-r--r--interp/topconstr.mli2
4 files changed, 6 insertions, 6 deletions
diff --git a/interp/constrextern.ml b/interp/constrextern.ml
index e28065afd8..fa1faf9cf3 100644
--- a/interp/constrextern.ml
+++ b/interp/constrextern.ml
@@ -1009,7 +1009,7 @@ let rec check_same_type ty1 ty2 =
match ty1, ty2 with
| CRef r1, CRef r2 -> check_same_ref r1 r2
| CFix(_,(_,id1),fl1), CFix(_,(_,id2),fl2) when id1=id2 ->
- List.iter2 (fun (id1,i1,a1,b1) (id2,i2,a2,b2) ->
+ List.iter2 (fun (id1,i1,_,a1,b1) (id2,i2,_,a2,b2) ->
if id1<>id2 || i1<>i2 then failwith "not same fix";
check_same_type a1 a2;
check_same_type b1 b2)
@@ -1508,7 +1508,7 @@ let rec extern inctx scopes vars r =
| RFix (nv,n) ->
let listdecl =
Array.mapi (fun i fi ->
- (fi,nv.(i),extern_type scopes vars tyv.(i),
+ (fi,nv.(i), None, extern_type scopes vars tyv.(i),
extern false scopes vars' bv.(i))) idv
in
CFix (loc,(loc,idv.(n)),Array.to_list listdecl)
diff --git a/interp/constrintern.ml b/interp/constrintern.ml
index c6a819d440..bfd74a5aa2 100644
--- a/interp/constrintern.ml
+++ b/interp/constrintern.ml
@@ -528,7 +528,7 @@ let rec intern_cases_pattern scopes aliases tmp_scope = function
let rec intern_fix = function
| [] -> ([],[],[],[])
- | (fi, n, c, t)::rest->
+ | (fi, n, on, c, t)::rest->
let (lf,ln,lc,lt) = intern_fix rest in
(fi::lf, n::ln, c::lc, t::lt)
diff --git a/interp/topconstr.ml b/interp/topconstr.ml
index 7dda9a3175..3d26e9d7f8 100644
--- a/interp/topconstr.ml
+++ b/interp/topconstr.ml
@@ -361,7 +361,7 @@ type constr_expr =
| CDelimiters of loc * string * constr_expr
| CDynamic of loc * Dyn.t
-and fixpoint_expr = identifier * int * constr_expr * constr_expr
+and fixpoint_expr = identifier * int * int option * constr_expr * constr_expr
and cofixpoint_expr = identifier * constr_expr * constr_expr
@@ -518,7 +518,7 @@ let map_constr_expr_with_binders f g e = function
let e' = option_fold_right (name_fold g) ona e in
CIf (loc,f e c,(ona,option_app (f e') po),f e b1,f e b2)
| CFix (loc,id,dl) ->
- CFix (loc,id,List.map (fun (id,n,t,d) -> (id,n,f e t,f e d)) dl)
+ CFix (loc,id,List.map (fun (id,n,on,t,d) -> (id,n,on,f e t,f e d)) dl)
| CCoFix (loc,id,dl) ->
CCoFix (loc,id,List.map (fun (id,t,d) -> (id,f e t,f e d)) dl)
diff --git a/interp/topconstr.mli b/interp/topconstr.mli
index c6be360284..d35418b515 100644
--- a/interp/topconstr.mli
+++ b/interp/topconstr.mli
@@ -107,7 +107,7 @@ type constr_expr =
| CDelimiters of loc * string * constr_expr
| CDynamic of loc * Dyn.t
-and fixpoint_expr = identifier * int * constr_expr * constr_expr
+and fixpoint_expr = identifier * int * int option * constr_expr * constr_expr
and cofixpoint_expr = identifier * constr_expr * constr_expr