Trait rustc_middle::ty::layout::FnAbiExt [−][src]
Required methods
fn of_fn_ptr(cx: &C, sig: PolyFnSig<'tcx>, extra_args: &[Ty<'tcx>]) -> Self[src]
Compute a FnAbi suitable for indirect calls, i.e. to fn pointers.
NB: this doesn’t handle virtual calls - those should use FnAbi::of_instance
instead, where the instance is a InstanceDef::Virtual.
fn of_instance(
cx: &C,
instance: Instance<'tcx>,
extra_args: &[Ty<'tcx>]
) -> Self[src]
cx: &C,
instance: Instance<'tcx>,
extra_args: &[Ty<'tcx>]
) -> Self
Compute a FnAbi suitable for declaring/defining an fn instance, and for
direct calls to an fn.
NB: that includes virtual calls, which are represented by “direct calls”
to a InstanceDef::Virtual instance (of <dyn Trait as Trait>::fn).
fn new_internal(
cx: &C,
sig: PolyFnSig<'tcx>,
extra_args: &[Ty<'tcx>],
caller_location: Option<Ty<'tcx>>,
codegen_fn_attr_flags: CodegenFnAttrFlags,
make_self_ptr_thin: bool
) -> Self[src]
cx: &C,
sig: PolyFnSig<'tcx>,
extra_args: &[Ty<'tcx>],
caller_location: Option<Ty<'tcx>>,
codegen_fn_attr_flags: CodegenFnAttrFlags,
make_self_ptr_thin: bool
) -> Self
fn adjust_for_abi(&mut self, cx: &C, abi: SpecAbi)[src]
Implementations on Foreign Types
impl<'tcx, C> FnAbiExt<'tcx, C> for FnAbi<'tcx, Ty<'tcx>> where
C: LayoutOf<Ty = Ty<'tcx>, TyAndLayout = TyAndLayout<'tcx>> + HasDataLayout + HasTargetSpec + HasTyCtxt<'tcx> + HasParamEnv<'tcx>, [src]
C: LayoutOf<Ty = Ty<'tcx>, TyAndLayout = TyAndLayout<'tcx>> + HasDataLayout + HasTargetSpec + HasTyCtxt<'tcx> + HasParamEnv<'tcx>,
fn of_fn_ptr(cx: &C, sig: PolyFnSig<'tcx>, extra_args: &[Ty<'tcx>]) -> Self[src]
fn of_instance(
cx: &C,
instance: Instance<'tcx>,
extra_args: &[Ty<'tcx>]
) -> Self[src]
cx: &C,
instance: Instance<'tcx>,
extra_args: &[Ty<'tcx>]
) -> Self
fn new_internal(
cx: &C,
sig: PolyFnSig<'tcx>,
extra_args: &[Ty<'tcx>],
caller_location: Option<Ty<'tcx>>,
codegen_fn_attr_flags: CodegenFnAttrFlags,
force_thin_self_ptr: bool
) -> Self[src]
cx: &C,
sig: PolyFnSig<'tcx>,
extra_args: &[Ty<'tcx>],
caller_location: Option<Ty<'tcx>>,
codegen_fn_attr_flags: CodegenFnAttrFlags,
force_thin_self_ptr: bool
) -> Self