[−][src]Enum rustc_ap_rustc_ast::ast::TyKind
The various kinds of type recognized by the compiler.
Variants
A variable-length slice ([T]
).
A fixed length array ([T; n]
).
Ptr(MutTy)
A raw pointer (*const T
or *mut T
).
A reference (&'a T
or &'a mut T
).
A bare function (e.g., fn(usize) -> bool
).
The never type (!
).
A tuple ((A, B, C, D,...)
).
A path (module::module::...::Type
), optionally
"qualified", e.g., <Vec<T> as SomeTrait>::SomeType
.
Type parameters are stored in the Path
itself.
TraitObject(GenericBounds, TraitObjectSyntax)
A trait object type Bound1 + Bound2 + Bound3
where Bound
is a trait or a lifetime.
ImplTrait(NodeId, GenericBounds)
An impl Bound1 + Bound2 + Bound3
type
where Bound
is a trait or a lifetime.
The NodeId
exists to prevent lowering from having to
generate NodeId
s on the fly, which would complicate
the generation of opaque type Foo = impl Trait
items significantly.
No-op; kept solely so that we can pretty-print faithfully.
Typeof(AnonConst)
Unused for now.
This means the type should be inferred instead of it having been specified. This can appear anywhere in a type.
Inferred type of a self
or &self
argument in a method.
MacCall(MacCall)
A macro in the type position.
Placeholder for a kind that has failed to be defined.
Placeholder for a va_list
.
Methods
impl TyKind
[src]
pub fn is_implicit_self(&self) -> bool
[src]
pub fn is_unit(&self) -> bool
[src]
pub fn opaque_top_hack(&self) -> Option<&GenericBounds>
[src]
HACK(type_alias_impl_trait, Centril): A temporary crutch used in lowering to avoid making larger changes there and beyond.
Trait Implementations
impl Clone for TyKind
[src]
impl Debug for TyKind
[src]
impl Decodable for TyKind
[src]
impl Encodable for TyKind
[src]
Auto Trait Implementations
impl !RefUnwindSafe for TyKind
impl !Send for TyKind
impl !Sync for TyKind
impl Unpin for TyKind
impl !UnwindSafe for TyKind
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,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<'a, T> Captures<'a> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Decodable for T where
T: UseSpecializedDecodable,
[src]
T: UseSpecializedDecodable,
impl<T> Encodable for T where
T: UseSpecializedEncodable + ?Sized,
[src]
T: UseSpecializedEncodable + ?Sized,
impl<T> Erased for 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> Same<T> for T
type Output = T
Should always be Self
impl<E> SpecializationError for E
[src]
default fn not_found<S, T>(
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
[src]
trait_name: &'static str,
method_name: &'static str
) -> E where
T: ?Sized,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
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.
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>,