From a61e85ca348e1c024b694b61be22ce3e7809d1d8 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Thu, 1 Jul 2010 10:09:04 -0700 Subject: [PATCH] Simplify types before analyzing call structure; 2 more tests compile. --- src/boot/me/semant.ml | 6 ++++-- src/boot/me/trans.ml | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/boot/me/semant.ml b/src/boot/me/semant.ml index e70fd55f4df..1e6c462cddb 100644 --- a/src/boot/me/semant.ml +++ b/src/boot/me/semant.ml @@ -1951,7 +1951,7 @@ let call_args_referent_type Il.ScalarTy (Il.AddrTy Il.OpaqueTy) |] in - match callee_ty with + match simplified_ty callee_ty with Ast.TY_fn (tsig, taux) -> call_args_referent_type_full cx.ctxt_abi @@ -1961,7 +1961,9 @@ let call_args_referent_type (if taux.Ast.fn_is_iter then (iterator_arg_rtys()) else [||]) indirect_arg_rtys - | _ -> bug cx "Semant.call_args_referent_type on non-callable type" + | _ -> bug cx + "Semant.call_args_referent_type on non-callable type %a" + Ast.sprintf_ty callee_ty ;; let indirect_call_args_referent_type diff --git a/src/boot/me/trans.ml b/src/boot/me/trans.ml index 4b6eb19bb2b..830cf1ee13c 100644 --- a/src/boot/me/trans.ml +++ b/src/boot/me/trans.ml @@ -3376,7 +3376,7 @@ let trans_visitor (oper_str operand) and ty_arg_slots (ty:Ast.ty) : Ast.slot array = - match ty with + match simplified_ty ty with Ast.TY_fn (tsig, _) -> tsig.Ast.sig_input_slots | _ -> bug () "Trans.ty_arg_slots on non-callable type: %a" Ast.sprintf_ty ty @@ -4047,7 +4047,7 @@ let trans_visitor Some params -> params | None -> [| |] in - match ty with + match simplified_ty ty with Ast.TY_fn _ -> let (dst_cell, _) = trans_lval_maybe_init init dst in let fn_ptr =