[−][src]Struct rustc_middle::ty::trait_def::TraitDef
A trait's definition with type information.
Fields
def_id: DefIdunsafety: Unsafetyparen_sugar: boolIf 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: boolIf 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.
specialization_kind: TraitSpecializationKindUsed to determine whether the standard library is allowed to specialize on this trait.
def_path_hash: DefPathHashThe ICH of this trait's DefPath, cached here so it doesn't have to be recomputed all the time.
Implementations
impl<'tcx> TraitDef[src]
pub fn new(
def_id: DefId,
unsafety: Unsafety,
paren_sugar: bool,
has_auto_impl: bool,
is_marker: 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,
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 Debug for TraitDef[src]
impl<'__ctx> HashStable<StableHashingContext<'__ctx>> for TraitDef[src]
pub 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> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> MaybeResult<T> for T[src]
type Error = !
pub fn from(Result<T, <T as MaybeResult<T>>::Error>) -> T[src]
pub fn to_result(self) -> Result<T, <T as MaybeResult<T>>::Error>[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.