Struct rustc_middle::ty::trait_def::TraitDef [−][src]
pub struct TraitDef {
pub def_id: DefId,
pub unsafety: Unsafety,
pub paren_sugar: bool,
pub has_auto_impl: bool,
pub is_marker: bool,
pub skip_array_during_method_dispatch: bool,
pub specialization_kind: TraitSpecializationKind,
pub def_path_hash: DefPathHash,
}Expand description
A trait’s definition with type information.
Fields
def_id: DefIdunsafety: Unsafetyparen_sugar: boolExpand description
If true, then this trait had the #[rustc_paren_sugar]
attribute, indicating that it should be used with Foo()
sugar. This is a temporary thing – eventually any trait will
be usable with the sugar (or without it).
has_auto_impl: boolis_marker: boolExpand description
If true, then this trait has the #[marker] attribute, indicating
that all its associated items have defaults that cannot be overridden,
and thus impls of it are allowed to overlap.
skip_array_during_method_dispatch: boolExpand description
If true, then this trait has the #[rustc_skip_array_during_method_dispatch]
attribute, indicating that editions before 2021 should not consider this trait
during method dispatch if the receiver is an array.
specialization_kind: TraitSpecializationKindExpand description
Used to determine whether the standard library is allowed to specialize on this trait.
def_path_hash: DefPathHashExpand description
The ICH of this trait’s DefPath, cached here so it doesn’t have to be recomputed all the time.
Implementations
impl<'tcx> TraitDef[src]
impl<'tcx> TraitDef[src]pub fn new(
def_id: DefId,
unsafety: Unsafety,
paren_sugar: bool,
has_auto_impl: bool,
is_marker: bool,
skip_array_during_method_dispatch: bool,
specialization_kind: TraitSpecializationKind,
def_path_hash: DefPathHash
) -> TraitDef[src]
def_id: DefId,
unsafety: Unsafety,
paren_sugar: bool,
has_auto_impl: bool,
is_marker: bool,
skip_array_during_method_dispatch: bool,
specialization_kind: TraitSpecializationKind,
def_path_hash: DefPathHash
) -> TraitDef
pub fn ancestors(
&self,
tcx: TyCtxt<'tcx>,
of_impl: DefId
) -> Result<Ancestors<'tcx>, ErrorReported>[src]
&self,
tcx: TyCtxt<'tcx>,
of_impl: DefId
) -> Result<Ancestors<'tcx>, ErrorReported>
Trait Implementations
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitDef[src]
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitDef[src]fn hash_stable(
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)[src]
&self,
__hcx: &mut StableHashingContext<'__ctx>,
__hasher: &mut StableHasher
)
Auto Trait Implementations
impl RefUnwindSafe for TraitDef
impl Send for TraitDef
impl Sync for TraitDef
impl Unpin for TraitDef
impl UnwindSafe for TraitDef
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> MaybeResult<T> for T[src]
impl<T> MaybeResult<T> for T[src]impl<T> WithConstness for T[src]
impl<T> WithConstness for T[src]fn with_constness(self, constness: Constness) -> ConstnessAnd<Self>[src]
fn with_const(self) -> ConstnessAnd<Self>[src]
fn without_const(self) -> ConstnessAnd<Self>[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,