diff --git a/src/comp/middle/trans/impl.rs b/src/comp/middle/trans/impl.rs index e3853127405..abaf00ad0f7 100644 --- a/src/comp/middle/trans/impl.rs +++ b/src/comp/middle/trans/impl.rs @@ -121,9 +121,10 @@ fn trans_vtable_callee(bcx: block, env: callee_env, dict: ValueRef, n_method: uint) -> lval_maybe_callee { let bcx = bcx, ccx = bcx.ccx(), tcx = ccx.tcx; let method = ty::iface_methods(tcx, iface_id)[n_method]; + let method_ty = ty::mk_fn(tcx, method.fty); let {ty: fty, llty: llfty} = - wrapper_fn_ty(ccx, val_ty(dict), node_id_type(bcx, callee_id), - method.tps); + wrapper_fn_ty(ccx, val_ty(dict), method_ty, method.tps); + // node_id_type(bcx, callee_id), let vtable = PointerCast(bcx, Load(bcx, GEPi(bcx, dict, [0, 0])), T_ptr(T_array(T_ptr(llfty), n_method + 1u))); let mptr = Load(bcx, GEPi(bcx, vtable, [0, n_method as int]));