Module syntax::ast [] [src]

Unstable (rustc_private)

Reexports

pub use self::TyParamBound::*;
pub use self::UnsafeSource::*;
pub use self::ViewPath_::*;
pub use self::PathParameters::*;

Structs

AngleBracketedParameterData [Unstable]

A path like Foo<'a, T>

Arg [Unstable]

represents an argument in a function header

Arm [Unstable]

represents one arm of a 'match'

AttrId [Unstable]
Attribute_ [Unstable]

Doc-comments are promoted to attributes that have is_sugared_doc = true

BareFnTy [Unstable]
Block [Unstable]
Crate [Unstable]
Delimited [Unstable]

A delimited sequence of token trees

EnumDef [Unstable]
Expr [Unstable]

An expression

Field [Unstable]
FieldPat [Unstable]

A single field in a struct pattern

FnDecl [Unstable]

Represents the header (not the body) of a function declaration

ForeignItem [Unstable]
ForeignMod [Unstable]
Generics [Unstable]

Represents lifetimes and type parameters attached to a declaration of a function, enum, trait, etc.

Ident [Unstable]

An identifier contains a Name (index into the interner table) and a SyntaxContext to track renaming and macro expansion per Flatt et al., "Macros That Work Together"

ImplItem [Unstable]
InlineAsm [Unstable]
InlineAsmOutput [Unstable]
Item [Unstable]

An item

Lifetime [Unstable]
LifetimeDef [Unstable]

A lifetime definition, eg 'a: 'b+'c+'d

Local [Unstable]

Local represents a let statement, e.g., let <pat>:<ty> = <expr>;

Mac_ [Unstable]

Represents a macro invocation. The Path indicates which macro is being invoked, and the vector of token-trees contains the source of the macro invocation.

MacroDef [Unstable]

A macro definition, in this crate or imported from another.

MethodSig [Unstable]

Represents a method's signature in a trait declaration, or in an implementation.

Mod [Unstable]
MutTy [Unstable]
Name [Unstable]

A name is a part of an identifier, representing a string or gensym. It's the result of interning.

ParenthesizedParameterData [Unstable]

A path like Foo(A,B) -> C

Pat [Unstable]
Path [Unstable]

A "Path" is essentially Rust's notion of a name; for instance: std::cmp::PartialEq . It's represented as a sequence of identifiers, along with a bunch of supporting information.

PathSegment [Unstable]

A segment of a path: an identifier, an optional lifetime, and a set of types.

PolyTraitRef [Unstable]
QSelf [Unstable]

The explicit Self type in a "qualified path". The actual path, including the trait and the associated item, is stored separately. position represents the index of the associated item qualified with this Self type.

SequenceRepetition [Unstable]

A sequence of token trees

StructField [Unstable]
SyntaxContext [Unstable]

A SyntaxContext represents a chain of macro-expandings and renamings. Each macro expansion corresponds to a fresh u32. This u32 is a reference to a table stored in thread-local storage. The special value EMPTY_CTXT is used to indicate an empty syntax context.

TraitItem [Unstable]

Represents an item declaration within a trait declaration, possibly including a default implementation. A trait item is either required (meaning it doesn't have an implementation, just a signature) or provided (meaning it has a default implementation).

TraitRef [Unstable]

TraitRef's appear in impls.

Ty [Unstable]
TyParam [Unstable]
TypeBinding [Unstable]
Variant_ [Unstable]
WhereBoundPredicate [Unstable]

A type bound, e.g. for<'c> Foo: Send+Clone+'c

WhereClause [Unstable]

A where clause in a definition

WhereEqPredicate [Unstable]

An equality predicate (unsupported), e.g. T=int

WhereRegionPredicate [Unstable]

A lifetime predicate, e.g. 'a: 'b+'c

Enums

AsmDialect [Unstable]
AttrStyle [Unstable]

Distinguishes between Attributes that decorate items and Attributes that are contained as statements within items. These two cases need to be distinguished for pretty-printing.

BinOpKind [Unstable]
BindingMode [Unstable]
BlockCheckMode [Unstable]
CaptureBy [Unstable]

A capture clause

Constness [Unstable]
DeclKind [Unstable]
Defaultness [Unstable]
ExprKind [Unstable]
FloatTy [Unstable]
ForeignItemKind [Unstable]

An item within an extern block

FunctionRetTy [Unstable]
ImplItemKind [Unstable]
ImplPolarity [Unstable]
IntTy [Unstable]
ItemKind [Unstable]
KleeneOp [Unstable]

A Kleene-style repetition operator for token sequences.

LitIntType [Unstable]
LitKind [Unstable]
MacStmtStyle [Unstable]
MetaItemKind [Unstable]
Mutability [Unstable]
PatKind [Unstable]
PathListItemKind [Unstable]
PathParameters [Unstable]
RangeLimits [Unstable]

Limit types of a range (inclusive or exclusive)

SelfKind [Unstable]

Represents the kind of 'self' associated with a method. String representation of Ident here is always "self", but hygiene contexts may differ.

StmtKind [Unstable]
StrStyle [Unstable]
TokenTree [Unstable]

When the main rust parser encounters a syntax-extension invocation, it parses the arguments to the invocation as a token-tree. This is a very loose structure, such that all sorts of different AST-fragments can be passed to syntax extensions using a uniform type.

TraitBoundModifier [Unstable]

A modifier on a bound, currently this is only used for ?Sized, where the modifier is Maybe. Negative bounds should also be handled here.

TraitItemKind [Unstable]
TyKind [Unstable]

The different kinds of types recognized by the compiler

TyParamBound [Unstable]

The AST represents all type param bounds as types. typeck::collect::compute_bounds matches these against the "special" built-in traits (see middle::lang_items) and detects Copy, Send and Sync.

UintTy [Unstable]
UnOp [Unstable]
UnsafeSource [Unstable]
Unsafety [Unstable]
VariantData [Unstable]

Fields and Ids of enum variants and structs

ViewPath_ [Unstable]
Visibility [Unstable]
WherePredicate [Unstable]

A single predicate in a where clause

Constants

CRATE_NODE_ID [Unstable]

Node id used to represent the root of the crate.

DUMMY_NODE_ID [Unstable]

When parsing and doing expansions, we initially give all AST nodes this AST node value. Then later, in the renumber pass, we renumber them to have small, positive ids.

EMPTY_CTXT [Unstable]

Traits

NodeIdAssigner [Unstable]

Type Definitions

Attribute [Unstable]

Meta-data associated with an item

BinOp [Unstable]
CrateConfig [Unstable]

The set of MetaItems that define the compilation environment of the crate, used to drive conditional compilation

CrateNum [Unstable]
Decl [Unstable]
ExplicitSelf [Unstable]
Lit [Unstable]

A literal

Mac [Unstable]
MetaItem [Unstable]
Mrk [Unstable]

A mark represents a unique id associated with a macro expansion

NodeId [Unstable]
PathListItem [Unstable]
SpannedIdent [Unstable]
Stmt [Unstable]

A statement

TyParamBounds [Unstable]
Variant [Unstable]
ViewPath [Unstable]