Enum syntax::ast::Ty_Experimental [-]  [+] [src]

pub enum Ty_ {
    TyVec(P<Ty>),
    TyFixedLengthVec(P<Ty>, P<Expr>),
    TyPtr(MutTy),
    TyRptr(Option<Lifetime>, MutTy),
    TyClosure(P<ClosureTy>),
    TyBareFn(P<BareFnTy>),
    TyTup(Vec<P<Ty>>),
    TyPath(Path, NodeId),
    TyObjectSum(P<Ty>, TyParamBounds),
    TyPolyTraitRef(TyParamBounds),
    TyQPath(P<QPath>),
    TyParen(P<Ty>),
    TyTypeof(P<Expr>),
    TyInfer,
}

The different kinds of types recognized by the compiler

Variants

TyVec
TyFixedLengthVec

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

TyPtr

A raw pointer (*const T or *mut T)

TyRptr

A reference (&'a T or &'a mut T)

TyClosure

A closure (e.g. |uint| -> bool)

TyBareFn

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

TyTup

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

TyPath

A path (module::module::...::Type) or primitive

Type parameters are stored in the Path itself

TyObjectSum

Something like A+B. Note that B must always be a path.

TyPolyTraitRef

A type like for<'a> Foo<&'a Bar>

TyQPath

A "qualified path", e.g. <Vec<T> as SomeTrait>::SomeType

TyParen

No-op; kept solely so that we can pretty-print faithfully

TyTypeof

Unused for now

TyInfer

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

Trait Implementations

Derived Implementations

impl Show for Ty_

fn fmt(&self, __arg_0: &mut Formatter) -> Result

impl<__S: Writer> Hash<__S> for Ty_

fn hash(&self, __arg_0: &mut __S)

impl<__D: Decoder<__E>, __E> Decodable<__D, __E> for Ty_

fn decode(__arg_0: &mut __D) -> Result<Ty_, __E>

impl<__S: Encoder<__E>, __E> Encodable<__S, __E> for Ty_

fn encode(&self, __arg_0: &mut __S) -> Result<(), __E>

impl Eq for Ty_

fn assert_receiver_is_total_eq(&self)

impl PartialEq for Ty_

fn eq(&self, __arg_0: &Ty_) -> bool

fn ne(&self, __arg_0: &Ty_) -> bool

impl Clone for Ty_

fn clone(&self) -> Ty_

fn clone_from(&mut self, source: &Self)