blob: 7bfbbc18254af0d54f2caaaf0703ed31e38cd024 [file] [log] [blame]
Nika Layzell27726662017-10-24 23:16:35 -04001
2// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
3
4//! A Folder represents an AST->AST fold; it accepts an AST piece,
5//! and returns a piece of the same type.
6
7// Unreachable code is generated sometimes without the full feature.
8#![allow(unreachable_code)]
9
Nika Layzella6f46c42017-10-26 15:26:16 -040010use *;
Nika Layzell27726662017-10-24 23:16:35 -040011use synom::delimited::Delimited;
12
13trait FoldHelper {
14 type Item;
15 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item;
16}
17
18impl<T> FoldHelper for Vec<T> {
19 type Item = T;
20 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
21 self.into_iter().map(f).collect()
22 }
23}
24
25impl<T, U> FoldHelper for Delimited<T, U> {
26 type Item = T;
27 fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
28 self.into_iter().map(|elem| {
29 let (t, u) = elem.into_tuple();
30 (f(t), u)
31 }).collect::<Vec<(T, Option<U>)>>().into()
32 }
33}
34
Nika Layzell4ab8d6e2017-10-26 09:45:49 -040035
36#[cfg(feature = "full")]
37macro_rules! full {
38 ($e:expr) => { $e }
39}
40
41#[cfg(not(feature = "full"))]
42macro_rules! full {
43 ($e:expr) => { unreachable!() }
44}
45
46
Nika Layzell27726662017-10-24 23:16:35 -040047/// AST->AST fold.
48///
49/// Each method of the Folder trait is a hook to be potentially overridden. Each
50/// method's default implementation recursively visits the substructure of the
51/// input via the `walk` functions, which perform an "identity fold", that
52/// is, they return the same structure that they are given (for example the
53/// `fold_file` method by default calls `fold::walk_file`).
54///
55/// If you want to ensure that your code handles every variant
56/// explicitly, you need to override each method. (And you also need
57/// to monitor future changes to `Folder` in case a new method with a
58/// new default implementation gets introduced.)
59pub trait Folder {
60
Nika Layzella6f46c42017-10-26 15:26:16 -040061fn fold_abi(&mut self, i: Abi) -> Abi { fold_abi(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040062
Nika Layzella6f46c42017-10-26 15:26:16 -040063fn fold_abi_kind(&mut self, i: AbiKind) -> AbiKind { fold_abi_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040064
Nika Layzella6f46c42017-10-26 15:26:16 -040065fn fold_angle_bracketed_parameter_data(&mut self, i: AngleBracketedParameterData) -> AngleBracketedParameterData { fold_angle_bracketed_parameter_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040066# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040067fn fold_arg_captured(&mut self, i: ArgCaptured) -> ArgCaptured { fold_arg_captured(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040068# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040069fn fold_arg_self(&mut self, i: ArgSelf) -> ArgSelf { fold_arg_self(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040070# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040071fn fold_arg_self_ref(&mut self, i: ArgSelfRef) -> ArgSelfRef { fold_arg_self_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040072# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040073fn fold_arm(&mut self, i: Arm) -> Arm { fold_arm(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040074
Nika Layzella6f46c42017-10-26 15:26:16 -040075fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle { fold_attr_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040076
Nika Layzella6f46c42017-10-26 15:26:16 -040077fn fold_attribute(&mut self, i: Attribute) -> Attribute { fold_attribute(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040078
Nika Layzella6f46c42017-10-26 15:26:16 -040079fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg { fold_bare_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040080
Nika Layzella6f46c42017-10-26 15:26:16 -040081fn fold_bare_fn_arg_name(&mut self, i: BareFnArgName) -> BareFnArgName { fold_bare_fn_arg_name(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040082
Nika Layzella6f46c42017-10-26 15:26:16 -040083fn fold_bare_fn_ty(&mut self, i: BareFnTy) -> BareFnTy { fold_bare_fn_ty(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040084
Nika Layzella6f46c42017-10-26 15:26:16 -040085fn fold_bin_op(&mut self, i: BinOp) -> BinOp { fold_bin_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040086# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040087fn fold_binding_mode(&mut self, i: BindingMode) -> BindingMode { fold_binding_mode(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040088# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040089fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040090
Nika Layzella6f46c42017-10-26 15:26:16 -040091fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040092
Nika Layzella6f46c42017-10-26 15:26:16 -040093fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040094
Nika Layzella6f46c42017-10-26 15:26:16 -040095fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040096
Nika Layzella6f46c42017-10-26 15:26:16 -040097fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040098# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040099fn fold_capture_by(&mut self, i: CaptureBy) -> CaptureBy { fold_capture_by(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400100# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400101fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400102# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400103fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400104
Nika Layzella6f46c42017-10-26 15:26:16 -0400105fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400106
Nika Layzella6f46c42017-10-26 15:26:16 -0400107fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400108# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400109fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400110# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400111fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400112# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400113fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400115fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400116
Nika Layzella6f46c42017-10-26 15:26:16 -0400117fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400118# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400119fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400120# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400121fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400122# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400123fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400124
Nika Layzella6f46c42017-10-26 15:26:16 -0400125fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400126
Nika Layzella6f46c42017-10-26 15:26:16 -0400127fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400128# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400129fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400130# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400131fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400132# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400133fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400135fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400136# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400137fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400138
Nika Layzella6f46c42017-10-26 15:26:16 -0400139fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400140# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400141fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400142# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400143fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400144# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400145fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400146
Nika Layzella6f46c42017-10-26 15:26:16 -0400147fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400148
Nika Layzella6f46c42017-10-26 15:26:16 -0400149fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400150# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400151fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400152# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400153fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400154# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400155fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400156
Nika Layzella6f46c42017-10-26 15:26:16 -0400157fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400158
Nika Layzella6f46c42017-10-26 15:26:16 -0400159fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400160# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400161fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400162# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400163fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400164# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400165fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400166# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400167fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400169fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400170# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400171fn fold_expr_tup(&mut self, i: ExprTup) -> ExprTup { fold_expr_tup(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400172# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400173fn fold_expr_tup_field(&mut self, i: ExprTupField) -> ExprTupField { fold_expr_tup_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400174
Nika Layzella6f46c42017-10-26 15:26:16 -0400175fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400176
Nika Layzella6f46c42017-10-26 15:26:16 -0400177fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400178# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400179fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400180# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400181fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400182# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400183fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400184
Nika Layzella6f46c42017-10-26 15:26:16 -0400185fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400186# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400187fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400188# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400189fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400190# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400191fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400192# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400193fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400195fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400197fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400199fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400200# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400201fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400202
Nika Layzella6f46c42017-10-26 15:26:16 -0400203fn fold_function_ret_ty(&mut self, i: FunctionRetTy) -> FunctionRetTy { fold_function_ret_ty(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400204
Nika Layzella6f46c42017-10-26 15:26:16 -0400205fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400206# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400207fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400208# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400209fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400210# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400211fn fold_impl_item_kind(&mut self, i: ImplItemKind) -> ImplItemKind { fold_impl_item_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400212# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400213fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400214# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400215fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400216# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400217fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400218# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400219fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400220# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400221fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400222# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400223fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400224# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400225fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400226# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400227fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400228# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400229fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400230# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400231fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400232# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400233fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400235fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400236# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800237fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400238# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400239fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400240# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400241fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400242# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400243fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400244# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400245fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400246# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400247fn fold_item_ty(&mut self, i: ItemTy) -> ItemTy { fold_item_ty(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400248# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400249fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400250# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400251fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400252
Nika Layzella6f46c42017-10-26 15:26:16 -0400253fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400255fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400256# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400257fn fold_mac_stmt_style(&mut self, i: MacStmtStyle) -> MacStmtStyle { fold_mac_stmt_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400258
David Tolnaydecf28d2017-11-11 11:56:45 -0800259fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
260
Nika Layzella6f46c42017-10-26 15:26:16 -0400261fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400262
Nika Layzella6f46c42017-10-26 15:26:16 -0400263fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400264
Nika Layzella6f46c42017-10-26 15:26:16 -0400265fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400266# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400267fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400268
Nika Layzella6f46c42017-10-26 15:26:16 -0400269fn fold_mut_ty(&mut self, i: MutTy) -> MutTy { fold_mut_ty(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400270
Nika Layzella6f46c42017-10-26 15:26:16 -0400271fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400272
Nika Layzella6f46c42017-10-26 15:26:16 -0400273fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400274
Nika Layzella6f46c42017-10-26 15:26:16 -0400275fn fold_parenthesized_parameter_data(&mut self, i: ParenthesizedParameterData) -> ParenthesizedParameterData { fold_parenthesized_parameter_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400276# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400277fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400278# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400279fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400280# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400281fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400282# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400283fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400284# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400285fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400286# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400287fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400288# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400289fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400290# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400291fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400292# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400293fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400294# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400295fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400296# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400297fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400298# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400299fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400300
Nika Layzella6f46c42017-10-26 15:26:16 -0400301fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400302# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400303fn fold_path_glob(&mut self, i: PathGlob) -> PathGlob { fold_path_glob(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400304# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400305fn fold_path_list(&mut self, i: PathList) -> PathList { fold_path_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400306# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400307fn fold_path_list_item(&mut self, i: PathListItem) -> PathListItem { fold_path_list_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400308
Nika Layzella6f46c42017-10-26 15:26:16 -0400309fn fold_path_parameters(&mut self, i: PathParameters) -> PathParameters { fold_path_parameters(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400310
Nika Layzella6f46c42017-10-26 15:26:16 -0400311fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400312# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400313fn fold_path_simple(&mut self, i: PathSimple) -> PathSimple { fold_path_simple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400314
Nika Layzella6f46c42017-10-26 15:26:16 -0400315fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400316
Nika Layzella6f46c42017-10-26 15:26:16 -0400317fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400318# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400319fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400320# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400321fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400322
Nika Layzella6f46c42017-10-26 15:26:16 -0400323fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400324# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400325fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400326# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400327fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400328# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800329fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400330# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400331fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400332# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400333fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400334
Nika Layzella6f46c42017-10-26 15:26:16 -0400335fn fold_ty(&mut self, i: Ty) -> Ty { fold_ty(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400336
Nika Layzella6f46c42017-10-26 15:26:16 -0400337fn fold_ty_array(&mut self, i: TyArray) -> TyArray { fold_ty_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400338
Nika Layzella6f46c42017-10-26 15:26:16 -0400339fn fold_ty_bare_fn(&mut self, i: TyBareFn) -> TyBareFn { fold_ty_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400340
Nika Layzella6f46c42017-10-26 15:26:16 -0400341fn fold_ty_group(&mut self, i: TyGroup) -> TyGroup { fold_ty_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400342
Nika Layzella6f46c42017-10-26 15:26:16 -0400343fn fold_ty_impl_trait(&mut self, i: TyImplTrait) -> TyImplTrait { fold_ty_impl_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400344
Nika Layzella6f46c42017-10-26 15:26:16 -0400345fn fold_ty_infer(&mut self, i: TyInfer) -> TyInfer { fold_ty_infer(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400346
Nika Layzella6f46c42017-10-26 15:26:16 -0400347fn fold_ty_never(&mut self, i: TyNever) -> TyNever { fold_ty_never(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400348
Nika Layzella6f46c42017-10-26 15:26:16 -0400349fn fold_ty_param(&mut self, i: TyParam) -> TyParam { fold_ty_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400350
Nika Layzella6f46c42017-10-26 15:26:16 -0400351fn fold_ty_param_bound(&mut self, i: TyParamBound) -> TyParamBound { fold_ty_param_bound(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400352
Nika Layzella6f46c42017-10-26 15:26:16 -0400353fn fold_ty_paren(&mut self, i: TyParen) -> TyParen { fold_ty_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400354
Nika Layzella6f46c42017-10-26 15:26:16 -0400355fn fold_ty_path(&mut self, i: TyPath) -> TyPath { fold_ty_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400356
Nika Layzella6f46c42017-10-26 15:26:16 -0400357fn fold_ty_ptr(&mut self, i: TyPtr) -> TyPtr { fold_ty_ptr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400358
Nika Layzella6f46c42017-10-26 15:26:16 -0400359fn fold_ty_rptr(&mut self, i: TyRptr) -> TyRptr { fold_ty_rptr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400360
Nika Layzella6f46c42017-10-26 15:26:16 -0400361fn fold_ty_slice(&mut self, i: TySlice) -> TySlice { fold_ty_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400362
Nika Layzella6f46c42017-10-26 15:26:16 -0400363fn fold_ty_trait_object(&mut self, i: TyTraitObject) -> TyTraitObject { fold_ty_trait_object(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400364
Nika Layzella6f46c42017-10-26 15:26:16 -0400365fn fold_ty_tup(&mut self, i: TyTup) -> TyTup { fold_ty_tup(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400366
Nika Layzella6f46c42017-10-26 15:26:16 -0400367fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400368
Nika Layzella6f46c42017-10-26 15:26:16 -0400369fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400370
Nika Layzella6f46c42017-10-26 15:26:16 -0400371fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400372
Nika Layzella6f46c42017-10-26 15:26:16 -0400373fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400374
Nika Layzella6f46c42017-10-26 15:26:16 -0400375fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400376# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400377fn fold_view_path(&mut self, i: ViewPath) -> ViewPath { fold_view_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400378
Nika Layzella6f46c42017-10-26 15:26:16 -0400379fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400380
Nika Layzella6f46c42017-10-26 15:26:16 -0400381fn fold_vis_inherited(&mut self, i: VisInherited) -> VisInherited { fold_vis_inherited(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400382
Nika Layzella6f46c42017-10-26 15:26:16 -0400383fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400384
Nika Layzella6f46c42017-10-26 15:26:16 -0400385fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted { fold_vis_restricted(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400386
Nika Layzella6f46c42017-10-26 15:26:16 -0400387fn fold_visibility(&mut self, i: Visibility) -> Visibility { fold_visibility(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400388
Nika Layzella6f46c42017-10-26 15:26:16 -0400389fn fold_where_bound_predicate(&mut self, i: WhereBoundPredicate) -> WhereBoundPredicate { fold_where_bound_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400390
Nika Layzella6f46c42017-10-26 15:26:16 -0400391fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause { fold_where_clause(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400392
Nika Layzella6f46c42017-10-26 15:26:16 -0400393fn fold_where_eq_predicate(&mut self, i: WhereEqPredicate) -> WhereEqPredicate { fold_where_eq_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400394
Nika Layzella6f46c42017-10-26 15:26:16 -0400395fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate { fold_where_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400396
Nika Layzella6f46c42017-10-26 15:26:16 -0400397fn fold_where_region_predicate(&mut self, i: WhereRegionPredicate) -> WhereRegionPredicate { fold_where_region_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400398
399}
400
401
Nika Layzella6f46c42017-10-26 15:26:16 -0400402pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
Nika Layzell27726662017-10-24 23:16:35 -0400403 Abi {
404 extern_token: _i . extern_token,
405 kind: _visitor.fold_abi_kind(_i . kind),
406 }
407}
408
Nika Layzella6f46c42017-10-26 15:26:16 -0400409pub fn fold_abi_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: AbiKind) -> AbiKind {
Nika Layzell27726662017-10-24 23:16:35 -0400410 use ::AbiKind::*;
411 match _i {
412 Named(_binding_0, ) => {
413 Named (
414 _binding_0,
415 )
416 }
417 Default => { Default }
418 }
419}
420
Nika Layzella6f46c42017-10-26 15:26:16 -0400421pub fn fold_angle_bracketed_parameter_data<V: Folder + ?Sized>(_visitor: &mut V, _i: AngleBracketedParameterData) -> AngleBracketedParameterData {
Nika Layzell27726662017-10-24 23:16:35 -0400422 AngleBracketedParameterData {
423 turbofish: _i . turbofish,
424 lt_token: _i . lt_token,
425 lifetimes: _i . lifetimes,
426 types: FoldHelper::lift(_i . types, |it| { _visitor.fold_ty(it) }),
427 bindings: FoldHelper::lift(_i . bindings, |it| { _visitor.fold_type_binding(it) }),
428 gt_token: _i . gt_token,
429 }
430}
431# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400432pub fn fold_arg_captured<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgCaptured) -> ArgCaptured {
Nika Layzell27726662017-10-24 23:16:35 -0400433 ArgCaptured {
434 pat: _visitor.fold_pat(_i . pat),
435 colon_token: _i . colon_token,
436 ty: _visitor.fold_ty(_i . ty),
437 }
438}
439# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400440pub fn fold_arg_self<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelf) -> ArgSelf {
Nika Layzell27726662017-10-24 23:16:35 -0400441 ArgSelf {
442 mutbl: _visitor.fold_mutability(_i . mutbl),
443 self_token: _i . self_token,
444 }
445}
446# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400447pub fn fold_arg_self_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelfRef) -> ArgSelfRef {
Nika Layzell27726662017-10-24 23:16:35 -0400448 ArgSelfRef {
449 and_token: _i . and_token,
450 self_token: _i . self_token,
451 lifetime: _i . lifetime,
452 mutbl: _visitor.fold_mutability(_i . mutbl),
453 }
454}
455# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400456pub fn fold_arm<V: Folder + ?Sized>(_visitor: &mut V, _i: Arm) -> Arm {
Nika Layzell27726662017-10-24 23:16:35 -0400457 Arm {
458 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
459 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
460 if_token: _i . if_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400461 guard: (_i . guard).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400462 rocket_token: _i . rocket_token,
463 body: Box::new(_visitor.fold_expr(* _i . body)),
464 comma: _i . comma,
465 }
466}
467
Nika Layzella6f46c42017-10-26 15:26:16 -0400468pub fn fold_attr_style<V: Folder + ?Sized>(_visitor: &mut V, _i: AttrStyle) -> AttrStyle {
Nika Layzell27726662017-10-24 23:16:35 -0400469 use ::AttrStyle::*;
470 match _i {
471 Outer => { Outer }
472 Inner(_binding_0, ) => {
473 Inner (
474 _binding_0,
475 )
476 }
477 }
478}
479
Nika Layzella6f46c42017-10-26 15:26:16 -0400480pub fn fold_attribute<V: Folder + ?Sized>(_visitor: &mut V, _i: Attribute) -> Attribute {
Nika Layzell27726662017-10-24 23:16:35 -0400481 Attribute {
482 style: _visitor.fold_attr_style(_i . style),
483 pound_token: _i . pound_token,
484 bracket_token: _i . bracket_token,
485 path: _visitor.fold_path(_i . path),
486 tts: _i . tts,
487 is_sugared_doc: _i . is_sugared_doc,
488 }
489}
490
Nika Layzella6f46c42017-10-26 15:26:16 -0400491pub fn fold_bare_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArg) -> BareFnArg {
Nika Layzell27726662017-10-24 23:16:35 -0400492 BareFnArg {
493 name: _i . name,
494 ty: _visitor.fold_ty(_i . ty),
495 }
496}
497
Nika Layzella6f46c42017-10-26 15:26:16 -0400498pub fn fold_bare_fn_arg_name<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArgName) -> BareFnArgName {
Nika Layzell27726662017-10-24 23:16:35 -0400499 use ::BareFnArgName::*;
500 match _i {
501 Named(_binding_0, ) => {
502 Named (
503 _binding_0,
504 )
505 }
506 Wild(_binding_0, ) => {
507 Wild (
508 _binding_0,
509 )
510 }
511 }
512}
513
Nika Layzella6f46c42017-10-26 15:26:16 -0400514pub fn fold_bare_fn_ty<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnTy) -> BareFnTy {
Nika Layzell27726662017-10-24 23:16:35 -0400515 BareFnTy {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400516 lifetimes: (_i . lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400517 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400518 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400519 fn_token: _i . fn_token,
520 paren_token: _i . paren_token,
521 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_bare_fn_arg(it) }),
522 variadic: _i . variadic,
523 output: _visitor.fold_function_ret_ty(_i . output),
524 }
525}
526
Nika Layzella6f46c42017-10-26 15:26:16 -0400527pub fn fold_bin_op<V: Folder + ?Sized>(_visitor: &mut V, _i: BinOp) -> BinOp {
Nika Layzell27726662017-10-24 23:16:35 -0400528 use ::BinOp::*;
529 match _i {
530 Add(_binding_0, ) => {
531 Add (
532 _binding_0,
533 )
534 }
535 Sub(_binding_0, ) => {
536 Sub (
537 _binding_0,
538 )
539 }
540 Mul(_binding_0, ) => {
541 Mul (
542 _binding_0,
543 )
544 }
545 Div(_binding_0, ) => {
546 Div (
547 _binding_0,
548 )
549 }
550 Rem(_binding_0, ) => {
551 Rem (
552 _binding_0,
553 )
554 }
555 And(_binding_0, ) => {
556 And (
557 _binding_0,
558 )
559 }
560 Or(_binding_0, ) => {
561 Or (
562 _binding_0,
563 )
564 }
565 BitXor(_binding_0, ) => {
566 BitXor (
567 _binding_0,
568 )
569 }
570 BitAnd(_binding_0, ) => {
571 BitAnd (
572 _binding_0,
573 )
574 }
575 BitOr(_binding_0, ) => {
576 BitOr (
577 _binding_0,
578 )
579 }
580 Shl(_binding_0, ) => {
581 Shl (
582 _binding_0,
583 )
584 }
585 Shr(_binding_0, ) => {
586 Shr (
587 _binding_0,
588 )
589 }
590 Eq(_binding_0, ) => {
591 Eq (
592 _binding_0,
593 )
594 }
595 Lt(_binding_0, ) => {
596 Lt (
597 _binding_0,
598 )
599 }
600 Le(_binding_0, ) => {
601 Le (
602 _binding_0,
603 )
604 }
605 Ne(_binding_0, ) => {
606 Ne (
607 _binding_0,
608 )
609 }
610 Ge(_binding_0, ) => {
611 Ge (
612 _binding_0,
613 )
614 }
615 Gt(_binding_0, ) => {
616 Gt (
617 _binding_0,
618 )
619 }
620 AddEq(_binding_0, ) => {
621 AddEq (
622 _binding_0,
623 )
624 }
625 SubEq(_binding_0, ) => {
626 SubEq (
627 _binding_0,
628 )
629 }
630 MulEq(_binding_0, ) => {
631 MulEq (
632 _binding_0,
633 )
634 }
635 DivEq(_binding_0, ) => {
636 DivEq (
637 _binding_0,
638 )
639 }
640 RemEq(_binding_0, ) => {
641 RemEq (
642 _binding_0,
643 )
644 }
645 BitXorEq(_binding_0, ) => {
646 BitXorEq (
647 _binding_0,
648 )
649 }
650 BitAndEq(_binding_0, ) => {
651 BitAndEq (
652 _binding_0,
653 )
654 }
655 BitOrEq(_binding_0, ) => {
656 BitOrEq (
657 _binding_0,
658 )
659 }
660 ShlEq(_binding_0, ) => {
661 ShlEq (
662 _binding_0,
663 )
664 }
665 ShrEq(_binding_0, ) => {
666 ShrEq (
667 _binding_0,
668 )
669 }
670 }
671}
672# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400673pub fn fold_binding_mode<V: Folder + ?Sized>(_visitor: &mut V, _i: BindingMode) -> BindingMode {
Nika Layzell27726662017-10-24 23:16:35 -0400674 use ::BindingMode::*;
675 match _i {
676 ByRef(_binding_0, _binding_1, ) => {
677 ByRef (
678 _binding_0,
679 _visitor.fold_mutability(_binding_1),
680 )
681 }
682 ByValue(_binding_0, ) => {
683 ByValue (
684 _visitor.fold_mutability(_binding_0),
685 )
686 }
687 }
688}
689# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400690pub fn fold_block<V: Folder + ?Sized>(_visitor: &mut V, _i: Block) -> Block {
Nika Layzell27726662017-10-24 23:16:35 -0400691 Block {
692 brace_token: _i . brace_token,
693 stmts: FoldHelper::lift(_i . stmts, |it| { _visitor.fold_stmt(it) }),
694 }
695}
696
Nika Layzella6f46c42017-10-26 15:26:16 -0400697pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
Nika Layzell27726662017-10-24 23:16:35 -0400698 use ::Body::*;
699 match _i {
700 Enum(_binding_0, ) => {
701 Enum (
702 _visitor.fold_body_enum(_binding_0),
703 )
704 }
705 Struct(_binding_0, ) => {
706 Struct (
707 _visitor.fold_body_struct(_binding_0),
708 )
709 }
710 }
711}
712
Nika Layzella6f46c42017-10-26 15:26:16 -0400713pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
Nika Layzell27726662017-10-24 23:16:35 -0400714 BodyEnum {
715 enum_token: _i . enum_token,
716 brace_token: _i . brace_token,
717 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
718 }
719}
720
Nika Layzella6f46c42017-10-26 15:26:16 -0400721pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
Nika Layzell27726662017-10-24 23:16:35 -0400722 BodyStruct {
723 data: _visitor.fold_variant_data(_i . data),
724 struct_token: _i . struct_token,
725 semi_token: _i . semi_token,
726 }
727}
728
Nika Layzella6f46c42017-10-26 15:26:16 -0400729pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
Nika Layzell27726662017-10-24 23:16:35 -0400730 BoundLifetimes {
731 for_token: _i . for_token,
732 lt_token: _i . lt_token,
733 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
734 gt_token: _i . gt_token,
735 }
736}
737# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400738pub fn fold_capture_by<V: Folder + ?Sized>(_visitor: &mut V, _i: CaptureBy) -> CaptureBy {
Nika Layzell27726662017-10-24 23:16:35 -0400739 use ::CaptureBy::*;
740 match _i {
741 Value(_binding_0, ) => {
742 Value (
743 _binding_0,
744 )
745 }
746 Ref => { Ref }
747 }
748}
749# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400750pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
Nika Layzell27726662017-10-24 23:16:35 -0400751 use ::Constness::*;
752 match _i {
753 Const(_binding_0, ) => {
754 Const (
755 _binding_0,
756 )
757 }
758 NotConst => { NotConst }
759 }
760}
761# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400762pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
Nika Layzell27726662017-10-24 23:16:35 -0400763 use ::Defaultness::*;
764 match _i {
765 Default(_binding_0, ) => {
766 Default (
767 _binding_0,
768 )
769 }
770 Final => { Final }
771 }
772}
773
Nika Layzella6f46c42017-10-26 15:26:16 -0400774pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
Nika Layzell27726662017-10-24 23:16:35 -0400775 DeriveInput {
776 ident: _i . ident,
777 vis: _visitor.fold_visibility(_i . vis),
778 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
779 generics: _visitor.fold_generics(_i . generics),
780 body: _visitor.fold_body(_i . body),
781 }
782}
783
Nika Layzella6f46c42017-10-26 15:26:16 -0400784pub fn fold_expr<V: Folder + ?Sized>(_visitor: &mut V, _i: Expr) -> Expr {
Nika Layzell27726662017-10-24 23:16:35 -0400785 Expr {
786 node: _visitor.fold_expr_kind(_i . node),
787 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
788 }
789}
790# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400791pub fn fold_expr_addr_of<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAddrOf) -> ExprAddrOf {
Nika Layzell27726662017-10-24 23:16:35 -0400792 ExprAddrOf {
793 and_token: _i . and_token,
794 mutbl: _visitor.fold_mutability(_i . mutbl),
795 expr: Box::new(_visitor.fold_expr(* _i . expr)),
796 }
797}
798# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400799pub fn fold_expr_array<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprArray) -> ExprArray {
Nika Layzell27726662017-10-24 23:16:35 -0400800 ExprArray {
801 exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
802 bracket_token: _i . bracket_token,
803 }
804}
805# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400806pub fn fold_expr_assign<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssign) -> ExprAssign {
Nika Layzell27726662017-10-24 23:16:35 -0400807 ExprAssign {
808 left: Box::new(_visitor.fold_expr(* _i . left)),
809 right: Box::new(_visitor.fold_expr(* _i . right)),
810 eq_token: _i . eq_token,
811 }
812}
813# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400814pub fn fold_expr_assign_op<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssignOp) -> ExprAssignOp {
Nika Layzell27726662017-10-24 23:16:35 -0400815 ExprAssignOp {
816 op: _visitor.fold_bin_op(_i . op),
817 left: Box::new(_visitor.fold_expr(* _i . left)),
818 right: Box::new(_visitor.fold_expr(* _i . right)),
819 }
820}
821
Nika Layzella6f46c42017-10-26 15:26:16 -0400822pub fn fold_expr_binary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBinary) -> ExprBinary {
Nika Layzell27726662017-10-24 23:16:35 -0400823 ExprBinary {
824 op: _visitor.fold_bin_op(_i . op),
825 left: Box::new(_visitor.fold_expr(* _i . left)),
826 right: Box::new(_visitor.fold_expr(* _i . right)),
827 }
828}
829# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400830pub fn fold_expr_block<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBlock) -> ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400831 ExprBlock {
832 unsafety: _visitor.fold_unsafety(_i . unsafety),
833 block: _visitor.fold_block(_i . block),
834 }
835}
836# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400837pub fn fold_expr_box<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBox) -> ExprBox {
Nika Layzell27726662017-10-24 23:16:35 -0400838 ExprBox {
839 expr: Box::new(_visitor.fold_expr(* _i . expr)),
840 box_token: _i . box_token,
841 }
842}
843# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400844pub fn fold_expr_break<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBreak) -> ExprBreak {
Nika Layzell27726662017-10-24 23:16:35 -0400845 ExprBreak {
846 label: _i . label,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400847 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400848 break_token: _i . break_token,
849 }
850}
851
Nika Layzella6f46c42017-10-26 15:26:16 -0400852pub fn fold_expr_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCall) -> ExprCall {
Nika Layzell27726662017-10-24 23:16:35 -0400853 ExprCall {
854 func: Box::new(_visitor.fold_expr(* _i . func)),
855 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
856 paren_token: _i . paren_token,
857 }
858}
859
Nika Layzella6f46c42017-10-26 15:26:16 -0400860pub fn fold_expr_cast<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCast) -> ExprCast {
Nika Layzell27726662017-10-24 23:16:35 -0400861 ExprCast {
862 expr: Box::new(_visitor.fold_expr(* _i . expr)),
863 as_token: _i . as_token,
864 ty: Box::new(_visitor.fold_ty(* _i . ty)),
865 }
866}
867# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400868pub fn fold_expr_catch<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCatch) -> ExprCatch {
Nika Layzell27726662017-10-24 23:16:35 -0400869 ExprCatch {
870 do_token: _i . do_token,
871 catch_token: _i . catch_token,
872 block: _visitor.fold_block(_i . block),
873 }
874}
875# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400876pub fn fold_expr_closure<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprClosure) -> ExprClosure {
Nika Layzell27726662017-10-24 23:16:35 -0400877 ExprClosure {
878 capture: _visitor.fold_capture_by(_i . capture),
879 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
880 body: Box::new(_visitor.fold_expr(* _i . body)),
881 or1_token: _i . or1_token,
882 or2_token: _i . or2_token,
883 }
884}
885# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400886pub fn fold_expr_continue<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprContinue) -> ExprContinue {
Nika Layzell27726662017-10-24 23:16:35 -0400887 ExprContinue {
888 label: _i . label,
889 continue_token: _i . continue_token,
890 }
891}
892# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400893pub fn fold_expr_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprField) -> ExprField {
Nika Layzell27726662017-10-24 23:16:35 -0400894 ExprField {
895 expr: Box::new(_visitor.fold_expr(* _i . expr)),
896 field: _i . field,
897 dot_token: _i . dot_token,
898 }
899}
900# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400901pub fn fold_expr_for_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprForLoop) -> ExprForLoop {
Nika Layzell27726662017-10-24 23:16:35 -0400902 ExprForLoop {
903 pat: Box::new(_visitor.fold_pat(* _i . pat)),
904 expr: Box::new(_visitor.fold_expr(* _i . expr)),
905 body: _visitor.fold_block(_i . body),
906 label: _i . label,
907 for_token: _i . for_token,
908 colon_token: _i . colon_token,
909 in_token: _i . in_token,
910 }
911}
912
Nika Layzella6f46c42017-10-26 15:26:16 -0400913pub fn fold_expr_group<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprGroup) -> ExprGroup {
Nika Layzell27726662017-10-24 23:16:35 -0400914 ExprGroup {
915 expr: Box::new(_visitor.fold_expr(* _i . expr)),
916 group_token: _i . group_token,
917 }
918}
919# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400920pub fn fold_expr_if<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIf) -> ExprIf {
Nika Layzell27726662017-10-24 23:16:35 -0400921 ExprIf {
922 cond: Box::new(_visitor.fold_expr(* _i . cond)),
923 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400924 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400925 if_token: _i . if_token,
926 else_token: _i . else_token,
927 }
928}
929# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400930pub fn fold_expr_if_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIfLet) -> ExprIfLet {
Nika Layzell27726662017-10-24 23:16:35 -0400931 ExprIfLet {
932 pat: Box::new(_visitor.fold_pat(* _i . pat)),
933 expr: Box::new(_visitor.fold_expr(* _i . expr)),
934 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400935 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400936 if_token: _i . if_token,
937 let_token: _i . let_token,
938 eq_token: _i . eq_token,
939 else_token: _i . else_token,
940 }
941}
942# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400943pub fn fold_expr_in_place<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprInPlace) -> ExprInPlace {
Nika Layzell27726662017-10-24 23:16:35 -0400944 ExprInPlace {
945 place: Box::new(_visitor.fold_expr(* _i . place)),
946 kind: _visitor.fold_in_place_kind(_i . kind),
947 value: Box::new(_visitor.fold_expr(* _i . value)),
948 }
949}
950
Nika Layzella6f46c42017-10-26 15:26:16 -0400951pub fn fold_expr_index<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIndex) -> ExprIndex {
Nika Layzell27726662017-10-24 23:16:35 -0400952 ExprIndex {
953 expr: Box::new(_visitor.fold_expr(* _i . expr)),
954 index: Box::new(_visitor.fold_expr(* _i . index)),
955 bracket_token: _i . bracket_token,
956 }
957}
958
Nika Layzella6f46c42017-10-26 15:26:16 -0400959pub fn fold_expr_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprKind) -> ExprKind {
Nika Layzell27726662017-10-24 23:16:35 -0400960 use ::ExprKind::*;
961 match _i {
962 Box(_binding_0, ) => {
963 Box (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400964 full!(_visitor.fold_expr_box(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400965 )
966 }
967 InPlace(_binding_0, ) => {
968 InPlace (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400969 full!(_visitor.fold_expr_in_place(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400970 )
971 }
972 Array(_binding_0, ) => {
973 Array (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400974 full!(_visitor.fold_expr_array(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400975 )
976 }
977 Call(_binding_0, ) => {
978 Call (
979 _visitor.fold_expr_call(_binding_0),
980 )
981 }
982 MethodCall(_binding_0, ) => {
983 MethodCall (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400984 full!(_visitor.fold_expr_method_call(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400985 )
986 }
987 Tup(_binding_0, ) => {
988 Tup (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400989 full!(_visitor.fold_expr_tup(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400990 )
991 }
992 Binary(_binding_0, ) => {
993 Binary (
994 _visitor.fold_expr_binary(_binding_0),
995 )
996 }
997 Unary(_binding_0, ) => {
998 Unary (
999 _visitor.fold_expr_unary(_binding_0),
1000 )
1001 }
1002 Lit(_binding_0, ) => {
1003 Lit (
1004 _binding_0,
1005 )
1006 }
1007 Cast(_binding_0, ) => {
1008 Cast (
1009 _visitor.fold_expr_cast(_binding_0),
1010 )
1011 }
1012 Type(_binding_0, ) => {
1013 Type (
1014 _visitor.fold_expr_type(_binding_0),
1015 )
1016 }
1017 If(_binding_0, ) => {
1018 If (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001019 full!(_visitor.fold_expr_if(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001020 )
1021 }
1022 IfLet(_binding_0, ) => {
1023 IfLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001024 full!(_visitor.fold_expr_if_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001025 )
1026 }
1027 While(_binding_0, ) => {
1028 While (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001029 full!(_visitor.fold_expr_while(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001030 )
1031 }
1032 WhileLet(_binding_0, ) => {
1033 WhileLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001034 full!(_visitor.fold_expr_while_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001035 )
1036 }
1037 ForLoop(_binding_0, ) => {
1038 ForLoop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001039 full!(_visitor.fold_expr_for_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001040 )
1041 }
1042 Loop(_binding_0, ) => {
1043 Loop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001044 full!(_visitor.fold_expr_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001045 )
1046 }
1047 Match(_binding_0, ) => {
1048 Match (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001049 full!(_visitor.fold_expr_match(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001050 )
1051 }
1052 Closure(_binding_0, ) => {
1053 Closure (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001054 full!(_visitor.fold_expr_closure(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001055 )
1056 }
1057 Block(_binding_0, ) => {
1058 Block (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001059 full!(_visitor.fold_expr_block(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001060 )
1061 }
1062 Assign(_binding_0, ) => {
1063 Assign (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001064 full!(_visitor.fold_expr_assign(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001065 )
1066 }
1067 AssignOp(_binding_0, ) => {
1068 AssignOp (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001069 full!(_visitor.fold_expr_assign_op(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001070 )
1071 }
1072 Field(_binding_0, ) => {
1073 Field (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001074 full!(_visitor.fold_expr_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001075 )
1076 }
1077 TupField(_binding_0, ) => {
1078 TupField (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001079 full!(_visitor.fold_expr_tup_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001080 )
1081 }
1082 Index(_binding_0, ) => {
1083 Index (
1084 _visitor.fold_expr_index(_binding_0),
1085 )
1086 }
1087 Range(_binding_0, ) => {
1088 Range (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001089 full!(_visitor.fold_expr_range(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001090 )
1091 }
1092 Path(_binding_0, ) => {
1093 Path (
1094 _visitor.fold_expr_path(_binding_0),
1095 )
1096 }
1097 AddrOf(_binding_0, ) => {
1098 AddrOf (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001099 full!(_visitor.fold_expr_addr_of(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001100 )
1101 }
1102 Break(_binding_0, ) => {
1103 Break (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001104 full!(_visitor.fold_expr_break(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001105 )
1106 }
1107 Continue(_binding_0, ) => {
1108 Continue (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001109 full!(_visitor.fold_expr_continue(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001110 )
1111 }
1112 Ret(_binding_0, ) => {
1113 Ret (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001114 full!(_visitor.fold_expr_ret(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001115 )
1116 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001117 Macro(_binding_0, ) => {
1118 Macro (
1119 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001120 )
1121 }
1122 Struct(_binding_0, ) => {
1123 Struct (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001124 full!(_visitor.fold_expr_struct(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001125 )
1126 }
1127 Repeat(_binding_0, ) => {
1128 Repeat (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001129 full!(_visitor.fold_expr_repeat(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001130 )
1131 }
1132 Paren(_binding_0, ) => {
1133 Paren (
1134 _visitor.fold_expr_paren(_binding_0),
1135 )
1136 }
1137 Group(_binding_0, ) => {
1138 Group (
1139 _visitor.fold_expr_group(_binding_0),
1140 )
1141 }
1142 Try(_binding_0, ) => {
1143 Try (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001144 full!(_visitor.fold_expr_try(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001145 )
1146 }
1147 Catch(_binding_0, ) => {
1148 Catch (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001149 full!(_visitor.fold_expr_catch(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001150 )
1151 }
1152 Yield(_binding_0, ) => {
1153 Yield (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001154 full!(_visitor.fold_expr_yield(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001155 )
1156 }
1157 }
1158}
1159# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001160pub fn fold_expr_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprLoop) -> ExprLoop {
Nika Layzell27726662017-10-24 23:16:35 -04001161 ExprLoop {
1162 body: _visitor.fold_block(_i . body),
1163 label: _i . label,
1164 loop_token: _i . loop_token,
1165 colon_token: _i . colon_token,
1166 }
1167}
1168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001169pub fn fold_expr_match<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMatch) -> ExprMatch {
Nika Layzell27726662017-10-24 23:16:35 -04001170 ExprMatch {
1171 match_token: _i . match_token,
1172 brace_token: _i . brace_token,
1173 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1174 arms: FoldHelper::lift(_i . arms, |it| { _visitor.fold_arm(it) }),
1175 }
1176}
1177# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001178pub fn fold_expr_method_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMethodCall) -> ExprMethodCall {
Nika Layzell27726662017-10-24 23:16:35 -04001179 ExprMethodCall {
1180 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1181 method: _i . method,
1182 typarams: FoldHelper::lift(_i . typarams, |it| { _visitor.fold_ty(it) }),
1183 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1184 paren_token: _i . paren_token,
1185 dot_token: _i . dot_token,
1186 lt_token: _i . lt_token,
1187 colon2_token: _i . colon2_token,
1188 gt_token: _i . gt_token,
1189 }
1190}
1191
Nika Layzella6f46c42017-10-26 15:26:16 -04001192pub fn fold_expr_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprParen) -> ExprParen {
Nika Layzell27726662017-10-24 23:16:35 -04001193 ExprParen {
1194 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1195 paren_token: _i . paren_token,
1196 }
1197}
1198
Nika Layzella6f46c42017-10-26 15:26:16 -04001199pub fn fold_expr_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprPath) -> ExprPath {
Nika Layzell27726662017-10-24 23:16:35 -04001200 ExprPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001201 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001202 path: _visitor.fold_path(_i . path),
1203 }
1204}
1205# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001206pub fn fold_expr_range<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRange) -> ExprRange {
Nika Layzell27726662017-10-24 23:16:35 -04001207 ExprRange {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001208 from: (_i . from).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
1209 to: (_i . to).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001210 limits: _visitor.fold_range_limits(_i . limits),
1211 }
1212}
1213# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001214pub fn fold_expr_repeat<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRepeat) -> ExprRepeat {
Nika Layzell27726662017-10-24 23:16:35 -04001215 ExprRepeat {
1216 bracket_token: _i . bracket_token,
1217 semi_token: _i . semi_token,
1218 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1219 amt: Box::new(_visitor.fold_expr(* _i . amt)),
1220 }
1221}
1222# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001223pub fn fold_expr_ret<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRet) -> ExprRet {
Nika Layzell27726662017-10-24 23:16:35 -04001224 ExprRet {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001225 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001226 return_token: _i . return_token,
1227 }
1228}
1229# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001230pub fn fold_expr_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprStruct) -> ExprStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001231 ExprStruct {
1232 path: _visitor.fold_path(_i . path),
1233 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_value(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001234 rest: (_i . rest).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001235 dot2_token: _i . dot2_token,
1236 brace_token: _i . brace_token,
1237 }
1238}
1239# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001240pub fn fold_expr_try<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTry) -> ExprTry {
Nika Layzell27726662017-10-24 23:16:35 -04001241 ExprTry {
1242 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1243 question_token: _i . question_token,
1244 }
1245}
1246# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001247pub fn fold_expr_tup<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTup) -> ExprTup {
Nika Layzell27726662017-10-24 23:16:35 -04001248 ExprTup {
1249 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1250 paren_token: _i . paren_token,
1251 lone_comma: _i . lone_comma,
1252 }
1253}
1254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001255pub fn fold_expr_tup_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTupField) -> ExprTupField {
Nika Layzell27726662017-10-24 23:16:35 -04001256 ExprTupField {
1257 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1258 field: _i . field,
1259 dot_token: _i . dot_token,
1260 }
1261}
1262
Nika Layzella6f46c42017-10-26 15:26:16 -04001263pub fn fold_expr_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprType) -> ExprType {
Nika Layzell27726662017-10-24 23:16:35 -04001264 ExprType {
1265 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1266 colon_token: _i . colon_token,
1267 ty: Box::new(_visitor.fold_ty(* _i . ty)),
1268 }
1269}
1270
Nika Layzella6f46c42017-10-26 15:26:16 -04001271pub fn fold_expr_unary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnary) -> ExprUnary {
Nika Layzell27726662017-10-24 23:16:35 -04001272 ExprUnary {
1273 op: _visitor.fold_un_op(_i . op),
1274 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1275 }
1276}
1277# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001278pub fn fold_expr_while<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhile) -> ExprWhile {
Nika Layzell27726662017-10-24 23:16:35 -04001279 ExprWhile {
1280 cond: Box::new(_visitor.fold_expr(* _i . cond)),
1281 body: _visitor.fold_block(_i . body),
1282 label: _i . label,
1283 colon_token: _i . colon_token,
1284 while_token: _i . while_token,
1285 }
1286}
1287# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001288pub fn fold_expr_while_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhileLet) -> ExprWhileLet {
Nika Layzell27726662017-10-24 23:16:35 -04001289 ExprWhileLet {
1290 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1291 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1292 body: _visitor.fold_block(_i . body),
1293 label: _i . label,
1294 colon_token: _i . colon_token,
1295 while_token: _i . while_token,
1296 let_token: _i . let_token,
1297 eq_token: _i . eq_token,
1298 }
1299}
1300# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001301pub fn fold_expr_yield<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprYield) -> ExprYield {
Nika Layzell27726662017-10-24 23:16:35 -04001302 ExprYield {
1303 yield_token: _i . yield_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001304 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001305 }
1306}
1307
Nika Layzella6f46c42017-10-26 15:26:16 -04001308pub fn fold_field<V: Folder + ?Sized>(_visitor: &mut V, _i: Field) -> Field {
Nika Layzell27726662017-10-24 23:16:35 -04001309 Field {
1310 ident: _i . ident,
1311 vis: _visitor.fold_visibility(_i . vis),
1312 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1313 ty: _visitor.fold_ty(_i . ty),
1314 colon_token: _i . colon_token,
1315 }
1316}
1317# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001318pub fn fold_field_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldPat) -> FieldPat {
Nika Layzell27726662017-10-24 23:16:35 -04001319 FieldPat {
1320 ident: _i . ident,
1321 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1322 is_shorthand: _i . is_shorthand,
1323 colon_token: _i . colon_token,
1324 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1325 }
1326}
1327# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001328pub fn fold_field_value<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldValue) -> FieldValue {
Nika Layzell27726662017-10-24 23:16:35 -04001329 FieldValue {
1330 ident: _i . ident,
1331 expr: _visitor.fold_expr(_i . expr),
1332 is_shorthand: _i . is_shorthand,
1333 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1334 colon_token: _i . colon_token,
1335 }
1336}
1337# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001338pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
Nika Layzell27726662017-10-24 23:16:35 -04001339 File {
1340 shebang: _i . shebang,
1341 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1342 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_item(it) }),
1343 }
1344}
1345# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001346pub fn fold_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: FnArg) -> FnArg {
Nika Layzell27726662017-10-24 23:16:35 -04001347 use ::FnArg::*;
1348 match _i {
1349 SelfRef(_binding_0, ) => {
1350 SelfRef (
1351 _visitor.fold_arg_self_ref(_binding_0),
1352 )
1353 }
1354 SelfValue(_binding_0, ) => {
1355 SelfValue (
1356 _visitor.fold_arg_self(_binding_0),
1357 )
1358 }
1359 Captured(_binding_0, ) => {
1360 Captured (
1361 _visitor.fold_arg_captured(_binding_0),
1362 )
1363 }
1364 Ignored(_binding_0, ) => {
1365 Ignored (
1366 _visitor.fold_ty(_binding_0),
1367 )
1368 }
1369 }
1370}
1371# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001372pub fn fold_fn_decl<V: Folder + ?Sized>(_visitor: &mut V, _i: FnDecl) -> FnDecl {
Nika Layzell27726662017-10-24 23:16:35 -04001373 FnDecl {
1374 fn_token: _i . fn_token,
1375 paren_token: _i . paren_token,
1376 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
1377 output: _visitor.fold_function_ret_ty(_i . output),
1378 generics: _visitor.fold_generics(_i . generics),
1379 variadic: _i . variadic,
1380 dot_tokens: _i . dot_tokens,
1381 }
1382}
1383# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001384pub fn fold_foreign_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItem) -> ForeignItem {
David Tolnay8894f602017-11-11 12:11:04 -08001385 use ::ForeignItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001386 match _i {
1387 Fn(_binding_0, ) => {
1388 Fn (
1389 _visitor.fold_foreign_item_fn(_binding_0),
1390 )
1391 }
1392 Static(_binding_0, ) => {
1393 Static (
1394 _visitor.fold_foreign_item_static(_binding_0),
1395 )
1396 }
1397 }
1398}
1399# [ cfg ( feature = "full" ) ]
David Tolnay8894f602017-11-11 12:11:04 -08001400pub fn fold_foreign_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemFn) -> ForeignItemFn {
1401 ForeignItemFn {
1402 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1403 vis: _visitor.fold_visibility(_i . vis),
1404 ident: _i . ident,
1405 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1406 semi_token: _i . semi_token,
1407 }
1408}
1409# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001410pub fn fold_foreign_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemStatic) -> ForeignItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001411 ForeignItemStatic {
David Tolnay8894f602017-11-11 12:11:04 -08001412 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1413 vis: _visitor.fold_visibility(_i . vis),
Nika Layzell27726662017-10-24 23:16:35 -04001414 static_token: _i . static_token,
Nika Layzell27726662017-10-24 23:16:35 -04001415 mutbl: _visitor.fold_mutability(_i . mutbl),
David Tolnay8894f602017-11-11 12:11:04 -08001416 ident: _i . ident,
1417 colon_token: _i . colon_token,
1418 ty: Box::new(_visitor.fold_ty(* _i . ty)),
1419 semi_token: _i . semi_token,
Nika Layzell27726662017-10-24 23:16:35 -04001420 }
1421}
1422
Nika Layzella6f46c42017-10-26 15:26:16 -04001423pub fn fold_function_ret_ty<V: Folder + ?Sized>(_visitor: &mut V, _i: FunctionRetTy) -> FunctionRetTy {
Nika Layzell27726662017-10-24 23:16:35 -04001424 use ::FunctionRetTy::*;
1425 match _i {
1426 Default => { Default }
1427 Ty(_binding_0, _binding_1, ) => {
1428 Ty (
1429 _visitor.fold_ty(_binding_0),
1430 _binding_1,
1431 )
1432 }
1433 }
1434}
1435
Nika Layzella6f46c42017-10-26 15:26:16 -04001436pub fn fold_generics<V: Folder + ?Sized>(_visitor: &mut V, _i: Generics) -> Generics {
Nika Layzell27726662017-10-24 23:16:35 -04001437 Generics {
1438 lt_token: _i . lt_token,
1439 gt_token: _i . gt_token,
1440 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
1441 ty_params: FoldHelper::lift(_i . ty_params, |it| { _visitor.fold_ty_param(it) }),
1442 where_clause: _visitor.fold_where_clause(_i . where_clause),
1443 }
1444}
1445# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001446pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
Nika Layzell27726662017-10-24 23:16:35 -04001447 ImplItem {
1448 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1449 node: _visitor.fold_impl_item_kind(_i . node),
1450 }
1451}
1452# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001453pub fn fold_impl_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemConst) -> ImplItemConst {
Nika Layzell27726662017-10-24 23:16:35 -04001454 ImplItemConst {
1455 vis: _visitor.fold_visibility(_i . vis),
1456 defaultness: _visitor.fold_defaultness(_i . defaultness),
1457 const_token: _i . const_token,
1458 ident: _i . ident,
1459 colon_token: _i . colon_token,
1460 ty: _visitor.fold_ty(_i . ty),
1461 eq_token: _i . eq_token,
1462 expr: _visitor.fold_expr(_i . expr),
1463 semi_token: _i . semi_token,
1464 }
1465}
1466# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001467pub fn fold_impl_item_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemKind) -> ImplItemKind {
Nika Layzell27726662017-10-24 23:16:35 -04001468 use ::ImplItemKind::*;
1469 match _i {
1470 Const(_binding_0, ) => {
1471 Const (
1472 _visitor.fold_impl_item_const(_binding_0),
1473 )
1474 }
1475 Method(_binding_0, ) => {
1476 Method (
1477 _visitor.fold_impl_item_method(_binding_0),
1478 )
1479 }
1480 Type(_binding_0, ) => {
1481 Type (
1482 _visitor.fold_impl_item_type(_binding_0),
1483 )
1484 }
1485 Macro(_binding_0, ) => {
1486 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08001487 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001488 )
1489 }
1490 }
1491}
1492# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001493pub fn fold_impl_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMethod) -> ImplItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04001494 ImplItemMethod {
1495 vis: _visitor.fold_visibility(_i . vis),
1496 defaultness: _visitor.fold_defaultness(_i . defaultness),
1497 sig: _visitor.fold_method_sig(_i . sig),
1498 block: _visitor.fold_block(_i . block),
1499 }
1500}
1501# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001502pub fn fold_impl_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemType) -> ImplItemType {
Nika Layzell27726662017-10-24 23:16:35 -04001503 ImplItemType {
1504 vis: _visitor.fold_visibility(_i . vis),
1505 defaultness: _visitor.fold_defaultness(_i . defaultness),
1506 type_token: _i . type_token,
1507 ident: _i . ident,
1508 eq_token: _i . eq_token,
1509 ty: _visitor.fold_ty(_i . ty),
1510 semi_token: _i . semi_token,
1511 }
1512}
1513# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001514pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
Nika Layzell27726662017-10-24 23:16:35 -04001515 use ::ImplPolarity::*;
1516 match _i {
1517 Positive => { Positive }
1518 Negative(_binding_0, ) => {
1519 Negative (
1520 _binding_0,
1521 )
1522 }
1523 }
1524}
1525# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001526pub fn fold_in_place_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: InPlaceKind) -> InPlaceKind {
Nika Layzell27726662017-10-24 23:16:35 -04001527 use ::InPlaceKind::*;
1528 match _i {
1529 Arrow(_binding_0, ) => {
1530 Arrow (
1531 _binding_0,
1532 )
1533 }
1534 In(_binding_0, ) => {
1535 In (
1536 _binding_0,
1537 )
1538 }
1539 }
1540}
1541# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001542pub fn fold_item<V: Folder + ?Sized>(_visitor: &mut V, _i: Item) -> Item {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001543 use ::Item::*;
Nika Layzell27726662017-10-24 23:16:35 -04001544 match _i {
1545 ExternCrate(_binding_0, ) => {
1546 ExternCrate (
1547 _visitor.fold_item_extern_crate(_binding_0),
1548 )
1549 }
1550 Use(_binding_0, ) => {
1551 Use (
1552 _visitor.fold_item_use(_binding_0),
1553 )
1554 }
1555 Static(_binding_0, ) => {
1556 Static (
1557 _visitor.fold_item_static(_binding_0),
1558 )
1559 }
1560 Const(_binding_0, ) => {
1561 Const (
1562 _visitor.fold_item_const(_binding_0),
1563 )
1564 }
1565 Fn(_binding_0, ) => {
1566 Fn (
1567 _visitor.fold_item_fn(_binding_0),
1568 )
1569 }
1570 Mod(_binding_0, ) => {
1571 Mod (
1572 _visitor.fold_item_mod(_binding_0),
1573 )
1574 }
1575 ForeignMod(_binding_0, ) => {
1576 ForeignMod (
1577 _visitor.fold_item_foreign_mod(_binding_0),
1578 )
1579 }
1580 Ty(_binding_0, ) => {
1581 Ty (
1582 _visitor.fold_item_ty(_binding_0),
1583 )
1584 }
1585 Enum(_binding_0, ) => {
1586 Enum (
1587 _visitor.fold_item_enum(_binding_0),
1588 )
1589 }
1590 Struct(_binding_0, ) => {
1591 Struct (
1592 _visitor.fold_item_struct(_binding_0),
1593 )
1594 }
1595 Union(_binding_0, ) => {
1596 Union (
1597 _visitor.fold_item_union(_binding_0),
1598 )
1599 }
1600 Trait(_binding_0, ) => {
1601 Trait (
1602 _visitor.fold_item_trait(_binding_0),
1603 )
1604 }
1605 DefaultImpl(_binding_0, ) => {
1606 DefaultImpl (
1607 _visitor.fold_item_default_impl(_binding_0),
1608 )
1609 }
1610 Impl(_binding_0, ) => {
1611 Impl (
1612 _visitor.fold_item_impl(_binding_0),
1613 )
1614 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001615 Macro(_binding_0, ) => {
1616 Macro (
1617 _visitor.fold_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001618 )
1619 }
1620 }
1621}
1622# [ cfg ( feature = "full" ) ]
David Tolnayc6b55bc2017-11-09 22:48:38 -08001623pub fn fold_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemConst) -> ItemConst {
1624 ItemConst {
1625 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1626 vis: _visitor.fold_visibility(_i . vis),
1627 const_token: _i . const_token,
1628 ident: _i . ident,
1629 colon_token: _i . colon_token,
1630 ty: Box::new(_visitor.fold_ty(* _i . ty)),
1631 eq_token: _i . eq_token,
1632 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1633 semi_token: _i . semi_token,
1634 }
1635}
1636# [ cfg ( feature = "full" ) ]
1637pub fn fold_item_default_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemDefaultImpl) -> ItemDefaultImpl {
1638 ItemDefaultImpl {
1639 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1640 unsafety: _visitor.fold_unsafety(_i . unsafety),
1641 impl_token: _i . impl_token,
1642 path: _visitor.fold_path(_i . path),
1643 for_token: _i . for_token,
1644 dot2_token: _i . dot2_token,
1645 brace_token: _i . brace_token,
1646 }
1647}
1648# [ cfg ( feature = "full" ) ]
1649pub fn fold_item_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemEnum) -> ItemEnum {
1650 ItemEnum {
1651 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1652 vis: _visitor.fold_visibility(_i . vis),
1653 enum_token: _i . enum_token,
1654 ident: _i . ident,
1655 generics: _visitor.fold_generics(_i . generics),
1656 brace_token: _i . brace_token,
1657 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
1658 }
1659}
1660# [ cfg ( feature = "full" ) ]
1661pub fn fold_item_extern_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemExternCrate) -> ItemExternCrate {
1662 ItemExternCrate {
1663 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1664 vis: _visitor.fold_visibility(_i . vis),
1665 extern_token: _i . extern_token,
1666 crate_token: _i . crate_token,
1667 ident: _i . ident,
1668 rename: _i . rename,
1669 semi_token: _i . semi_token,
1670 }
1671}
1672# [ cfg ( feature = "full" ) ]
1673pub fn fold_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemFn) -> ItemFn {
1674 ItemFn {
1675 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1676 vis: _visitor.fold_visibility(_i . vis),
1677 constness: _visitor.fold_constness(_i . constness),
1678 unsafety: _visitor.fold_unsafety(_i . unsafety),
1679 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
1680 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1681 ident: _i . ident,
1682 block: Box::new(_visitor.fold_block(* _i . block)),
1683 }
1684}
1685# [ cfg ( feature = "full" ) ]
1686pub fn fold_item_foreign_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemForeignMod) -> ItemForeignMod {
1687 ItemForeignMod {
1688 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1689 abi: _visitor.fold_abi(_i . abi),
1690 brace_token: _i . brace_token,
1691 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_foreign_item(it) }),
1692 }
1693}
1694# [ cfg ( feature = "full" ) ]
1695pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
1696 ItemImpl {
1697 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1698 defaultness: _visitor.fold_defaultness(_i . defaultness),
1699 unsafety: _visitor.fold_unsafety(_i . unsafety),
1700 impl_token: _i . impl_token,
1701 generics: _visitor.fold_generics(_i . generics),
1702 trait_: _i . trait_,
1703 self_ty: Box::new(_visitor.fold_ty(* _i . self_ty)),
1704 brace_token: _i . brace_token,
1705 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_impl_item(it) }),
1706 }
1707}
1708# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08001709pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
1710 ItemMacro {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001711 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08001712 mac: _visitor.fold_macro(_i . mac),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001713 }
1714}
1715# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001716pub fn fold_item_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMod) -> ItemMod {
Nika Layzell27726662017-10-24 23:16:35 -04001717 ItemMod {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001718 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001719 vis: _visitor.fold_visibility(_i . vis),
1720 mod_token: _i . mod_token,
1721 ident: _i . ident,
1722 content: _i . content,
1723 semi: _i . semi,
1724 }
1725}
1726# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001727pub fn fold_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStatic) -> ItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001728 ItemStatic {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001729 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001730 vis: _visitor.fold_visibility(_i . vis),
1731 static_token: _i . static_token,
1732 mutbl: _visitor.fold_mutability(_i . mutbl),
1733 ident: _i . ident,
1734 colon_token: _i . colon_token,
1735 ty: Box::new(_visitor.fold_ty(* _i . ty)),
1736 eq_token: _i . eq_token,
1737 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1738 semi_token: _i . semi_token,
1739 }
1740}
1741# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001742pub fn fold_item_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStruct) -> ItemStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001743 ItemStruct {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001744 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001745 vis: _visitor.fold_visibility(_i . vis),
1746 struct_token: _i . struct_token,
1747 ident: _i . ident,
1748 generics: _visitor.fold_generics(_i . generics),
1749 data: _visitor.fold_variant_data(_i . data),
1750 semi_token: _i . semi_token,
1751 }
1752}
1753# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001754pub fn fold_item_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTrait) -> ItemTrait {
Nika Layzell27726662017-10-24 23:16:35 -04001755 ItemTrait {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001756 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001757 vis: _visitor.fold_visibility(_i . vis),
1758 unsafety: _visitor.fold_unsafety(_i . unsafety),
1759 trait_token: _i . trait_token,
1760 ident: _i . ident,
1761 generics: _visitor.fold_generics(_i . generics),
1762 colon_token: _i . colon_token,
1763 supertraits: FoldHelper::lift(_i . supertraits, |it| { _visitor.fold_ty_param_bound(it) }),
1764 brace_token: _i . brace_token,
1765 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_trait_item(it) }),
1766 }
1767}
1768# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001769pub fn fold_item_ty<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTy) -> ItemTy {
Nika Layzell27726662017-10-24 23:16:35 -04001770 ItemTy {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001771 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001772 vis: _visitor.fold_visibility(_i . vis),
1773 type_token: _i . type_token,
1774 ident: _i . ident,
1775 generics: _visitor.fold_generics(_i . generics),
1776 eq_token: _i . eq_token,
1777 ty: Box::new(_visitor.fold_ty(* _i . ty)),
1778 semi_token: _i . semi_token,
1779 }
1780}
1781# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001782pub fn fold_item_union<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUnion) -> ItemUnion {
Nika Layzell27726662017-10-24 23:16:35 -04001783 ItemUnion {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001784 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001785 vis: _visitor.fold_visibility(_i . vis),
1786 union_token: _i . union_token,
1787 ident: _i . ident,
1788 generics: _visitor.fold_generics(_i . generics),
1789 data: _visitor.fold_variant_data(_i . data),
1790 }
1791}
1792# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001793pub fn fold_item_use<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUse) -> ItemUse {
Nika Layzell27726662017-10-24 23:16:35 -04001794 ItemUse {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001795 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001796 vis: _visitor.fold_visibility(_i . vis),
1797 use_token: _i . use_token,
1798 path: Box::new(_visitor.fold_view_path(* _i . path)),
1799 semi_token: _i . semi_token,
1800 }
1801}
1802
Nika Layzella6f46c42017-10-26 15:26:16 -04001803pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001804 LifetimeDef {
1805 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1806 lifetime: _i . lifetime,
1807 colon_token: _i . colon_token,
1808 bounds: _i . bounds,
1809 }
1810}
1811# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001812pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001813 Local {
1814 let_token: _i . let_token,
1815 colon_token: _i . colon_token,
1816 eq_token: _i . eq_token,
1817 semi_token: _i . semi_token,
1818 pat: Box::new(_visitor.fold_pat(* _i . pat)),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001819 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_ty(* it)) }),
1820 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001821 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1822 }
1823}
Nika Layzell27726662017-10-24 23:16:35 -04001824# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001825pub fn fold_mac_stmt_style<V: Folder + ?Sized>(_visitor: &mut V, _i: MacStmtStyle) -> MacStmtStyle {
Nika Layzell27726662017-10-24 23:16:35 -04001826 use ::MacStmtStyle::*;
1827 match _i {
1828 Semicolon(_binding_0, ) => {
1829 Semicolon (
1830 _binding_0,
1831 )
1832 }
1833 Braces => { Braces }
1834 NoBraces => { NoBraces }
1835 }
1836}
1837
David Tolnaydecf28d2017-11-11 11:56:45 -08001838pub fn fold_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: Macro) -> Macro {
1839 Macro {
1840 path: _visitor.fold_path(_i . path),
1841 bang_token: _i . bang_token,
1842 ident: _i . ident,
1843 tokens: _i . tokens,
1844 }
1845}
1846
Nika Layzella6f46c42017-10-26 15:26:16 -04001847pub fn fold_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001848 use ::MetaItem::*;
1849 match _i {
1850 Term(_binding_0, ) => {
1851 Term (
1852 _binding_0,
1853 )
1854 }
1855 List(_binding_0, ) => {
1856 List (
1857 _visitor.fold_meta_item_list(_binding_0),
1858 )
1859 }
1860 NameValue(_binding_0, ) => {
1861 NameValue (
1862 _visitor.fold_meta_name_value(_binding_0),
1863 )
1864 }
1865 }
1866}
1867
Nika Layzella6f46c42017-10-26 15:26:16 -04001868pub fn fold_meta_item_list<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
Nika Layzell27726662017-10-24 23:16:35 -04001869 MetaItemList {
1870 ident: _i . ident,
1871 paren_token: _i . paren_token,
1872 nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
1873 }
1874}
1875
Nika Layzella6f46c42017-10-26 15:26:16 -04001876pub fn fold_meta_name_value<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaNameValue) -> MetaNameValue {
Nika Layzell27726662017-10-24 23:16:35 -04001877 MetaNameValue {
1878 ident: _i . ident,
1879 eq_token: _i . eq_token,
1880 lit: _i . lit,
1881 }
1882}
1883# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001884pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
Nika Layzell27726662017-10-24 23:16:35 -04001885 MethodSig {
1886 constness: _visitor.fold_constness(_i . constness),
1887 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001888 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001889 ident: _i . ident,
1890 decl: _visitor.fold_fn_decl(_i . decl),
1891 }
1892}
1893
Nika Layzella6f46c42017-10-26 15:26:16 -04001894pub fn fold_mut_ty<V: Folder + ?Sized>(_visitor: &mut V, _i: MutTy) -> MutTy {
Nika Layzell27726662017-10-24 23:16:35 -04001895 MutTy {
1896 ty: _visitor.fold_ty(_i . ty),
1897 mutability: _visitor.fold_mutability(_i . mutability),
1898 }
1899}
1900
Nika Layzella6f46c42017-10-26 15:26:16 -04001901pub fn fold_mutability<V: Folder + ?Sized>(_visitor: &mut V, _i: Mutability) -> Mutability {
Nika Layzell27726662017-10-24 23:16:35 -04001902 use ::Mutability::*;
1903 match _i {
1904 Mutable(_binding_0, ) => {
1905 Mutable (
1906 _binding_0,
1907 )
1908 }
1909 Immutable => { Immutable }
1910 }
1911}
1912
Nika Layzella6f46c42017-10-26 15:26:16 -04001913pub fn fold_nested_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001914 use ::NestedMetaItem::*;
1915 match _i {
1916 MetaItem(_binding_0, ) => {
1917 MetaItem (
1918 _visitor.fold_meta_item(_binding_0),
1919 )
1920 }
1921 Literal(_binding_0, ) => {
1922 Literal (
1923 _binding_0,
1924 )
1925 }
1926 }
1927}
1928
Nika Layzella6f46c42017-10-26 15:26:16 -04001929pub fn fold_parenthesized_parameter_data<V: Folder + ?Sized>(_visitor: &mut V, _i: ParenthesizedParameterData) -> ParenthesizedParameterData {
Nika Layzell27726662017-10-24 23:16:35 -04001930 ParenthesizedParameterData {
1931 paren_token: _i . paren_token,
1932 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_ty(it) }),
1933 output: _visitor.fold_function_ret_ty(_i . output),
1934 }
1935}
1936# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001937pub fn fold_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: Pat) -> Pat {
Nika Layzell27726662017-10-24 23:16:35 -04001938 use ::Pat::*;
1939 match _i {
1940 Wild(_binding_0, ) => {
1941 Wild (
1942 _visitor.fold_pat_wild(_binding_0),
1943 )
1944 }
1945 Ident(_binding_0, ) => {
1946 Ident (
1947 _visitor.fold_pat_ident(_binding_0),
1948 )
1949 }
1950 Struct(_binding_0, ) => {
1951 Struct (
1952 _visitor.fold_pat_struct(_binding_0),
1953 )
1954 }
1955 TupleStruct(_binding_0, ) => {
1956 TupleStruct (
1957 _visitor.fold_pat_tuple_struct(_binding_0),
1958 )
1959 }
1960 Path(_binding_0, ) => {
1961 Path (
1962 _visitor.fold_pat_path(_binding_0),
1963 )
1964 }
1965 Tuple(_binding_0, ) => {
1966 Tuple (
1967 _visitor.fold_pat_tuple(_binding_0),
1968 )
1969 }
1970 Box(_binding_0, ) => {
1971 Box (
1972 _visitor.fold_pat_box(_binding_0),
1973 )
1974 }
1975 Ref(_binding_0, ) => {
1976 Ref (
1977 _visitor.fold_pat_ref(_binding_0),
1978 )
1979 }
1980 Lit(_binding_0, ) => {
1981 Lit (
1982 _visitor.fold_pat_lit(_binding_0),
1983 )
1984 }
1985 Range(_binding_0, ) => {
1986 Range (
1987 _visitor.fold_pat_range(_binding_0),
1988 )
1989 }
1990 Slice(_binding_0, ) => {
1991 Slice (
1992 _visitor.fold_pat_slice(_binding_0),
1993 )
1994 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001995 Macro(_binding_0, ) => {
1996 Macro (
1997 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001998 )
1999 }
2000 }
2001}
2002# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002003pub fn fold_pat_box<V: Folder + ?Sized>(_visitor: &mut V, _i: PatBox) -> PatBox {
Nika Layzell27726662017-10-24 23:16:35 -04002004 PatBox {
2005 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2006 box_token: _i . box_token,
2007 }
2008}
2009# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002010pub fn fold_pat_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: PatIdent) -> PatIdent {
Nika Layzell27726662017-10-24 23:16:35 -04002011 PatIdent {
2012 mode: _visitor.fold_binding_mode(_i . mode),
2013 ident: _i . ident,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002014 subpat: (_i . subpat).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002015 at_token: _i . at_token,
2016 }
2017}
2018# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002019pub fn fold_pat_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: PatLit) -> PatLit {
Nika Layzell27726662017-10-24 23:16:35 -04002020 PatLit {
2021 expr: Box::new(_visitor.fold_expr(* _i . expr)),
2022 }
2023}
2024# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002025pub fn fold_pat_path<V: Folder + ?Sized>(_visitor: &mut V, _i: PatPath) -> PatPath {
Nika Layzell27726662017-10-24 23:16:35 -04002026 PatPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002027 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002028 path: _visitor.fold_path(_i . path),
2029 }
2030}
2031# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002032pub fn fold_pat_range<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRange) -> PatRange {
Nika Layzell27726662017-10-24 23:16:35 -04002033 PatRange {
2034 lo: Box::new(_visitor.fold_expr(* _i . lo)),
2035 hi: Box::new(_visitor.fold_expr(* _i . hi)),
2036 limits: _visitor.fold_range_limits(_i . limits),
2037 }
2038}
2039# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002040pub fn fold_pat_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRef) -> PatRef {
Nika Layzell27726662017-10-24 23:16:35 -04002041 PatRef {
2042 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2043 mutbl: _visitor.fold_mutability(_i . mutbl),
2044 and_token: _i . and_token,
2045 }
2046}
2047# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002048pub fn fold_pat_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: PatSlice) -> PatSlice {
Nika Layzell27726662017-10-24 23:16:35 -04002049 PatSlice {
2050 front: FoldHelper::lift(_i . front, |it| { _visitor.fold_pat(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002051 middle: (_i . middle).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002052 back: FoldHelper::lift(_i . back, |it| { _visitor.fold_pat(it) }),
2053 dot2_token: _i . dot2_token,
2054 comma_token: _i . comma_token,
2055 bracket_token: _i . bracket_token,
2056 }
2057}
2058# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002059pub fn fold_pat_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatStruct) -> PatStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002060 PatStruct {
2061 path: _visitor.fold_path(_i . path),
2062 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_pat(it) }),
2063 brace_token: _i . brace_token,
2064 dot2_token: _i . dot2_token,
2065 }
2066}
2067# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002068pub fn fold_pat_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTuple) -> PatTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002069 PatTuple {
2070 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
2071 dots_pos: _i . dots_pos,
2072 paren_token: _i . paren_token,
2073 dot2_token: _i . dot2_token,
2074 comma_token: _i . comma_token,
2075 }
2076}
2077# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002078pub fn fold_pat_tuple_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTupleStruct) -> PatTupleStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002079 PatTupleStruct {
2080 path: _visitor.fold_path(_i . path),
2081 pat: _visitor.fold_pat_tuple(_i . pat),
2082 }
2083}
2084# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002085pub fn fold_pat_wild<V: Folder + ?Sized>(_visitor: &mut V, _i: PatWild) -> PatWild {
Nika Layzell27726662017-10-24 23:16:35 -04002086 PatWild {
2087 underscore_token: _i . underscore_token,
2088 }
2089}
2090
Nika Layzella6f46c42017-10-26 15:26:16 -04002091pub fn fold_path<V: Folder + ?Sized>(_visitor: &mut V, _i: Path) -> Path {
Nika Layzell27726662017-10-24 23:16:35 -04002092 Path {
2093 leading_colon: _i . leading_colon,
2094 segments: FoldHelper::lift(_i . segments, |it| { _visitor.fold_path_segment(it) }),
2095 }
2096}
2097# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002098pub fn fold_path_glob<V: Folder + ?Sized>(_visitor: &mut V, _i: PathGlob) -> PathGlob {
Nika Layzell27726662017-10-24 23:16:35 -04002099 PathGlob {
2100 path: _visitor.fold_path(_i . path),
2101 colon2_token: _i . colon2_token,
2102 star_token: _i . star_token,
2103 }
2104}
2105# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002106pub fn fold_path_list<V: Folder + ?Sized>(_visitor: &mut V, _i: PathList) -> PathList {
Nika Layzell27726662017-10-24 23:16:35 -04002107 PathList {
2108 path: _visitor.fold_path(_i . path),
2109 colon2_token: _i . colon2_token,
2110 brace_token: _i . brace_token,
2111 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_path_list_item(it) }),
2112 }
2113}
2114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002115pub fn fold_path_list_item<V: Folder + ?Sized>(_visitor: &mut V, _i: PathListItem) -> PathListItem {
Nika Layzell27726662017-10-24 23:16:35 -04002116 PathListItem {
2117 name: _i . name,
2118 rename: _i . rename,
2119 as_token: _i . as_token,
2120 }
2121}
2122
Nika Layzella6f46c42017-10-26 15:26:16 -04002123pub fn fold_path_parameters<V: Folder + ?Sized>(_visitor: &mut V, _i: PathParameters) -> PathParameters {
Nika Layzell27726662017-10-24 23:16:35 -04002124 use ::PathParameters::*;
2125 match _i {
2126 None => { None }
2127 AngleBracketed(_binding_0, ) => {
2128 AngleBracketed (
2129 _visitor.fold_angle_bracketed_parameter_data(_binding_0),
2130 )
2131 }
2132 Parenthesized(_binding_0, ) => {
2133 Parenthesized (
2134 _visitor.fold_parenthesized_parameter_data(_binding_0),
2135 )
2136 }
2137 }
2138}
2139
Nika Layzella6f46c42017-10-26 15:26:16 -04002140pub fn fold_path_segment<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSegment) -> PathSegment {
Nika Layzell27726662017-10-24 23:16:35 -04002141 PathSegment {
2142 ident: _i . ident,
2143 parameters: _visitor.fold_path_parameters(_i . parameters),
2144 }
2145}
2146# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002147pub fn fold_path_simple<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSimple) -> PathSimple {
Nika Layzell27726662017-10-24 23:16:35 -04002148 PathSimple {
2149 path: _visitor.fold_path(_i . path),
2150 as_token: _i . as_token,
2151 rename: _i . rename,
2152 }
2153}
2154
Nika Layzella6f46c42017-10-26 15:26:16 -04002155pub fn fold_poly_trait_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PolyTraitRef) -> PolyTraitRef {
Nika Layzell27726662017-10-24 23:16:35 -04002156 PolyTraitRef {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002157 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002158 trait_ref: _visitor.fold_path(_i . trait_ref),
2159 }
2160}
2161
Nika Layzella6f46c42017-10-26 15:26:16 -04002162pub fn fold_qself<V: Folder + ?Sized>(_visitor: &mut V, _i: QSelf) -> QSelf {
Nika Layzell27726662017-10-24 23:16:35 -04002163 QSelf {
2164 lt_token: _i . lt_token,
2165 ty: Box::new(_visitor.fold_ty(* _i . ty)),
2166 position: _i . position,
2167 as_token: _i . as_token,
2168 gt_token: _i . gt_token,
2169 }
2170}
2171# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002172pub fn fold_range_limits<V: Folder + ?Sized>(_visitor: &mut V, _i: RangeLimits) -> RangeLimits {
Nika Layzell27726662017-10-24 23:16:35 -04002173 use ::RangeLimits::*;
2174 match _i {
2175 HalfOpen(_binding_0, ) => {
2176 HalfOpen (
2177 _binding_0,
2178 )
2179 }
2180 Closed(_binding_0, ) => {
2181 Closed (
2182 _binding_0,
2183 )
2184 }
2185 }
2186}
2187# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002188pub fn fold_stmt<V: Folder + ?Sized>(_visitor: &mut V, _i: Stmt) -> Stmt {
Nika Layzell27726662017-10-24 23:16:35 -04002189 use ::Stmt::*;
2190 match _i {
2191 Local(_binding_0, ) => {
2192 Local (
2193 Box::new(_visitor.fold_local(* _binding_0)),
2194 )
2195 }
2196 Item(_binding_0, ) => {
2197 Item (
2198 Box::new(_visitor.fold_item(* _binding_0)),
2199 )
2200 }
2201 Expr(_binding_0, ) => {
2202 Expr (
2203 Box::new(_visitor.fold_expr(* _binding_0)),
2204 )
2205 }
2206 Semi(_binding_0, _binding_1, ) => {
2207 Semi (
2208 Box::new(_visitor.fold_expr(* _binding_0)),
2209 _binding_1,
2210 )
2211 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002212 Macro(_binding_0, ) => {
2213 Macro (
Nika Layzell27726662017-10-24 23:16:35 -04002214 _binding_0,
2215 )
2216 }
2217 }
2218}
2219
Nika Layzella6f46c42017-10-26 15:26:16 -04002220pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002221 use ::TraitBoundModifier::*;
2222 match _i {
2223 None => { None }
2224 Maybe(_binding_0, ) => {
2225 Maybe (
2226 _binding_0,
2227 )
2228 }
2229 }
2230}
2231# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002232pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002233 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002234 match _i {
2235 Const(_binding_0, ) => {
2236 Const (
2237 _visitor.fold_trait_item_const(_binding_0),
2238 )
2239 }
2240 Method(_binding_0, ) => {
2241 Method (
2242 _visitor.fold_trait_item_method(_binding_0),
2243 )
2244 }
2245 Type(_binding_0, ) => {
2246 Type (
2247 _visitor.fold_trait_item_type(_binding_0),
2248 )
2249 }
2250 Macro(_binding_0, ) => {
2251 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002252 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002253 )
2254 }
2255 }
2256}
2257# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002258pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2259 TraitItemConst {
2260 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2261 const_token: _i . const_token,
2262 ident: _i . ident,
2263 colon_token: _i . colon_token,
2264 ty: _visitor.fold_ty(_i . ty),
2265 default: _i . default,
2266 semi_token: _i . semi_token,
2267 }
2268}
2269# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002270pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2271 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002272 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002273 mac: _visitor.fold_macro(_i . mac),
David Tolnayda705bd2017-11-10 21:58:05 -08002274 }
2275}
2276# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002277pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002278 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002279 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002280 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002281 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002282 semi_token: _i . semi_token,
2283 }
2284}
2285# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002286pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002287 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002288 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002289 type_token: _i . type_token,
2290 ident: _i . ident,
2291 colon_token: _i . colon_token,
2292 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_ty_param_bound(it) }),
2293 default: _i . default,
2294 semi_token: _i . semi_token,
2295 }
2296}
2297
Nika Layzella6f46c42017-10-26 15:26:16 -04002298pub fn fold_ty<V: Folder + ?Sized>(_visitor: &mut V, _i: Ty) -> Ty {
Nika Layzell27726662017-10-24 23:16:35 -04002299 use ::Ty::*;
2300 match _i {
2301 Slice(_binding_0, ) => {
2302 Slice (
2303 _visitor.fold_ty_slice(_binding_0),
2304 )
2305 }
2306 Array(_binding_0, ) => {
2307 Array (
2308 _visitor.fold_ty_array(_binding_0),
2309 )
2310 }
2311 Ptr(_binding_0, ) => {
2312 Ptr (
2313 _visitor.fold_ty_ptr(_binding_0),
2314 )
2315 }
2316 Rptr(_binding_0, ) => {
2317 Rptr (
2318 _visitor.fold_ty_rptr(_binding_0),
2319 )
2320 }
2321 BareFn(_binding_0, ) => {
2322 BareFn (
2323 _visitor.fold_ty_bare_fn(_binding_0),
2324 )
2325 }
2326 Never(_binding_0, ) => {
2327 Never (
2328 _visitor.fold_ty_never(_binding_0),
2329 )
2330 }
2331 Tup(_binding_0, ) => {
2332 Tup (
2333 _visitor.fold_ty_tup(_binding_0),
2334 )
2335 }
2336 Path(_binding_0, ) => {
2337 Path (
2338 _visitor.fold_ty_path(_binding_0),
2339 )
2340 }
2341 TraitObject(_binding_0, ) => {
2342 TraitObject (
2343 _visitor.fold_ty_trait_object(_binding_0),
2344 )
2345 }
2346 ImplTrait(_binding_0, ) => {
2347 ImplTrait (
2348 _visitor.fold_ty_impl_trait(_binding_0),
2349 )
2350 }
2351 Paren(_binding_0, ) => {
2352 Paren (
2353 _visitor.fold_ty_paren(_binding_0),
2354 )
2355 }
2356 Group(_binding_0, ) => {
2357 Group (
2358 _visitor.fold_ty_group(_binding_0),
2359 )
2360 }
2361 Infer(_binding_0, ) => {
2362 Infer (
2363 _visitor.fold_ty_infer(_binding_0),
2364 )
2365 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002366 Macro(_binding_0, ) => {
2367 Macro (
2368 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002369 )
2370 }
2371 }
2372}
2373
Nika Layzella6f46c42017-10-26 15:26:16 -04002374pub fn fold_ty_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TyArray) -> TyArray {
Nika Layzell27726662017-10-24 23:16:35 -04002375 TyArray {
2376 bracket_token: _i . bracket_token,
2377 ty: Box::new(_visitor.fold_ty(* _i . ty)),
2378 semi_token: _i . semi_token,
2379 amt: _visitor.fold_expr(_i . amt),
2380 }
2381}
2382
Nika Layzella6f46c42017-10-26 15:26:16 -04002383pub fn fold_ty_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TyBareFn) -> TyBareFn {
Nika Layzell27726662017-10-24 23:16:35 -04002384 TyBareFn {
2385 ty: Box::new(_visitor.fold_bare_fn_ty(* _i . ty)),
2386 }
2387}
2388
Nika Layzella6f46c42017-10-26 15:26:16 -04002389pub fn fold_ty_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TyGroup) -> TyGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002390 TyGroup {
2391 group_token: _i . group_token,
2392 ty: Box::new(_visitor.fold_ty(* _i . ty)),
2393 }
2394}
2395
Nika Layzella6f46c42017-10-26 15:26:16 -04002396pub fn fold_ty_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TyImplTrait) -> TyImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002397 TyImplTrait {
2398 impl_token: _i . impl_token,
2399 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_ty_param_bound(it) }),
2400 }
2401}
2402
Nika Layzella6f46c42017-10-26 15:26:16 -04002403pub fn fold_ty_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TyInfer) -> TyInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002404 TyInfer {
2405 underscore_token: _i . underscore_token,
2406 }
2407}
2408
Nika Layzella6f46c42017-10-26 15:26:16 -04002409pub fn fold_ty_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TyNever) -> TyNever {
Nika Layzell27726662017-10-24 23:16:35 -04002410 TyNever {
2411 bang_token: _i . bang_token,
2412 }
2413}
2414
Nika Layzella6f46c42017-10-26 15:26:16 -04002415pub fn fold_ty_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TyParam) -> TyParam {
Nika Layzell27726662017-10-24 23:16:35 -04002416 TyParam {
2417 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2418 ident: _i . ident,
2419 colon_token: _i . colon_token,
2420 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_ty_param_bound(it) }),
2421 eq_token: _i . eq_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002422 default: (_i . default).map(|it| { _visitor.fold_ty(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002423 }
2424}
2425
Nika Layzella6f46c42017-10-26 15:26:16 -04002426pub fn fold_ty_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TyParamBound) -> TyParamBound {
Nika Layzell27726662017-10-24 23:16:35 -04002427 use ::TyParamBound::*;
2428 match _i {
2429 Trait(_binding_0, _binding_1, ) => {
2430 Trait (
2431 _visitor.fold_poly_trait_ref(_binding_0),
2432 _visitor.fold_trait_bound_modifier(_binding_1),
2433 )
2434 }
2435 Region(_binding_0, ) => {
2436 Region (
2437 _binding_0,
2438 )
2439 }
2440 }
2441}
2442
Nika Layzella6f46c42017-10-26 15:26:16 -04002443pub fn fold_ty_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TyParen) -> TyParen {
Nika Layzell27726662017-10-24 23:16:35 -04002444 TyParen {
2445 paren_token: _i . paren_token,
2446 ty: Box::new(_visitor.fold_ty(* _i . ty)),
2447 }
2448}
2449
Nika Layzella6f46c42017-10-26 15:26:16 -04002450pub fn fold_ty_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TyPath) -> TyPath {
Nika Layzell27726662017-10-24 23:16:35 -04002451 TyPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002452 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002453 path: _visitor.fold_path(_i . path),
2454 }
2455}
2456
Nika Layzella6f46c42017-10-26 15:26:16 -04002457pub fn fold_ty_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TyPtr) -> TyPtr {
Nika Layzell27726662017-10-24 23:16:35 -04002458 TyPtr {
2459 star_token: _i . star_token,
2460 const_token: _i . const_token,
2461 ty: Box::new(_visitor.fold_mut_ty(* _i . ty)),
2462 }
2463}
2464
Nika Layzella6f46c42017-10-26 15:26:16 -04002465pub fn fold_ty_rptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TyRptr) -> TyRptr {
Nika Layzell27726662017-10-24 23:16:35 -04002466 TyRptr {
2467 and_token: _i . and_token,
2468 lifetime: _i . lifetime,
2469 ty: Box::new(_visitor.fold_mut_ty(* _i . ty)),
2470 }
2471}
2472
Nika Layzella6f46c42017-10-26 15:26:16 -04002473pub fn fold_ty_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TySlice) -> TySlice {
Nika Layzell27726662017-10-24 23:16:35 -04002474 TySlice {
2475 ty: Box::new(_visitor.fold_ty(* _i . ty)),
2476 bracket_token: _i . bracket_token,
2477 }
2478}
2479
Nika Layzella6f46c42017-10-26 15:26:16 -04002480pub fn fold_ty_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TyTraitObject) -> TyTraitObject {
Nika Layzell27726662017-10-24 23:16:35 -04002481 TyTraitObject {
2482 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_ty_param_bound(it) }),
2483 }
2484}
2485
Nika Layzella6f46c42017-10-26 15:26:16 -04002486pub fn fold_ty_tup<V: Folder + ?Sized>(_visitor: &mut V, _i: TyTup) -> TyTup {
Nika Layzell27726662017-10-24 23:16:35 -04002487 TyTup {
2488 paren_token: _i . paren_token,
2489 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_ty(it) }),
2490 lone_comma: _i . lone_comma,
2491 }
2492}
2493
Nika Layzella6f46c42017-10-26 15:26:16 -04002494pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
Nika Layzell27726662017-10-24 23:16:35 -04002495 TypeBinding {
2496 ident: _i . ident,
2497 eq_token: _i . eq_token,
2498 ty: _visitor.fold_ty(_i . ty),
2499 }
2500}
2501
Nika Layzella6f46c42017-10-26 15:26:16 -04002502pub fn fold_un_op<V: Folder + ?Sized>(_visitor: &mut V, _i: UnOp) -> UnOp {
Nika Layzell27726662017-10-24 23:16:35 -04002503 use ::UnOp::*;
2504 match _i {
2505 Deref(_binding_0, ) => {
2506 Deref (
2507 _binding_0,
2508 )
2509 }
2510 Not(_binding_0, ) => {
2511 Not (
2512 _binding_0,
2513 )
2514 }
2515 Neg(_binding_0, ) => {
2516 Neg (
2517 _binding_0,
2518 )
2519 }
2520 }
2521}
2522
Nika Layzella6f46c42017-10-26 15:26:16 -04002523pub fn fold_unsafety<V: Folder + ?Sized>(_visitor: &mut V, _i: Unsafety) -> Unsafety {
Nika Layzell27726662017-10-24 23:16:35 -04002524 use ::Unsafety::*;
2525 match _i {
2526 Unsafe(_binding_0, ) => {
2527 Unsafe (
2528 _binding_0,
2529 )
2530 }
2531 Normal => { Normal }
2532 }
2533}
2534
Nika Layzella6f46c42017-10-26 15:26:16 -04002535pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002536 Variant {
2537 ident: _i . ident,
2538 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2539 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002540 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002541 eq_token: _i . eq_token,
2542 }
2543}
2544
Nika Layzella6f46c42017-10-26 15:26:16 -04002545pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002546 use ::VariantData::*;
2547 match _i {
2548 Struct(_binding_0, _binding_1, ) => {
2549 Struct (
2550 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2551 _binding_1,
2552 )
2553 }
2554 Tuple(_binding_0, _binding_1, ) => {
2555 Tuple (
2556 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2557 _binding_1,
2558 )
2559 }
2560 Unit => { Unit }
2561 }
2562}
2563# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002564pub fn fold_view_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ViewPath) -> ViewPath {
Nika Layzell27726662017-10-24 23:16:35 -04002565 use ::ViewPath::*;
2566 match _i {
2567 Simple(_binding_0, ) => {
2568 Simple (
2569 _visitor.fold_path_simple(_binding_0),
2570 )
2571 }
2572 Glob(_binding_0, ) => {
2573 Glob (
2574 _visitor.fold_path_glob(_binding_0),
2575 )
2576 }
2577 List(_binding_0, ) => {
2578 List (
2579 _visitor.fold_path_list(_binding_0),
2580 )
2581 }
2582 }
2583}
2584
Nika Layzella6f46c42017-10-26 15:26:16 -04002585pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002586 VisCrate {
2587 pub_token: _i . pub_token,
2588 paren_token: _i . paren_token,
2589 crate_token: _i . crate_token,
2590 }
2591}
2592
Nika Layzella6f46c42017-10-26 15:26:16 -04002593pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002594 VisInherited {
2595 }
2596}
2597
Nika Layzella6f46c42017-10-26 15:26:16 -04002598pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002599 VisPublic {
2600 pub_token: _i . pub_token,
2601 }
2602}
2603
Nika Layzella6f46c42017-10-26 15:26:16 -04002604pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002605 VisRestricted {
2606 pub_token: _i . pub_token,
2607 paren_token: _i . paren_token,
2608 in_token: _i . in_token,
2609 path: Box::new(_visitor.fold_path(* _i . path)),
2610 }
2611}
2612
Nika Layzella6f46c42017-10-26 15:26:16 -04002613pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002614 use ::Visibility::*;
2615 match _i {
2616 Public(_binding_0, ) => {
2617 Public (
2618 _visitor.fold_vis_public(_binding_0),
2619 )
2620 }
2621 Crate(_binding_0, ) => {
2622 Crate (
2623 _visitor.fold_vis_crate(_binding_0),
2624 )
2625 }
2626 Restricted(_binding_0, ) => {
2627 Restricted (
2628 _visitor.fold_vis_restricted(_binding_0),
2629 )
2630 }
2631 Inherited(_binding_0, ) => {
2632 Inherited (
2633 _visitor.fold_vis_inherited(_binding_0),
2634 )
2635 }
2636 }
2637}
2638
Nika Layzella6f46c42017-10-26 15:26:16 -04002639pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002640 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002641 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002642 bounded_ty: _visitor.fold_ty(_i . bounded_ty),
2643 colon_token: _i . colon_token,
2644 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_ty_param_bound(it) }),
2645 }
2646}
2647
Nika Layzella6f46c42017-10-26 15:26:16 -04002648pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002649 WhereClause {
2650 where_token: _i . where_token,
2651 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2652 }
2653}
2654
Nika Layzella6f46c42017-10-26 15:26:16 -04002655pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002656 WhereEqPredicate {
2657 lhs_ty: _visitor.fold_ty(_i . lhs_ty),
2658 eq_token: _i . eq_token,
2659 rhs_ty: _visitor.fold_ty(_i . rhs_ty),
2660 }
2661}
2662
Nika Layzella6f46c42017-10-26 15:26:16 -04002663pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002664 use ::WherePredicate::*;
2665 match _i {
2666 BoundPredicate(_binding_0, ) => {
2667 BoundPredicate (
2668 _visitor.fold_where_bound_predicate(_binding_0),
2669 )
2670 }
2671 RegionPredicate(_binding_0, ) => {
2672 RegionPredicate (
2673 _visitor.fold_where_region_predicate(_binding_0),
2674 )
2675 }
2676 EqPredicate(_binding_0, ) => {
2677 EqPredicate (
2678 _visitor.fold_where_eq_predicate(_binding_0),
2679 )
2680 }
2681 }
2682}
2683
Nika Layzella6f46c42017-10-26 15:26:16 -04002684pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002685 WhereRegionPredicate {
2686 lifetime: _i . lifetime,
2687 colon_token: _i . colon_token,
2688 bounds: _i . bounds,
2689 }
2690}
2691