[][src]Enum rustc_hir::TyKind

pub enum TyKind<'hir> {
    Slice(&'hir Ty<'hir>),
    Array(&'hir Ty<'hir>, AnonConst),
    Ptr(MutTy<'hir>),
    Rptr(LifetimeMutTy<'hir>),
    BareFn(&'hir BareFnTy<'hir>),
    Never,
    Tup(&'hir [Ty<'hir>]),
    Path(QPath<'hir>),
    OpaqueDef(ItemId&'hir [GenericArg<'hir>]),
    TraitObject(&'hir [PolyTraitRef<'hir>]Lifetime),
    Typeof(AnonConst),
    Infer,
    Err,
}

The various kinds of types recognized by the compiler.

Variants

Slice(&'hir Ty<'hir>)

A variable length slice (i.e., [T]).

Array(&'hir Ty<'hir>, AnonConst)

A fixed length array (i.e., [T; n]).

Ptr(MutTy<'hir>)

A raw pointer (i.e., *const T or *mut T).

Rptr(LifetimeMutTy<'hir>)

A reference (i.e., &'a T or &'a mut T).

BareFn(&'hir BareFnTy<'hir>)

A bare function (e.g., fn(usize) -> bool).

Never

The never type (!).

Tup(&'hir [Ty<'hir>])

A tuple ((A, B, C, D, ...)).

Path(QPath<'hir>)

A path to a type definition (module::module::...::Type), or an associated type (e.g., <Vec<T> as Trait>::Type or <T>::Target).

Type parameters may be stored in each PathSegment.

OpaqueDef(ItemId&'hir [GenericArg<'hir>])

A opaque type definition itself. This is currently only used for the opaque type Foo: Trait item that impl Trait in desugars to.

The generic argument list contains the lifetimes (and in the future possibly parameters) that are actually bound on the impl Trait.

TraitObject(&'hir [PolyTraitRef<'hir>]Lifetime)

A trait object type Bound1 + Bound2 + Bound3 where Bound is a trait or a lifetime.

Typeof(AnonConst)

Unused for now.

Infer

TyKind::Infer means the type should be inferred instead of it having been specified. This can appear anywhere in a type.

Err

Placeholder for a type that has failed to be defined.

Trait Implementations

impl<'hir> Debug for TyKind<'hir>[src]

impl<'hir, __CTX> HashStable<__CTX> for TyKind<'hir> where
    __CTX: HashStableContext
[src]

Auto Trait Implementations

impl<'hir> !RefUnwindSafe for TyKind<'hir>[src]

impl<'hir> !Send for TyKind<'hir>[src]

impl<'hir> !Sync for TyKind<'hir>[src]

impl<'hir> Unpin for TyKind<'hir>[src]

impl<'hir> !UnwindSafe for TyKind<'hir>[src]

Blanket Implementations

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

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.