Enum rustc_hir::hir::QPath [−][src]
pub enum QPath<'hir> {
Resolved(Option<&'hir Ty<'hir>>, &'hir Path<'hir>),
TypeRelative(&'hir Ty<'hir>, &'hir PathSegment<'hir>),
LangItem(LangItem, Span),
}Expand description
Represents an optionally Self-qualified value/type path or associated extension.
To resolve the path to a DefId, call qpath_res.
Variants
Expand description
Path to a definition, optionally “fully-qualified” with a Self
type, if the path points to an associated item in a trait.
E.g., an unqualified path like Clone::clone has None for Self,
while <Vec<T> as Clone>::clone has Some(Vec<T>) for Self,
even though they both have the same two-segment Clone::clone Path.
TypeRelative(&'hir Ty<'hir>, &'hir PathSegment<'hir>)Expand description
Type-related paths (e.g., <T>::default or <T>::Output).
Will be resolved by type-checking to an associated item.
UFCS source paths can desugar into this, with Vec::new turning into
<Vec>::new, and T::X::Y::method into <<<T>::X>::Y>::method,
the X and Y nodes each being a TyKind::Path(QPath::TypeRelative(..)).
Expand description
Reference to a #[lang = "foo"] item.
Implementations
impl<'hir> QPath<'hir>[src]
impl<'hir> QPath<'hir>[src]pub fn qself_span(&self) -> Span[src]
pub fn qself_span(&self) -> Span[src]Returns the span of the qself of this QPath. For example, () in
<() as Trait>::method.
pub fn last_segment_span(&self) -> Span[src]
pub fn last_segment_span(&self) -> Span[src]Returns the span of the last segment of this QPath. For example, method in
<() as Trait>::method.
Trait Implementations
impl<'hir, __CTX> HashStable<__CTX> for QPath<'hir> where
__CTX: HashStableContext, [src]
impl<'hir, __CTX> HashStable<__CTX> for QPath<'hir> where
__CTX: HashStableContext, [src]