From 250ccb8e2382f6352bfb8b7470c1cef7f81cbee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9onard=20G=C3=A9rard?= Date: Fri, 8 Jul 2011 17:22:58 +0200 Subject: [PATCH] Fix iterators obc pattern types --- compiler/main/mls2obc.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/compiler/main/mls2obc.ml b/compiler/main/mls2obc.ml index 64993c3..e7462ed 100644 --- a/compiler/main/mls2obc.ml +++ b/compiler/main/mls2obc.ml @@ -546,7 +546,7 @@ and translate_iterator map call_context it name_list let array_of_output name_list ty_list = let rec aux l ty xl = match ty, xl with | _, [] -> l - | Tarray(tyn, _), x :: xl -> aux (mk_pattern ~loc:loc ty (Larray(l, mk_evar_int x))) tyn xl + | Tarray(tyn, _), x :: xl -> aux (mk_pattern ~loc:loc tyn (Larray(l, mk_evar_int x))) tyn xl | _, _ -> assert false in List.map2 (fun l ty -> aux l ty xl) name_list ty_list @@ -590,11 +590,11 @@ and translate_iterator map call_context it name_list | Minils.Imapfold -> let (c_list, acc_in) = split_last c_list in let c_list = array_of_input c_list in - let ty_list = Misc.map_butlast unarray (Types.unprod ty) in - let ty_name_list, _ = Misc.split_last (Types.unprod ty) in + let ty_list = Types.unprod ty in + let ty_name_list, _ = Misc.split_last ty_list in let (name_list, acc_out) = Misc.split_last name_list in let name_list = array_of_output name_list ty_name_list in - let node_out_ty = Types.prod ty_list in + let node_out_ty = Types.prod (Misc.map_butlast unarray ty_list) in let v, si, j, action = mk_node_call map call_context app loc (name_list @ [ acc_out ]) (p_list @ c_list @ [ exp_of_pattern acc_out ])