pub fn direct_fn_type<'a>(&self, ccx: &CrateContext<'a, 'tcx>,
                              extra_args: &[Ty<'tcx>]) -> FnType {
        let abi = self.ty.fn_abi();
        let sig = ccx.tcx().erase_late_bound_regions_and_normalize(self.ty.fn_sig());
        let mut fn_ty = FnType::unadjusted(ccx, abi, &sig, extra_args);
        if let Virtual(_) = self.data {
            // Don't pass the vtable, it's not an argument of the virtual fn.
            fn_ty.args[1].ignore();
        }
        fn_ty.adjust_for_abi(ccx, abi, &sig);
        fn_ty
    }
/// Get the abi::FnType for a direct call. Mainly deals with the fact
/// that a Virtual call doesn't take the vtable, like its shim does.
/// The extra argument types are for variadic (extern "C") functions.
Get the abi::FnType for a direct call. Mainly deals with the fact
that a Virtual call doesn't take the vtable, like its shim does.
The extra argument types are for variadic (extern "C") functions.
Get the abi :: FnType for a direct call . Mainly deals with the fact that a Virtual call doesn ' t take the vtable like its shim does . The extra argument types are for variadic ( extern " C " ) functions .
pub fn direct_fn_type<'a>(&self, ccx: &CrateContext<'a, 'tcx>,
                              extra_args: &[Ty<'tcx>]) -> FnType {
        let abi = self.ty.fn_abi();
        let sig = ccx.tcx().erase_late_bound_regions_and_normalize(self.ty.fn_sig());
        let mut fn_ty = FnType::unadjusted(ccx, abi, &sig, extra_args);
        if let Virtual(_) = self.data {
            // Don't pass the vtable, it's not an argument of the virtual fn.
            fn_ty.args[1].ignore();
        }
        fn_ty.adjust_for_abi(ccx, abi, &sig);
        fn_ty
    }
pub fn direct_fn_type < ' a > ( & self , ccx : & CrateContext < ' a , ' tcx > , extra_args : & [ Ty < ' tcx > ] ) -> FnType { let abi = self . ty . fn_abi ( ) ; let sig = ccx . tcx ( ) . erase_late_bound_regions_and_normalize ( self . ty . fn_sig ( ) ) ; let mut fn_ty = FnType :: unadjusted ( ccx , abi , & sig , extra_args ) ; if let Virtual ( _ ) = self . data { // Don't pass the vtable, it's not an argument of the virtual fn. fn_ty . args [ 1 ] . ignore ( ) ; } fn_ty . adjust_for_abi ( ccx , abi , & sig ) ; fn_ty }
Get the abi::FnType for a direct call.
Get the abi :: FnType for a direct call .
&self
ccx
&CrateContext<'a, 'tcx>
extra_args
&[Ty<'tcx>]
&self
ccx
&CrateContext<'a, 'tcx>
extra_args
&[Ty<'tcx>]