Enum rustc_hir::hir::TyKind [−][src]
pub enum TyKind<'hir> {
Show 13 variants
Slice(&'hir Ty<'hir>),
Array(&'hir Ty<'hir>, AnonConst),
Ptr(MutTy<'hir>),
Rptr(Lifetime, MutTy<'hir>),
BareFn(&'hir BareFnTy<'hir>),
Never,
Tup(&'hir [Ty<'hir>]),
Path(QPath<'hir>),
OpaqueDef(ItemId, &'hir [GenericArg<'hir>]),
TraitObject(&'hir [PolyTraitRef<'hir>], Lifetime, TraitObjectSyntax),
Typeof(AnonConst),
Infer,
Err,
}Expand description
The various kinds of types recognized by the compiler.
Variants
A variable length slice (i.e., [T]).
Tuple Fields of Slice
0: &'hir Ty<'hir>A fixed length array (i.e., [T; n]).
A raw pointer (i.e., *const T or *mut T).
Tuple Fields of Ptr
0: MutTy<'hir>A reference (i.e., &'a T or &'a mut T).
A bare function (e.g., fn(usize) -> bool).
Tuple Fields of BareFn
0: &'hir BareFnTy<'hir>The never type (!).
A tuple ((A, B, C, D, ...)).
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.
Tuple Fields of Path
0: QPath<'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.
Tuple Fields of OpaqueDef
0: ItemId1: &'hir [GenericArg<'hir>]A trait object type Bound1 + Bound2 + Bound3
where Bound is a trait or a lifetime.
Tuple Fields of TraitObject
Unused for now.
Tuple Fields of Typeof
0: AnonConstTyKind::Infer means the type should be inferred instead of it having been
specified. This can appear anywhere in a type.
Placeholder for a type that has failed to be defined.
Trait Implementations
Auto Trait Implementations
impl<'hir> RefUnwindSafe for TyKind<'hir>
impl<'hir> UnwindSafe for TyKind<'hir>
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may be different between compiler versions and platforms. The only exception is types with certain repr(...) attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 56 bytes