Trait syntax::ext::build::AstBuilder [] [src]

pub trait AstBuilder {
    fn path(&self, span: Span, strs: Vec<Ident>) -> Path;
    fn path_ident(&self, span: Span, id: Ident) -> Path;
    fn path_global(&self, span: Span, strs: Vec<Ident>) -> Path;
    fn path_all(&self,
                sp: Span,
                global: bool,
                idents: Vec<Ident>,
                lifetimes: Vec<Lifetime>,
                types: Vec<P<Ty>>,
                bindings: Vec<TypeBinding>)
                -> Path; fn qpath(&self,
             self_type: P<Ty>,
             trait_path: Path,
             ident: SpannedIdent)
             -> (QSelf, Path); fn qpath_all(&self,
                 self_type: P<Ty>,
                 trait_path: Path,
                 ident: SpannedIdent,
                 lifetimes: Vec<Lifetime>,
                 types: Vec<P<Ty>>,
                 bindings: Vec<TypeBinding>)
                 -> (QSelf, Path); fn ty_mt(&self, ty: P<Ty>, mutbl: Mutability) -> MutTy; fn ty(&self, span: Span, ty: TyKind) -> P<Ty>; fn ty_path(&self, _: Path) -> P<Ty>; fn ty_ident(&self, span: Span, idents: Ident) -> P<Ty>; fn ty_rptr(&self,
               span: Span,
               ty: P<Ty>,
               lifetime: Option<Lifetime>,
               mutbl: Mutability)
               -> P<Ty>; fn ty_ptr(&self, span: Span, ty: P<Ty>, mutbl: Mutability) -> P<Ty>; fn ty_option(&self, ty: P<Ty>) -> P<Ty>; fn ty_infer(&self, sp: Span) -> P<Ty>; fn typaram(&self,
               span: Span,
               id: Ident,
               attrs: Vec<Attribute>,
               bounds: TyParamBounds,
               default: Option<P<Ty>>)
               -> TyParam; fn trait_ref(&self, path: Path) -> TraitRef; fn poly_trait_ref(&self, span: Span, path: Path) -> PolyTraitRef; fn typarambound(&self, path: Path) -> TyParamBound; fn lifetime(&self, span: Span, ident: Name) -> Lifetime; fn lifetime_def(&self,
                    span: Span,
                    name: Name,
                    attrs: Vec<Attribute>,
                    bounds: Vec<Lifetime>)
                    -> LifetimeDef; fn stmt_expr(&self, expr: P<Expr>) -> Stmt; fn stmt_semi(&self, expr: P<Expr>) -> Stmt; fn stmt_let(&self, sp: Span, mutbl: bool, ident: Ident, ex: P<Expr>) -> Stmt; fn stmt_let_typed(&self,
                      sp: Span,
                      mutbl: bool,
                      ident: Ident,
                      typ: P<Ty>,
                      ex: P<Expr>)
                      -> Stmt; fn stmt_let_type_only(&self, span: Span, ty: P<Ty>) -> Stmt; fn stmt_item(&self, sp: Span, item: P<Item>) -> Stmt; fn block(&self, span: Span, stmts: Vec<Stmt>) -> P<Block>; fn block_expr(&self, expr: P<Expr>) -> P<Block>; fn expr(&self, span: Span, node: ExprKind) -> P<Expr>; fn expr_path(&self, path: Path) -> P<Expr>; fn expr_qpath(&self, span: Span, qself: QSelf, path: Path) -> P<Expr>; fn expr_ident(&self, span: Span, id: Ident) -> P<Expr>; fn expr_self(&self, span: Span) -> P<Expr>; fn expr_binary(&self,
                   sp: Span,
                   op: BinOpKind,
                   lhs: P<Expr>,
                   rhs: P<Expr>)
                   -> P<Expr>; fn expr_deref(&self, sp: Span, e: P<Expr>) -> P<Expr>; fn expr_unary(&self, sp: Span, op: UnOp, e: P<Expr>) -> P<Expr>; fn expr_addr_of(&self, sp: Span, e: P<Expr>) -> P<Expr>; fn expr_mut_addr_of(&self, sp: Span, e: P<Expr>) -> P<Expr>; fn expr_field_access(&self,
                         span: Span,
                         expr: P<Expr>,
                         ident: Ident)
                         -> P<Expr>; fn expr_tup_field_access(&self,
                             sp: Span,
                             expr: P<Expr>,
                             idx: usize)
                             -> P<Expr>; fn expr_call(&self,
                 span: Span,
                 expr: P<Expr>,
                 args: Vec<P<Expr>>)
                 -> P<Expr>; fn expr_call_ident(&self,
                       span: Span,
                       id: Ident,
                       args: Vec<P<Expr>>)
                       -> P<Expr>; fn expr_call_global(&self,
                        sp: Span,
                        fn_path: Vec<Ident>,
                        args: Vec<P<Expr>>)
                        -> P<Expr>; fn expr_method_call(&self,
                        span: Span,
                        expr: P<Expr>,
                        ident: Ident,
                        args: Vec<P<Expr>>)
                        -> P<Expr>; fn expr_block(&self, b: P<Block>) -> P<Expr>; fn expr_cast(&self, sp: Span, expr: P<Expr>, ty: P<Ty>) -> P<Expr>; fn field_imm(&self, span: Span, name: Ident, e: P<Expr>) -> Field; fn expr_struct(&self, span: Span, path: Path, fields: Vec<Field>) -> P<Expr>; fn expr_struct_ident(&self,
                         span: Span,
                         id: Ident,
                         fields: Vec<Field>)
                         -> P<Expr>; fn expr_lit(&self, sp: Span, lit: LitKind) -> P<Expr>; fn expr_usize(&self, span: Span, i: usize) -> P<Expr>; fn expr_isize(&self, sp: Span, i: isize) -> P<Expr>; fn expr_u8(&self, sp: Span, u: u8) -> P<Expr>; fn expr_u32(&self, sp: Span, u: u32) -> P<Expr>; fn expr_bool(&self, sp: Span, value: bool) -> P<Expr>; fn expr_vec(&self, sp: Span, exprs: Vec<P<Expr>>) -> P<Expr>; fn expr_vec_ng(&self, sp: Span) -> P<Expr>; fn expr_vec_slice(&self, sp: Span, exprs: Vec<P<Expr>>) -> P<Expr>; fn expr_str(&self, sp: Span, s: Symbol) -> P<Expr>; fn expr_some(&self, sp: Span, expr: P<Expr>) -> P<Expr>; fn expr_none(&self, sp: Span) -> P<Expr>; fn expr_break(&self, sp: Span) -> P<Expr>; fn expr_tuple(&self, sp: Span, exprs: Vec<P<Expr>>) -> P<Expr>; fn expr_fail(&self, span: Span, msg: Symbol) -> P<Expr>; fn expr_unreachable(&self, span: Span) -> P<Expr>; fn expr_ok(&self, span: Span, expr: P<Expr>) -> P<Expr>; fn expr_err(&self, span: Span, expr: P<Expr>) -> P<Expr>; fn expr_try(&self, span: Span, head: P<Expr>) -> P<Expr>; fn pat(&self, span: Span, pat: PatKind) -> P<Pat>; fn pat_wild(&self, span: Span) -> P<Pat>; fn pat_lit(&self, span: Span, expr: P<Expr>) -> P<Pat>; fn pat_ident(&self, span: Span, ident: Ident) -> P<Pat>; fn pat_ident_binding_mode(&self,
                              span: Span,
                              ident: Ident,
                              bm: BindingMode)
                              -> P<Pat>; fn pat_path(&self, span: Span, path: Path) -> P<Pat>; fn pat_tuple_struct(&self,
                        span: Span,
                        path: Path,
                        subpats: Vec<P<Pat>>)
                        -> P<Pat>; fn pat_struct(&self,
                  span: Span,
                  path: Path,
                  field_pats: Vec<Spanned<FieldPat>>)
                  -> P<Pat>; fn pat_tuple(&self, span: Span, pats: Vec<P<Pat>>) -> P<Pat>; fn pat_some(&self, span: Span, pat: P<Pat>) -> P<Pat>; fn pat_none(&self, span: Span) -> P<Pat>; fn pat_ok(&self, span: Span, pat: P<Pat>) -> P<Pat>; fn pat_err(&self, span: Span, pat: P<Pat>) -> P<Pat>; fn arm(&self, span: Span, pats: Vec<P<Pat>>, expr: P<Expr>) -> Arm; fn arm_unreachable(&self, span: Span) -> Arm; fn expr_match(&self, span: Span, arg: P<Expr>, arms: Vec<Arm>) -> P<Expr>; fn expr_if(&self,
               span: Span,
               cond: P<Expr>,
               then: P<Expr>,
               els: Option<P<Expr>>)
               -> P<Expr>; fn expr_loop(&self, span: Span, block: P<Block>) -> P<Expr>; fn lambda_fn_decl(&self,
                      span: Span,
                      fn_decl: P<FnDecl>,
                      body: P<Expr>,
                      fn_decl_span: Span)
                      -> P<Expr>; fn lambda(&self, span: Span, ids: Vec<Ident>, body: P<Expr>) -> P<Expr>; fn lambda0(&self, span: Span, body: P<Expr>) -> P<Expr>; fn lambda1(&self, span: Span, body: P<Expr>, ident: Ident) -> P<Expr>; fn lambda_stmts(&self,
                    span: Span,
                    ids: Vec<Ident>,
                    blk: Vec<Stmt>)
                    -> P<Expr>; fn lambda_stmts_0(&self, span: Span, stmts: Vec<Stmt>) -> P<Expr>; fn lambda_stmts_1(&self,
                      span: Span,
                      stmts: Vec<Stmt>,
                      ident: Ident)
                      -> P<Expr>; fn item(&self,
            span: Span,
            name: Ident,
            attrs: Vec<Attribute>,
            node: ItemKind)
            -> P<Item>; fn arg(&self, span: Span, name: Ident, ty: P<Ty>) -> Arg; fn fn_decl(&self, inputs: Vec<Arg>, output: P<Ty>) -> P<FnDecl>; fn item_fn_poly(&self,
                    span: Span,
                    name: Ident,
                    inputs: Vec<Arg>,
                    output: P<Ty>,
                    generics: Generics,
                    body: P<Block>)
                    -> P<Item>; fn item_fn(&self,
               span: Span,
               name: Ident,
               inputs: Vec<Arg>,
               output: P<Ty>,
               body: P<Block>)
               -> P<Item>; fn variant(&self, span: Span, name: Ident, tys: Vec<P<Ty>>) -> Variant; fn item_enum_poly(&self,
                      span: Span,
                      name: Ident,
                      enum_definition: EnumDef,
                      generics: Generics)
                      -> P<Item>; fn item_enum(&self, span: Span, name: Ident, enum_def: EnumDef) -> P<Item>; fn item_struct_poly(&self,
                        span: Span,
                        name: Ident,
                        struct_def: VariantData,
                        generics: Generics)
                        -> P<Item>; fn item_struct(&self,
                   span: Span,
                   name: Ident,
                   struct_def: VariantData)
                   -> P<Item>; fn item_mod(&self,
                span: Span,
                inner_span: Span,
                name: Ident,
                attrs: Vec<Attribute>,
                items: Vec<P<Item>>)
                -> P<Item>; fn item_static(&self,
                   span: Span,
                   name: Ident,
                   ty: P<Ty>,
                   mutbl: Mutability,
                   expr: P<Expr>)
                   -> P<Item>; fn item_const(&self,
                  span: Span,
                  name: Ident,
                  ty: P<Ty>,
                  expr: P<Expr>)
                  -> P<Item>; fn item_ty_poly(&self,
                    span: Span,
                    name: Ident,
                    ty: P<Ty>,
                    generics: Generics)
                    -> P<Item>; fn item_ty(&self, span: Span, name: Ident, ty: P<Ty>) -> P<Item>; fn attribute(&self, sp: Span, mi: MetaItem) -> Attribute; fn meta_word(&self, sp: Span, w: Name) -> MetaItem; fn meta_list_item_word(&self, sp: Span, w: Name) -> NestedMetaItem; fn meta_list(&self,
                 sp: Span,
                 name: Name,
                 mis: Vec<NestedMetaItem>)
                 -> MetaItem; fn meta_name_value(&self, sp: Span, name: Name, value: LitKind) -> MetaItem; fn item_use(&self, sp: Span, vis: Visibility, vp: P<ViewPath>) -> P<Item>; fn item_use_simple(&self, sp: Span, vis: Visibility, path: Path) -> P<Item>; fn item_use_simple_(&self,
                        sp: Span,
                        vis: Visibility,
                        ident: Ident,
                        path: Path)
                        -> P<Item>; fn item_use_list(&self,
                     sp: Span,
                     vis: Visibility,
                     path: Vec<Ident>,
                     imports: &[Ident])
                     -> P<Item>; fn item_use_glob(&self,
                     sp: Span,
                     vis: Visibility,
                     path: Vec<Ident>)
                     -> P<Item>; }
🔬 This is a nightly-only experimental API. (rustc_private)

Required Methods

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

🔬 This is a nightly-only experimental API. (rustc_private)

Implementors