Crate syn [] [src]

Structs

AngleBracketedParameterData

A path like Foo<'a, T>

Attribute

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

BareFnTy
Discriminant
Field
FnArg

An argument in a function header.

FnDecl

Header (not the body) of a function declaration.

Generics

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

Ident
Lifetime
LifetimeDef

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

MacroInput
MutTy
ParenthesizedParameterData

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

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 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.

TyParam
TypeBinding

Bind a type to an associated type: A=Foo.

Variant
WhereBoundPredicate

A type bound.

WhereClause

A where clause in a definition

WhereRegionPredicate

A lifetime predicate.

Enums

Body
FloatTy
FunctionRetTy
IntTy
Lit

Literal kind.

MetaItem

A compile-time attribute item.

Mutability
PathParameters

Parameters of a path segment.

StrStyle
TraitBoundModifier

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

Ty

The different kinds of types recognized by the compiler

TyParamBound

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.

VariantData
Visibility
WherePredicate

A single predicate in a where clause

Functions

parse_macro_input
parse_path
parse_type
parse_where_clause