Simplify types before analyzing call structure; 2 more tests compile.

This commit is contained in:
Graydon Hoare 2010-07-01 10:09:04 -07:00
parent a0c9d4fe9a
commit a61e85ca34
2 changed files with 6 additions and 4 deletions

View File

@ -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

View File

@ -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 =