Module rustc_ap_rustc_ast::ast [−][src]
Expand description
The Rust abstract syntax tree module.
This module contains common structures forming the language AST.
Two main entities in the module are Item
(which represents an AST element with
additional metadata), and ItemKind
(which represents a concrete type and contains
information specific to the type of the item).
Other module items worth mentioning:
Ty
andTyKind
: A parsed Rust type.Expr
andExprKind
: A parsed Rust expression.Pat
andPatKind
: A parsed Rust pattern. Patterns are often dual to expressions.Stmt
andStmtKind
: An executable action that does not return a value.FnDecl
,FnHeader
andParam
: Metadata associated with a function declaration.Generics
,GenericParam
,WhereClause
: Metadata associated with generic parameters.EnumDef
andVariant
: Enum declaration.Lit
andLitKind
: Literal expressions.MacroDef
,MacStmtStyle
,MacCall
,MacDelimiter
: Macro definition and invocation.Attribute
: Metadata associated with item.UnOp
,BinOp
, andBinOpKind
: Unary and binary operators.
Re-exports
pub use crate::util::parser::ExprPrecedence; | |
pub use GenericArgs::*; | |
pub use UnsafeSource::*; | |
pub use crate::node_id::NodeId; | |
pub use crate::node_id::CRATE_NODE_ID; | |
pub use crate::node_id::DUMMY_NODE_ID; |
Structs
AngleBracketedArgs | A path like |
AnonConst | A constant (expression) that’s not an item or associated item,
but needs its own |
Arm | An arm of a ‘match’. |
AssocTyConstraint | A constraint on an associated type (e.g., |
AttrId | |
AttrItem | |
Attribute | Metadata associated with an item. |
BareFnTy | |
Block | A block ( |
Crate | |
EnumDef | |
Expr | An expression. |
ExprField | A single field in a struct expression, e.g. |
FieldDef | Field definition in a struct, variant or union. |
FnDecl | A signature (not the body) of a function declaration. |
FnHeader | A function header. |
FnKind | |
FnSig | Represents a function’s signature in a trait declaration, trait implementation, or free function. |
ForeignMod | Foreign module declaration. |
GenericParam | |
Generics | Represents lifetime, type and const parameters attached to a declaration of a function, enum, trait, etc. |
ImplKind | |
InlineAsm | Inline assembly. |
InlineAsmOptions | |
Item | An item definition. |
Label | A “Label” is an identifier of some point in sources, e.g. in the following code: |
Lifetime | A “Lifetime” is an annotation of the scope in which variable
can be used, e.g. |
Lit | An AST literal. |
LlvmInlineAsm | LLVM-style inline assembly. |
LlvmInlineAsmOutput | LLVM-style inline assembly. |
Local | Local represents a |
MacCall | Represents a macro invocation. The |
MacCallStmt | |
MacroDef | Represents a macro definition. |
MetaItem | A spanned compile-time attribute item. |
MutTy | |
Param | A parameter in a function header. |
ParenthesizedArgs | A path like |
Pat | A match pattern. |
PatField | A single field in a struct pattern. |
Path | A “Path” is essentially Rust’s notion of a name. |
PathSegment | A segment of a path: an identifier, an optional lifetime, and a set of types. |
PolyTraitRef | |
QSelf | The explicit |
Stmt | A statement |
StrLit | Same as |
StructExpr | |
TraitKind | |
TraitRef |
|
Ty | |
TyAliasKind | |
UseTree | A tree of paths sharing common prefixes.
Used in |
Variant | Enum variant. |
Visibility | |
WhereBoundPredicate | A type bound. |
WhereClause | A where-clause in a definition. |
WhereEqPredicate | An equality predicate (unsupported). |
WhereRegionPredicate | A lifetime predicate. |
Enums
AngleBracketedArg | Either an argument for a parameter e.g., |
AssocItemKind | Represents associated item kinds. |
AssocTyConstraintKind | The kinds of an |
Async | |
AttrKind | |
AttrStyle | Distinguishes between |
BinOpKind | |
BindingMode | |
BlockCheckMode | |
BorrowKind | The kind of borrow in an |
CaptureBy | A capture clause used in closures and |
Const | |
CrateSugar | |
Defaultness | Item defaultness. For details see the RFC #2532. |
ExprKind | |
Extern |
|
FloatTy | |
FnRetTy | |
ForeignItemKind | An item in |
GenericArg | Concrete argument in the sequence of generic args. |
GenericArgs | The arguments of a path segment. |
GenericBound | The AST represents all type param bounds as types.
|
GenericParamKind | |
ImplPolarity | |
Inline | |
InlineAsmOperand | Inline assembly operand. |
InlineAsmRegOrRegClass | Inline assembly operand explicit register or register class. |
InlineAsmTemplatePiece | |
IntTy | |
IsAuto | Is the trait definition an auto trait? |
ItemKind | |
LitFloatType | Type of the float literal based on provided suffix. |
LitIntType | Type of the integer literal based on provided suffix. |
LitKind | Literal kind. |
LlvmAsmDialect | Inline assembly dialect. |
MacArgs | Arguments passed to an attribute or a function-like macro. |
MacDelimiter | |
MacStmtStyle | |
MetaItemKind | A compile-time attribute item. |
ModKind | Module item kind. |
Movability | The movability of a generator / closure literal:
whether a generator contains self-references, causing it to be |
Mutability | |
NestedMetaItem | Possible values inside of compile-time attribute lists. |
ParamKindOrd | Specifies the enforced ordering for generic parameters. In the future,
if we wanted to relax this order, we could override |
PatKind | |
RangeEnd | |
RangeLimits | Limit types of a range (inclusive or exclusive) |
RangeSyntax | |
SelfKind | Alternative representation for |
StmtKind | |
StrStyle | |
StructRest | |
TraitBoundModifier | A modifier on a bound, e.g., |
TraitObjectSyntax | Syntax used to declare a trait object. |
TyKind | The various kinds of type recognized by the compiler. |
UintTy | |
UnOp | Unary operator. |
Unsafe | |
UnsafeSource | |
UseTreeKind | Part of |
VariantData | Fields and constructor ids of enum variants and structs. |
VisibilityKind | |
WherePredicate | A single predicate in a where-clause. |
Type Definitions
AssocItem | Represents associated items.
These include items in |
AttrVec | A list of attributes. |
BinOp | |
ExplicitSelf | |
ForeignItem | |
GenericBounds |