Enum rustc_hir::def::Res[][src]

pub enum Res<Id = HirId> {
    SelfTy(Option<DefId>, Option<(DefId, bool)>),

The resolution of a path or export.


SelfTy(Option<DefId>, Option<(DefId, bool)>)

Self, with both an optional trait and impl DefId.

HACK(min_const_generics): impl self types also have an optional requirement to not mention any generic parameters to allow the following with min_const_generics:

impl Foo { fn test() -> [u8; std::mem::size_of::<Self>()] {} }

We do however allow Self in repeat expression even if it is generic to not break code which already works on stable while causing the const_evaluatable_unchecked future compat lint.

FIXME(lazy_normalization_consts): Remove this bodge once that feature is stable.



impl<Id> Res<Id>[src]

pub fn def_id(&self) -> DefId where
    Id: Debug

Return the DefId of this Def if it has an ID, else panic.

pub fn opt_def_id(&self) -> Option<DefId>[src]

Return Some(..) with the DefId of this Res if it has a ID, else None.

pub fn mod_def_id(&self) -> Option<DefId>[src]

Return the DefId of this Res if it represents a module.

pub fn descr(&self) -> &'static str[src]

A human readable name for the res kind (“function”, “module”, etc.).

pub fn article(&self) -> &'static str[src]

Gets an English article for the Res.

pub fn map_id<R>(self, map: impl FnMut(Id) -> R) -> Res<R>[src]

pub fn macro_kind(self) -> Option<MacroKind>[src]

pub fn ns(&self) -> Option<Namespace>[src]

Returns None if this is Res::Err

pub fn matches_ns(&self, ns: Namespace) -> bool[src]

Always returns true if self is Res::Err

pub fn expected_in_tuple_struct_pat(&self) -> bool[src]

Returns whether such a resolved path can occur in a tuple struct/variant pattern

Trait Implementations

impl<Id: Clone> Clone for Res<Id>[src]

impl<Id: Copy> Copy for Res<Id>[src]

impl<Id: Debug> Debug for Res<Id>[src]

impl<Id, __D: Decoder> Decodable<__D> for Res<Id> where
    Id: Decodable<__D>, 

impl<Id, __E: Encoder> Encodable<__E> for Res<Id> where
    Id: Encodable<__E>, 

impl<Id: Eq> Eq for Res<Id>[src]

impl<Id: Hash> Hash for Res<Id>[src]

impl<Id, __CTX> HashStable<__CTX> for Res<Id> where
    __CTX: HashStableContext,
    Id: HashStable<__CTX>, 

impl<Id: PartialEq> PartialEq<Res<Id>> for Res<Id>[src]

impl<Id> StructuralEq for Res<Id>[src]

impl<Id> StructuralPartialEq for Res<Id>[src]

Auto Trait Implementations

impl<Id> RefUnwindSafe for Res<Id> where
    Id: RefUnwindSafe

impl<Id> Send for Res<Id> where
    Id: Send

impl<Id> Sync for Res<Id> where
    Id: Sync

impl<Id> Unpin for Res<Id> where
    Id: Unpin

impl<Id> UnwindSafe for Res<Id> where
    Id: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.