aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorletouzey2002-03-20 09:10:16 +0000
committerletouzey2002-03-20 09:10:16 +0000
commit0c1fd0fa599f972847c0e2ba839c6ce8307eb6b2 (patch)
treeddb4fe7b754531bbdc86ed3ebf2873e01f86eaf0
parent83a3896d3a9829f65f8cf19dd34890a1ea4913a9 (diff)
reparation du controle de l'apparition des termes
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@2551 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--contrib/extraction/mlutil.ml9
1 files changed, 4 insertions, 5 deletions
diff --git a/contrib/extraction/mlutil.ml b/contrib/extraction/mlutil.ml
index 59606dd65d..82fdf467c7 100644
--- a/contrib/extraction/mlutil.ml
+++ b/contrib/extraction/mlutil.ml
@@ -813,11 +813,11 @@ let rec optimize prm = function
| Dglob (r,t) :: l ->
let t = normalize t in
let b,l = inline_glob r t l in
+ let b = b || prm.modular || List.mem r prm.to_appear in
let t' = optimize_fix t in
(try optimize_Dfix prm r t' b l
with Impossible ->
- if (b || prm.modular || List.mem r prm.to_appear) then
- Dglob (r,t') :: (optimize prm l)
+ if b then Dglob (r,t') :: (optimize prm l)
else optimize prm l)
| d :: l -> d :: (optimize prm l)
@@ -825,8 +825,7 @@ and optimize_Dfix prm r t b l =
match t with
| MLfix (_, f, c) ->
if Array.length f = 1 then
- if b then
- Dfix ([|r|], c) :: (optimize prm l)
+ if b then Dfix ([|r|], c) :: (optimize prm l)
else optimize prm l
else
let v = try
@@ -834,7 +833,7 @@ and optimize_Dfix prm r t b l =
Array.map (fun id -> locate (make_qualid d id)) f
with Not_found -> raise Impossible
in
- let b,l = expunge_fix_decls prm v c (prm.modular || b) l in
+ let b,l = expunge_fix_decls prm v c b l in
if b then Dfix (v, c) :: (optimize prm l)
else optimize prm l
| _ -> raise Impossible