Enum clippy_utils::ty::ExprFnSig
source · pub enum ExprFnSig<'tcx> {
Sig(Binder<'tcx, FnSig<'tcx>>, Option<DefId>),
Closure(Option<&'tcx FnDecl<'tcx>>, Binder<'tcx, FnSig<'tcx>>),
Trait(Binder<'tcx, Ty<'tcx>>, Option<Binder<'tcx, Ty<'tcx>>>, Option<DefId>),
}
Expand description
A signature for a function like type.
Variants§
Sig(Binder<'tcx, FnSig<'tcx>>, Option<DefId>)
Closure(Option<&'tcx FnDecl<'tcx>>, Binder<'tcx, FnSig<'tcx>>)
Trait(Binder<'tcx, Ty<'tcx>>, Option<Binder<'tcx, Ty<'tcx>>>, Option<DefId>)
Implementations§
source§impl<'tcx> ExprFnSig<'tcx>
impl<'tcx> ExprFnSig<'tcx>
sourcepub fn input(self, i: usize) -> Option<Binder<'tcx, Ty<'tcx>>>
pub fn input(self, i: usize) -> Option<Binder<'tcx, Ty<'tcx>>>
Gets the argument type at the given offset. This will return None
when the index is out of
bounds only for variadic functions, otherwise this will panic.
sourcepub fn input_with_hir(
self,
i: usize
) -> Option<(Option<&'tcx Ty<'tcx>>, Binder<'tcx, Ty<'tcx>>)>
pub fn input_with_hir(
self,
i: usize
) -> Option<(Option<&'tcx Ty<'tcx>>, Binder<'tcx, Ty<'tcx>>)>
Gets the argument type at the given offset. For closures this will also get the type as
written. This will return None
when the index is out of bounds only for variadic
functions, otherwise this will panic.
sourcepub fn output(self) -> Option<Binder<'tcx, Ty<'tcx>>>
pub fn output(self) -> Option<Binder<'tcx, Ty<'tcx>>>
Gets the result type, if one could be found. Note that the result type of a trait may not be specified.
pub fn predicates_id(&self) -> Option<DefId>
Trait Implementations§
Auto Trait Implementations§
impl<'tcx> !RefUnwindSafe for ExprFnSig<'tcx>
impl<'tcx> !Send for ExprFnSig<'tcx>
impl<'tcx> !Sync for ExprFnSig<'tcx>
impl<'tcx> Unpin for ExprFnSig<'tcx>
impl<'tcx> !UnwindSafe for ExprFnSig<'tcx>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 40 bytes
Size for each variant:
Sig
: 32 bytesClosure
: 32 bytesTrait
: 40 bytes