diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2014-11-10 19:11:27 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2014-11-10 19:14:04 +0530 |
| commit | 37afc528eacf4a0a874f8e97f6e7d4d7b63e8ac6 (patch) | |
| tree | 2f0154f7e1fa362dcb6786db6710ea98e84a1bde | |
| parent | 830c82dd741b2d2a248515203a0f6a6662a0abe6 (diff) | |
| download | rust-37afc528eacf4a0a874f8e97f6e7d4d7b63e8ac6.tar.gz rust-37afc528eacf4a0a874f8e97f6e7d4d7b63e8ac6.zip | |
Document ast::Ty_
| -rw-r--r-- | src/libsyntax/ast.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 145978bb73f..639adb45078 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -1084,24 +1084,40 @@ pub struct BareFnTy { } #[deriving(Clone, PartialEq, Eq, Encodable, Decodable, Hash, Show)] +/// The different kinds of types recognized by the compiler pub enum Ty_ { + /// The unit type (`()`) TyNil, - TyBot, /* bottom type */ + /// The bottom type (`!`) + TyBot, TyUniq(P<Ty>), + /// An array (`[T]`) TyVec(P<Ty>), + /// A fixed length array (`[T, ..n]`) TyFixedLengthVec(P<Ty>, P<Expr>), + /// A raw pointer (`*const T` or `*mut T`) TyPtr(MutTy), + /// A reference (`&'a T` or `&'a mut T`) TyRptr(Option<Lifetime>, MutTy), + /// A closure (e.g. `|uint| -> bool`) TyClosure(P<ClosureTy>), + /// A procedure (e.g `proc(uint) -> bool`) TyProc(P<ClosureTy>), + /// A bare function (e.g. `fn(uint) -> bool`) TyBareFn(P<BareFnTy>), + /// A tuple (`(A, B, C, D,...)`) TyTup(Vec<P<Ty>> ), + /// A path (`module::module::...::Type`) or primitive + /// + /// Type parameters are stored in the Path itself TyPath(Path, Option<TyParamBounds>, NodeId), // for #7264; see above - TyPolyTraitRef(P<PolyTraitRef>), // a type like `for<'a> Foo<&'a Bar>` + /// A type like `for<'a> Foo<&'a Bar>` + TyPolyTraitRef(P<PolyTraitRef>), /// A "qualified path", e.g. `<Vec<T> as SomeTrait>::SomeType` TyQPath(P<QPath>), /// No-op; kept solely so that we can pretty-print faithfully TyParen(P<Ty>), + /// Unused for now TyTypeof(P<Expr>), /// TyInfer means the type should be inferred instead of it having been /// specified. This can appear anywhere in a type. |
