Struct syntax::ext::expand::MacroExpanderUnstable [-] [+] [src]

pub struct MacroExpander<'a, 'b> {
    pub cx: &'a mut ExtCtxt<'b>,
    // some fields omitted
}

A tree-folder that performs macro expansion

Fields

cx

Methods

impl<'a, 'b> MacroExpander<'a, 'b>

fn new(cx: &'a mut ExtCtxt<'b>) -> MacroExpander<'a, 'b>

Trait Implementations

impl<'a, 'b> Folder for MacroExpander<'a, 'b>

fn fold_expr(&mut self, expr: P<Expr>) -> P<Expr>

fn fold_pat(&mut self, pat: P<Pat>) -> P<Pat>

fn fold_item(&mut self, item: P<Item>) -> SmallVector<P<Item>>

fn fold_item_underscore(&mut self, item: Item_) -> Item_

fn fold_stmt(&mut self, stmt: P<Stmt>) -> SmallVector<P<Stmt>>

fn fold_block(&mut self, block: P<Block>) -> P<Block>

fn fold_arm(&mut self, arm: Arm) -> Arm

fn fold_trait_item(&mut self, i: TraitItem) -> SmallVector<TraitItem>

fn fold_impl_item(&mut self, i: ImplItem) -> SmallVector<ImplItem>

fn fold_method(&mut self, method: P<Method>) -> SmallVector<P<Method>>

fn fold_ty(&mut self, t: P<Ty>) -> P<Ty>

fn new_span(&mut self, span: Span) -> Span

fn fold_crate(&mut self, c: Crate) -> Crate

fn fold_meta_items(&mut self, meta_items: Vec<P<MetaItem>>) -> Vec<P<MetaItem>>

fn fold_meta_item(&mut self, meta_item: P<MetaItem>) -> P<MetaItem>

fn fold_view_path(&mut self, view_path: P<ViewPath>) -> P<ViewPath>

fn fold_foreign_item(&mut self, ni: P<ForeignItem>) -> P<ForeignItem>

fn fold_item_simple(&mut self, i: Item) -> Item

fn fold_struct_field(&mut self, sf: StructField) -> StructField

fn fold_fn_decl(&mut self, d: P<FnDecl>) -> P<FnDecl>

fn fold_type_method(&mut self, m: TypeMethod) -> TypeMethod

fn fold_decl(&mut self, d: P<Decl>) -> SmallVector<P<Decl>>

fn fold_qpath(&mut self, t: P<QPath>) -> P<QPath>

fn fold_ty_binding(&mut self, t: P<TypeBinding>) -> P<TypeBinding>

fn fold_mod(&mut self, m: Mod) -> Mod

fn fold_foreign_mod(&mut self, nm: ForeignMod) -> ForeignMod

fn fold_variant(&mut self, v: P<Variant>) -> P<Variant>

fn fold_ident(&mut self, i: Ident) -> Ident

fn fold_usize(&mut self, i: usize) -> usize

fn fold_path(&mut self, p: Path) -> Path

fn fold_path_parameters(&mut self, p: PathParameters) -> PathParameters

fn fold_angle_bracketed_parameter_data(&mut self, p: AngleBracketedParameterData) -> AngleBracketedParameterData

fn fold_parenthesized_parameter_data(&mut self, p: ParenthesizedParameterData) -> ParenthesizedParameterData

fn fold_local(&mut self, l: P<Local>) -> P<Local>

fn fold_mac(&mut self, _mac: Mac) -> Mac

fn fold_explicit_self(&mut self, es: ExplicitSelf) -> ExplicitSelf

fn fold_explicit_self_underscore(&mut self, es: ExplicitSelf_) -> ExplicitSelf_

fn fold_lifetime(&mut self, l: Lifetime) -> Lifetime

fn fold_lifetime_def(&mut self, l: LifetimeDef) -> LifetimeDef

fn fold_attribute(&mut self, at: Attribute) -> Option<Attribute>

fn fold_arg(&mut self, a: Arg) -> Arg

fn fold_generics(&mut self, generics: Generics) -> Generics

fn fold_trait_ref(&mut self, p: TraitRef) -> TraitRef

fn fold_poly_trait_ref(&mut self, p: PolyTraitRef) -> PolyTraitRef

fn fold_struct_def(&mut self, struct_def: P<StructDef>) -> P<StructDef>

fn fold_lifetimes(&mut self, lts: Vec<Lifetime>) -> Vec<Lifetime>

fn fold_lifetime_defs(&mut self, lts: Vec<LifetimeDef>) -> Vec<LifetimeDef>

fn fold_ty_param(&mut self, tp: TyParam) -> TyParam

fn fold_ty_params(&mut self, tps: OwnedSlice<TyParam>) -> OwnedSlice<TyParam>

fn fold_tt(&mut self, tt: &TokenTree) -> TokenTree

fn fold_tts(&mut self, tts: &[TokenTree]) -> Vec<TokenTree>

fn fold_token(&mut self, t: Token) -> Token

fn fold_interpolated(&mut self, nt: Nonterminal) -> Nonterminal

fn fold_opt_lifetime(&mut self, o_lt: Option<Lifetime>) -> Option<Lifetime>

fn fold_variant_arg(&mut self, va: VariantArg) -> VariantArg

fn fold_opt_bounds(&mut self, b: Option<OwnedSlice<TyParamBound>>) -> Option<OwnedSlice<TyParamBound>>

fn fold_bounds(&mut self, b: OwnedSlice<TyParamBound>) -> OwnedSlice<TyParamBound>

fn fold_ty_param_bound(&mut self, tpb: TyParamBound) -> TyParamBound

fn fold_mt(&mut self, mt: MutTy) -> MutTy

fn fold_field(&mut self, field: Field) -> Field

fn fold_where_clause(&mut self, where_clause: WhereClause) -> WhereClause

fn fold_where_predicate(&mut self, where_predicate: WherePredicate) -> WherePredicate

fn fold_typedef(&mut self, typedef: Typedef) -> Typedef

fn fold_associated_type(&mut self, associated_type: AssociatedType) -> AssociatedType

fn new_id(&mut self, i: NodeId) -> NodeId