aboutsummaryrefslogtreecommitdiffhomepage
path: root/kernel
diff options
context:
space:
mode:
authorGravatar letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-06-05 23:15:51 +0000
committerGravatar letouzey <letouzey@85f007b7-540e-0410-9357-904b9bb8a0f7>2006-06-05 23:15:51 +0000
commitc9f4643f733fbfa368cb4644f95b2e233d5ad973 (patch)
treebcdad055e21901b95d8e557a9c9883e157abb66d /kernel
parentb93b31918a0c583711ea9ff35ebeee18f9aba511 (diff)
Oh le joli bug dans le kernel:
Definissons un foncteur dependant de X et Y. Alors: Module M : Funsig (X : T) Funsig (Y : T) Sig End := Functor [Y:T] Functor [X:T] Struct End Notez les places de X et Y, a cause d'un fold_right qui aurait du etre gauchiste. Etonnement, tout marchait tres bien en Coq, donc ce bug a survecu discretement depuis l'ajout initial des modules. Avant que je n'essaie d'extraire un foncteur a deux arguments... git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@8898 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
-rw-r--r--kernel/safe_typing.ml6
1 files changed, 3 insertions, 3 deletions
diff --git a/kernel/safe_typing.ml b/kernel/safe_typing.ml
index 38587f7e5..c63762f54 100644
--- a/kernel/safe_typing.ml
+++ b/kernel/safe_typing.ml
@@ -269,10 +269,10 @@ let end_module l restype senv =
mtb, Some mtb, cst
in
let mexpr =
- List.fold_right
- (fun (arg_id,arg_b) mtb -> MEBfunctor (arg_id,arg_b,mtb))
- params
+ List.fold_left
+ (fun mtb (arg_id,arg_b) -> MEBfunctor (arg_id,arg_b,mtb))
(MEBstruct (modinfo.msid, List.rev senv.revstruct))
+ params
in
let mb =
{ mod_expr = Some mexpr;