rustc_middle::ty::inherent

Trait AdtDef

pub trait AdtDef<I>:
    Copy
    + Debug
    + Hash
    + Eq
where I: Interner,
{ // Required methods fn def_id(self) -> <I as Interner>::DefId; fn is_struct(self) -> bool; fn struct_tail_ty( self, interner: I, ) -> Option<EarlyBinder<I, <I as Interner>::Ty>>; fn is_phantom_data(self) -> bool; fn all_field_tys( self, interner: I, ) -> EarlyBinder<I, impl IntoIterator<Item = <I as Interner>::Ty>>; fn sized_constraint( self, interner: I, ) -> Option<EarlyBinder<I, <I as Interner>::Ty>>; fn is_fundamental(self) -> bool; }

Required Methods§

fn def_id(self) -> <I as Interner>::DefId

fn is_struct(self) -> bool

fn struct_tail_ty( self, interner: I, ) -> Option<EarlyBinder<I, <I as Interner>::Ty>>

Returns the type of the struct tail.

Expects the AdtDef to be a struct. If it is not, then this will panic.

fn is_phantom_data(self) -> bool

fn all_field_tys( self, interner: I, ) -> EarlyBinder<I, impl IntoIterator<Item = <I as Interner>::Ty>>

fn sized_constraint( self, interner: I, ) -> Option<EarlyBinder<I, <I as Interner>::Ty>>

fn is_fundamental(self) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'tcx> AdtDef<TyCtxt<'tcx>> for AdtDef<'tcx>