Enum rustc_hir::hir::QPath [−][src]
Represents an optionally Self
-qualified value/type path or associated extension.
To resolve the path to a DefId
, call qpath_res
.
Variants
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>)
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(..))
.
Reference to a #[lang = "foo"]
item.
Implementations
impl<'hir> QPath<'hir>
[src]
pub fn span(&self) -> Span
[src]
Returns the span of this QPath
.
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]
Returns the span of the last segment of this QPath
. For example, method
in
<() as Trait>::method
.
Trait Implementations
impl<'hir> Debug for QPath<'hir>
[src]
impl<'hir, __CTX> HashStable<__CTX> for QPath<'hir> where
__CTX: HashStableContext,
[src]
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
[src]
Auto Trait Implementations
impl<'hir> !RefUnwindSafe for QPath<'hir>
impl<'hir> !Send for QPath<'hir>
impl<'hir> !Sync for QPath<'hir>
impl<'hir> Unpin for QPath<'hir>
impl<'hir> !UnwindSafe for QPath<'hir>
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<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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>,