blob: adc3c653994feb28fd16f9666c2c0058d9e03544 [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 Layzellc08227a2017-12-04 16:30:17 -050065fn fold_angle_bracketed_generic_arguments(&mut self, i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments { fold_angle_bracketed_generic_arguments(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
David Tolnayfd6bf5c2017-11-12 09:41:14 -080083fn fold_bare_fn_type(&mut self, i: BareFnType) -> BareFnType { fold_bare_fn_type(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 Layzellf1fdc0b2017-12-04 19:58:32 -0500100
101fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400102# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400103fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400104# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400105fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400106
Nika Layzella6f46c42017-10-26 15:26:16 -0400107fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400108
Nika Layzella6f46c42017-10-26 15:26:16 -0400109fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400110# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400111fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400112# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400113fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400115fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400116# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400117fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400118
Nika Layzella6f46c42017-10-26 15:26:16 -0400119fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400120# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400121fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400122# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400123fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400124# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400125fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400126
Nika Layzella6f46c42017-10-26 15:26:16 -0400127fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400128
Nika Layzella6f46c42017-10-26 15:26:16 -0400129fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400130# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400131fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400132# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400133fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400135fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400136# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400137fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400138# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400139fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400140
Nika Layzella6f46c42017-10-26 15:26:16 -0400141fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400142# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400143fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400144# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400145fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400146# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400147fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400148
Nika Layzella6f46c42017-10-26 15:26:16 -0400149fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400150
Nika Layzella6f46c42017-10-26 15:26:16 -0400151fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400152# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400153fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400154# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400155fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400156# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400157fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400158
Nika Layzella6f46c42017-10-26 15:26:16 -0400159fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400160
Nika Layzella6f46c42017-10-26 15:26:16 -0400161fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400162# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400163fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400164# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400165fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400166# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400167fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400169fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400170# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400171fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(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) }
David Tolnay05362582017-12-26 01:33:57 -0500174# [ cfg ( feature = "full" ) ]
175fn fold_expr_tuple(&mut self, i: ExprTuple) -> ExprTuple { fold_expr_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400176
Nika Layzella6f46c42017-10-26 15:26:16 -0400177fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400178
Nika Layzella6f46c42017-10-26 15:26:16 -0400179fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400180# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -0500181fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe { fold_expr_unsafe(self, i) }
182# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400183fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400184# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400185fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400186# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400187fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400188
Nika Layzella6f46c42017-10-26 15:26:16 -0400189fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400190# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400191fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400192# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400193fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400195fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400197fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400199fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400200# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400201fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400202# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400203fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400204# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400205fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
David Tolnay199bcbb2017-11-12 10:33:52 -0800206# [ cfg ( feature = "full" ) ]
207fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType { fold_foreign_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400208
Nika Layzellc08227a2017-12-04 16:30:17 -0500209fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument { fold_generic_argument(self, i) }
Nika Layzell357885a2017-12-04 15:47:07 -0500210
David Tolnayc2f1aba2017-11-12 20:29:22 -0800211fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam { fold_generic_param(self, i) }
212
Nika Layzella6f46c42017-10-26 15:26:16 -0400213fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500214
215fn fold_ident(&mut self, i: Ident) -> Ident { fold_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400216# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400217fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400218# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400219fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400220# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -0800221fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro { fold_impl_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400222# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400223fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400224# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400225fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400226# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400227fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400228# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400229fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400230# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400231fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400232# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400233fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400235fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400236# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400237fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400238# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400239fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400240# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400241fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400242# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400243fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400244# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400245fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400246# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800247fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400248# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -0800249fn fold_item_macro2(&mut self, i: ItemMacro2) -> ItemMacro2 { fold_item_macro2(self, i) }
250# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400251fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400252# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400253fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400255fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400256# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400257fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400258# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800259fn fold_item_type(&mut self, i: ItemType) -> ItemType { fold_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400260# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400261fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400262# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400263fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400264
Nika Layzella6f46c42017-10-26 15:26:16 -0400265fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400266# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400267fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400268# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400269fn fold_mac_stmt_style(&mut self, i: MacStmtStyle) -> MacStmtStyle { fold_mac_stmt_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400270
David Tolnaydecf28d2017-11-11 11:56:45 -0800271fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
272
Nika Layzella6f46c42017-10-26 15:26:16 -0400273fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400274
Nika Layzella6f46c42017-10-26 15:26:16 -0400275fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400276
Nika Layzella6f46c42017-10-26 15:26:16 -0400277fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400278# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400279fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400280
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800281fn fold_mut_type(&mut self, i: MutType) -> MutType { fold_mut_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400282
Nika Layzella6f46c42017-10-26 15:26:16 -0400283fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400284
Nika Layzella6f46c42017-10-26 15:26:16 -0400285fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400286
Nika Layzellc08227a2017-12-04 16:30:17 -0500287fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400288# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400289fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400290# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400291fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400292# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400293fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400294# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400295fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400296# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400297fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400298# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400299fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400300# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400301fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400302# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400303fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400304# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400305fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400306# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400307fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400308# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400309fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400310# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400311fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400312
Nika Layzella6f46c42017-10-26 15:26:16 -0400313fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzellc08227a2017-12-04 16:30:17 -0500314
315fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments { fold_path_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400316
Nika Layzella6f46c42017-10-26 15:26:16 -0400317fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400318
Nika Layzella6f46c42017-10-26 15:26:16 -0400319fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400320
Nika Layzella6f46c42017-10-26 15:26:16 -0400321fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400322# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400323fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
David Tolnayf93b90d2017-11-11 19:21:26 -0800324
325fn fold_return_type(&mut self, i: ReturnType) -> ReturnType { fold_return_type(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500326
327fn fold_span(&mut self, i: Span) -> Span { fold_span(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400328# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400329fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400330
Nika Layzella6f46c42017-10-26 15:26:16 -0400331fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400332# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400333fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400334# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400335fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400336# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800337fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400338# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400339fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400340# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400341fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400342
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800343fn fold_type(&mut self, i: Type) -> Type { fold_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400344
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800345fn fold_type_array(&mut self, i: TypeArray) -> TypeArray { fold_type_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400346
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800347fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn { fold_type_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400348
Nika Layzella6f46c42017-10-26 15:26:16 -0400349fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400350
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800351fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup { fold_type_group(self, i) }
352
353fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait { fold_type_impl_trait(self, i) }
354
355fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer { fold_type_infer(self, i) }
356
357fn fold_type_never(&mut self, i: TypeNever) -> TypeNever { fold_type_never(self, i) }
358
359fn fold_type_param(&mut self, i: TypeParam) -> TypeParam { fold_type_param(self, i) }
360
361fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound { fold_type_param_bound(self, i) }
362
363fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen { fold_type_paren(self, i) }
364
365fn fold_type_path(&mut self, i: TypePath) -> TypePath { fold_type_path(self, i) }
366
367fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr { fold_type_ptr(self, i) }
368
David Tolnay0a89b4d2017-11-13 00:55:45 -0800369fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference { fold_type_reference(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800370
371fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice { fold_type_slice(self, i) }
372
373fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject { fold_type_trait_object(self, i) }
374
David Tolnay05362582017-12-26 01:33:57 -0500375fn fold_type_tuple(&mut self, i: TypeTuple) -> TypeTuple { fold_type_tuple(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800376
Nika Layzella6f46c42017-10-26 15:26:16 -0400377fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400378
Nika Layzella6f46c42017-10-26 15:26:16 -0400379fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
David Tolnay5f332a92017-12-26 00:42:45 -0500380# [ cfg ( feature = "full" ) ]
381fn fold_use_glob(&mut self, i: UseGlob) -> UseGlob { fold_use_glob(self, i) }
382# [ cfg ( feature = "full" ) ]
383fn fold_use_list(&mut self, i: UseList) -> UseList { fold_use_list(self, i) }
384# [ cfg ( feature = "full" ) ]
385fn fold_use_path(&mut self, i: UsePath) -> UsePath { fold_use_path(self, i) }
386# [ cfg ( feature = "full" ) ]
387fn fold_use_tree(&mut self, i: UseTree) -> UseTree { fold_use_tree(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400388
Nika Layzella6f46c42017-10-26 15:26:16 -0400389fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400390
Nika Layzella6f46c42017-10-26 15:26:16 -0400391fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400392
Nika Layzella6f46c42017-10-26 15:26:16 -0400393fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400394
Nika Layzella6f46c42017-10-26 15:26:16 -0400395fn fold_vis_inherited(&mut self, i: VisInherited) -> VisInherited { fold_vis_inherited(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400396
Nika Layzella6f46c42017-10-26 15:26:16 -0400397fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400398
Nika Layzella6f46c42017-10-26 15:26:16 -0400399fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted { fold_vis_restricted(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400400
Nika Layzella6f46c42017-10-26 15:26:16 -0400401fn fold_visibility(&mut self, i: Visibility) -> Visibility { fold_visibility(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400402
Nika Layzella6f46c42017-10-26 15:26:16 -0400403fn fold_where_bound_predicate(&mut self, i: WhereBoundPredicate) -> WhereBoundPredicate { fold_where_bound_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400404
Nika Layzella6f46c42017-10-26 15:26:16 -0400405fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause { fold_where_clause(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400406
Nika Layzella6f46c42017-10-26 15:26:16 -0400407fn fold_where_eq_predicate(&mut self, i: WhereEqPredicate) -> WhereEqPredicate { fold_where_eq_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400408
Nika Layzella6f46c42017-10-26 15:26:16 -0400409fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate { fold_where_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400410
Nika Layzella6f46c42017-10-26 15:26:16 -0400411fn fold_where_region_predicate(&mut self, i: WhereRegionPredicate) -> WhereRegionPredicate { fold_where_region_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400412
413}
414
415
Nika Layzella6f46c42017-10-26 15:26:16 -0400416pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
Nika Layzell27726662017-10-24 23:16:35 -0400417 Abi {
418 extern_token: _i . extern_token,
419 kind: _visitor.fold_abi_kind(_i . kind),
420 }
421}
422
Nika Layzella6f46c42017-10-26 15:26:16 -0400423pub fn fold_abi_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: AbiKind) -> AbiKind {
Nika Layzell27726662017-10-24 23:16:35 -0400424 use ::AbiKind::*;
425 match _i {
426 Named(_binding_0, ) => {
427 Named (
428 _binding_0,
429 )
430 }
431 Default => { Default }
432 }
433}
434
Nika Layzellc08227a2017-12-04 16:30:17 -0500435pub fn fold_angle_bracketed_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments {
436 AngleBracketedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -0400437 turbofish: _i . turbofish,
438 lt_token: _i . lt_token,
Nika Layzellc08227a2017-12-04 16:30:17 -0500439 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_generic_argument(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400440 gt_token: _i . gt_token,
441 }
442}
443# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400444pub fn fold_arg_captured<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgCaptured) -> ArgCaptured {
Nika Layzell27726662017-10-24 23:16:35 -0400445 ArgCaptured {
446 pat: _visitor.fold_pat(_i . pat),
447 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800448 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400449 }
450}
451# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400452pub fn fold_arg_self<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelf) -> ArgSelf {
Nika Layzell27726662017-10-24 23:16:35 -0400453 ArgSelf {
454 mutbl: _visitor.fold_mutability(_i . mutbl),
455 self_token: _i . self_token,
456 }
457}
458# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400459pub fn fold_arg_self_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelfRef) -> ArgSelfRef {
Nika Layzell27726662017-10-24 23:16:35 -0400460 ArgSelfRef {
461 and_token: _i . and_token,
462 self_token: _i . self_token,
463 lifetime: _i . lifetime,
464 mutbl: _visitor.fold_mutability(_i . mutbl),
465 }
466}
467# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400468pub fn fold_arm<V: Folder + ?Sized>(_visitor: &mut V, _i: Arm) -> Arm {
Nika Layzell27726662017-10-24 23:16:35 -0400469 Arm {
470 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
471 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
472 if_token: _i . if_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400473 guard: (_i . guard).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400474 rocket_token: _i . rocket_token,
475 body: Box::new(_visitor.fold_expr(* _i . body)),
476 comma: _i . comma,
477 }
478}
479
Nika Layzella6f46c42017-10-26 15:26:16 -0400480pub fn fold_attr_style<V: Folder + ?Sized>(_visitor: &mut V, _i: AttrStyle) -> AttrStyle {
Nika Layzell27726662017-10-24 23:16:35 -0400481 use ::AttrStyle::*;
482 match _i {
483 Outer => { Outer }
484 Inner(_binding_0, ) => {
485 Inner (
486 _binding_0,
487 )
488 }
489 }
490}
491
Nika Layzella6f46c42017-10-26 15:26:16 -0400492pub fn fold_attribute<V: Folder + ?Sized>(_visitor: &mut V, _i: Attribute) -> Attribute {
Nika Layzell27726662017-10-24 23:16:35 -0400493 Attribute {
494 style: _visitor.fold_attr_style(_i . style),
495 pound_token: _i . pound_token,
496 bracket_token: _i . bracket_token,
497 path: _visitor.fold_path(_i . path),
498 tts: _i . tts,
499 is_sugared_doc: _i . is_sugared_doc,
500 }
501}
502
Nika Layzella6f46c42017-10-26 15:26:16 -0400503pub fn fold_bare_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArg) -> BareFnArg {
Nika Layzell27726662017-10-24 23:16:35 -0400504 BareFnArg {
505 name: _i . name,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800506 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400507 }
508}
509
Nika Layzella6f46c42017-10-26 15:26:16 -0400510pub fn fold_bare_fn_arg_name<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArgName) -> BareFnArgName {
Nika Layzell27726662017-10-24 23:16:35 -0400511 use ::BareFnArgName::*;
512 match _i {
513 Named(_binding_0, ) => {
514 Named (
Nika Layzellefb83ba2017-12-19 18:23:55 -0500515 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -0400516 )
517 }
518 Wild(_binding_0, ) => {
519 Wild (
520 _binding_0,
521 )
522 }
523 }
524}
525
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800526pub fn fold_bare_fn_type<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnType) -> BareFnType {
527 BareFnType {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400528 lifetimes: (_i . lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400529 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400530 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400531 fn_token: _i . fn_token,
532 paren_token: _i . paren_token,
533 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_bare_fn_arg(it) }),
534 variadic: _i . variadic,
David Tolnayf93b90d2017-11-11 19:21:26 -0800535 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -0400536 }
537}
538
Nika Layzella6f46c42017-10-26 15:26:16 -0400539pub fn fold_bin_op<V: Folder + ?Sized>(_visitor: &mut V, _i: BinOp) -> BinOp {
Nika Layzell27726662017-10-24 23:16:35 -0400540 use ::BinOp::*;
541 match _i {
542 Add(_binding_0, ) => {
543 Add (
544 _binding_0,
545 )
546 }
547 Sub(_binding_0, ) => {
548 Sub (
549 _binding_0,
550 )
551 }
552 Mul(_binding_0, ) => {
553 Mul (
554 _binding_0,
555 )
556 }
557 Div(_binding_0, ) => {
558 Div (
559 _binding_0,
560 )
561 }
562 Rem(_binding_0, ) => {
563 Rem (
564 _binding_0,
565 )
566 }
567 And(_binding_0, ) => {
568 And (
569 _binding_0,
570 )
571 }
572 Or(_binding_0, ) => {
573 Or (
574 _binding_0,
575 )
576 }
577 BitXor(_binding_0, ) => {
578 BitXor (
579 _binding_0,
580 )
581 }
582 BitAnd(_binding_0, ) => {
583 BitAnd (
584 _binding_0,
585 )
586 }
587 BitOr(_binding_0, ) => {
588 BitOr (
589 _binding_0,
590 )
591 }
592 Shl(_binding_0, ) => {
593 Shl (
594 _binding_0,
595 )
596 }
597 Shr(_binding_0, ) => {
598 Shr (
599 _binding_0,
600 )
601 }
602 Eq(_binding_0, ) => {
603 Eq (
604 _binding_0,
605 )
606 }
607 Lt(_binding_0, ) => {
608 Lt (
609 _binding_0,
610 )
611 }
612 Le(_binding_0, ) => {
613 Le (
614 _binding_0,
615 )
616 }
617 Ne(_binding_0, ) => {
618 Ne (
619 _binding_0,
620 )
621 }
622 Ge(_binding_0, ) => {
623 Ge (
624 _binding_0,
625 )
626 }
627 Gt(_binding_0, ) => {
628 Gt (
629 _binding_0,
630 )
631 }
632 AddEq(_binding_0, ) => {
633 AddEq (
634 _binding_0,
635 )
636 }
637 SubEq(_binding_0, ) => {
638 SubEq (
639 _binding_0,
640 )
641 }
642 MulEq(_binding_0, ) => {
643 MulEq (
644 _binding_0,
645 )
646 }
647 DivEq(_binding_0, ) => {
648 DivEq (
649 _binding_0,
650 )
651 }
652 RemEq(_binding_0, ) => {
653 RemEq (
654 _binding_0,
655 )
656 }
657 BitXorEq(_binding_0, ) => {
658 BitXorEq (
659 _binding_0,
660 )
661 }
662 BitAndEq(_binding_0, ) => {
663 BitAndEq (
664 _binding_0,
665 )
666 }
667 BitOrEq(_binding_0, ) => {
668 BitOrEq (
669 _binding_0,
670 )
671 }
672 ShlEq(_binding_0, ) => {
673 ShlEq (
674 _binding_0,
675 )
676 }
677 ShrEq(_binding_0, ) => {
678 ShrEq (
679 _binding_0,
680 )
681 }
682 }
683}
684# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400685pub fn fold_binding_mode<V: Folder + ?Sized>(_visitor: &mut V, _i: BindingMode) -> BindingMode {
Nika Layzell27726662017-10-24 23:16:35 -0400686 use ::BindingMode::*;
687 match _i {
688 ByRef(_binding_0, _binding_1, ) => {
689 ByRef (
690 _binding_0,
691 _visitor.fold_mutability(_binding_1),
692 )
693 }
694 ByValue(_binding_0, ) => {
695 ByValue (
696 _visitor.fold_mutability(_binding_0),
697 )
698 }
699 }
700}
701# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400702pub fn fold_block<V: Folder + ?Sized>(_visitor: &mut V, _i: Block) -> Block {
Nika Layzell27726662017-10-24 23:16:35 -0400703 Block {
704 brace_token: _i . brace_token,
705 stmts: FoldHelper::lift(_i . stmts, |it| { _visitor.fold_stmt(it) }),
706 }
707}
708
Nika Layzella6f46c42017-10-26 15:26:16 -0400709pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
Nika Layzell27726662017-10-24 23:16:35 -0400710 use ::Body::*;
711 match _i {
712 Enum(_binding_0, ) => {
713 Enum (
714 _visitor.fold_body_enum(_binding_0),
715 )
716 }
717 Struct(_binding_0, ) => {
718 Struct (
719 _visitor.fold_body_struct(_binding_0),
720 )
721 }
722 }
723}
724
Nika Layzella6f46c42017-10-26 15:26:16 -0400725pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
Nika Layzell27726662017-10-24 23:16:35 -0400726 BodyEnum {
727 enum_token: _i . enum_token,
728 brace_token: _i . brace_token,
729 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
730 }
731}
732
Nika Layzella6f46c42017-10-26 15:26:16 -0400733pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
Nika Layzell27726662017-10-24 23:16:35 -0400734 BodyStruct {
735 data: _visitor.fold_variant_data(_i . data),
736 struct_token: _i . struct_token,
737 semi_token: _i . semi_token,
738 }
739}
740
Nika Layzella6f46c42017-10-26 15:26:16 -0400741pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
Nika Layzell27726662017-10-24 23:16:35 -0400742 BoundLifetimes {
743 for_token: _i . for_token,
744 lt_token: _i . lt_token,
745 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
746 gt_token: _i . gt_token,
747 }
748}
749# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400750pub fn fold_capture_by<V: Folder + ?Sized>(_visitor: &mut V, _i: CaptureBy) -> CaptureBy {
Nika Layzell27726662017-10-24 23:16:35 -0400751 use ::CaptureBy::*;
752 match _i {
753 Value(_binding_0, ) => {
754 Value (
755 _binding_0,
756 )
757 }
758 Ref => { Ref }
759 }
760}
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500761
762pub fn fold_const_param<V: Folder + ?Sized>(_visitor: &mut V, _i: ConstParam) -> ConstParam {
763 ConstParam {
764 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
765 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -0500766 ident: _visitor.fold_ident(_i . ident),
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500767 colon_token: _i . colon_token,
768 ty: _visitor.fold_type(_i . ty),
769 eq_token: _i . eq_token,
770 default: (_i . default).map(|it| { _visitor.fold_expr(it) }),
771 }
772}
Nika Layzell27726662017-10-24 23:16:35 -0400773# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400774pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
Nika Layzell27726662017-10-24 23:16:35 -0400775 use ::Constness::*;
776 match _i {
777 Const(_binding_0, ) => {
778 Const (
779 _binding_0,
780 )
781 }
782 NotConst => { NotConst }
783 }
784}
785# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400786pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
Nika Layzell27726662017-10-24 23:16:35 -0400787 use ::Defaultness::*;
788 match _i {
789 Default(_binding_0, ) => {
790 Default (
791 _binding_0,
792 )
793 }
794 Final => { Final }
795 }
796}
797
Nika Layzella6f46c42017-10-26 15:26:16 -0400798pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
Nika Layzell27726662017-10-24 23:16:35 -0400799 DeriveInput {
Nika Layzellefb83ba2017-12-19 18:23:55 -0500800 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -0400801 vis: _visitor.fold_visibility(_i . vis),
802 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
803 generics: _visitor.fold_generics(_i . generics),
804 body: _visitor.fold_body(_i . body),
805 }
806}
807
Nika Layzella6f46c42017-10-26 15:26:16 -0400808pub fn fold_expr<V: Folder + ?Sized>(_visitor: &mut V, _i: Expr) -> Expr {
Nika Layzell27726662017-10-24 23:16:35 -0400809 Expr {
810 node: _visitor.fold_expr_kind(_i . node),
811 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
812 }
813}
814# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400815pub fn fold_expr_addr_of<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAddrOf) -> ExprAddrOf {
Nika Layzell27726662017-10-24 23:16:35 -0400816 ExprAddrOf {
817 and_token: _i . and_token,
818 mutbl: _visitor.fold_mutability(_i . mutbl),
819 expr: Box::new(_visitor.fold_expr(* _i . expr)),
820 }
821}
822# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400823pub fn fold_expr_array<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprArray) -> ExprArray {
Nika Layzell27726662017-10-24 23:16:35 -0400824 ExprArray {
825 exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
826 bracket_token: _i . bracket_token,
827 }
828}
829# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400830pub fn fold_expr_assign<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssign) -> ExprAssign {
Nika Layzell27726662017-10-24 23:16:35 -0400831 ExprAssign {
832 left: Box::new(_visitor.fold_expr(* _i . left)),
833 right: Box::new(_visitor.fold_expr(* _i . right)),
834 eq_token: _i . eq_token,
835 }
836}
837# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400838pub fn fold_expr_assign_op<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssignOp) -> ExprAssignOp {
Nika Layzell27726662017-10-24 23:16:35 -0400839 ExprAssignOp {
840 op: _visitor.fold_bin_op(_i . op),
841 left: Box::new(_visitor.fold_expr(* _i . left)),
842 right: Box::new(_visitor.fold_expr(* _i . right)),
843 }
844}
845
Nika Layzella6f46c42017-10-26 15:26:16 -0400846pub fn fold_expr_binary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBinary) -> ExprBinary {
Nika Layzell27726662017-10-24 23:16:35 -0400847 ExprBinary {
848 op: _visitor.fold_bin_op(_i . op),
849 left: Box::new(_visitor.fold_expr(* _i . left)),
850 right: Box::new(_visitor.fold_expr(* _i . right)),
851 }
852}
853# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400854pub fn fold_expr_block<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBlock) -> ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400855 ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400856 block: _visitor.fold_block(_i . block),
857 }
858}
859# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400860pub fn fold_expr_box<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBox) -> ExprBox {
Nika Layzell27726662017-10-24 23:16:35 -0400861 ExprBox {
862 expr: Box::new(_visitor.fold_expr(* _i . expr)),
863 box_token: _i . box_token,
864 }
865}
866# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400867pub fn fold_expr_break<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBreak) -> ExprBreak {
Nika Layzell27726662017-10-24 23:16:35 -0400868 ExprBreak {
869 label: _i . label,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400870 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400871 break_token: _i . break_token,
872 }
873}
874
Nika Layzella6f46c42017-10-26 15:26:16 -0400875pub fn fold_expr_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCall) -> ExprCall {
Nika Layzell27726662017-10-24 23:16:35 -0400876 ExprCall {
877 func: Box::new(_visitor.fold_expr(* _i . func)),
878 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
879 paren_token: _i . paren_token,
880 }
881}
882
Nika Layzella6f46c42017-10-26 15:26:16 -0400883pub fn fold_expr_cast<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCast) -> ExprCast {
Nika Layzell27726662017-10-24 23:16:35 -0400884 ExprCast {
885 expr: Box::new(_visitor.fold_expr(* _i . expr)),
886 as_token: _i . as_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800887 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -0400888 }
889}
890# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400891pub fn fold_expr_catch<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCatch) -> ExprCatch {
Nika Layzell27726662017-10-24 23:16:35 -0400892 ExprCatch {
893 do_token: _i . do_token,
894 catch_token: _i . catch_token,
895 block: _visitor.fold_block(_i . block),
896 }
897}
898# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400899pub fn fold_expr_closure<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprClosure) -> ExprClosure {
Nika Layzell27726662017-10-24 23:16:35 -0400900 ExprClosure {
901 capture: _visitor.fold_capture_by(_i . capture),
902 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
903 body: Box::new(_visitor.fold_expr(* _i . body)),
904 or1_token: _i . or1_token,
905 or2_token: _i . or2_token,
906 }
907}
908# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400909pub fn fold_expr_continue<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprContinue) -> ExprContinue {
Nika Layzell27726662017-10-24 23:16:35 -0400910 ExprContinue {
911 label: _i . label,
912 continue_token: _i . continue_token,
913 }
914}
915# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400916pub fn fold_expr_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprField) -> ExprField {
Nika Layzell27726662017-10-24 23:16:35 -0400917 ExprField {
918 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -0500919 field: _visitor.fold_ident(_i . field),
Nika Layzell27726662017-10-24 23:16:35 -0400920 dot_token: _i . dot_token,
921 }
922}
923# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400924pub fn fold_expr_for_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprForLoop) -> ExprForLoop {
Nika Layzell27726662017-10-24 23:16:35 -0400925 ExprForLoop {
926 pat: Box::new(_visitor.fold_pat(* _i . pat)),
927 expr: Box::new(_visitor.fold_expr(* _i . expr)),
928 body: _visitor.fold_block(_i . body),
929 label: _i . label,
930 for_token: _i . for_token,
931 colon_token: _i . colon_token,
932 in_token: _i . in_token,
933 }
934}
935
Nika Layzella6f46c42017-10-26 15:26:16 -0400936pub fn fold_expr_group<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprGroup) -> ExprGroup {
Nika Layzell27726662017-10-24 23:16:35 -0400937 ExprGroup {
938 expr: Box::new(_visitor.fold_expr(* _i . expr)),
939 group_token: _i . group_token,
940 }
941}
942# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400943pub fn fold_expr_if<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIf) -> ExprIf {
Nika Layzell27726662017-10-24 23:16:35 -0400944 ExprIf {
945 cond: Box::new(_visitor.fold_expr(* _i . cond)),
946 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400947 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400948 if_token: _i . if_token,
949 else_token: _i . else_token,
950 }
951}
952# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400953pub fn fold_expr_if_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIfLet) -> ExprIfLet {
Nika Layzell27726662017-10-24 23:16:35 -0400954 ExprIfLet {
955 pat: Box::new(_visitor.fold_pat(* _i . pat)),
956 expr: Box::new(_visitor.fold_expr(* _i . expr)),
957 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400958 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400959 if_token: _i . if_token,
960 let_token: _i . let_token,
961 eq_token: _i . eq_token,
962 else_token: _i . else_token,
963 }
964}
965# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400966pub fn fold_expr_in_place<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprInPlace) -> ExprInPlace {
Nika Layzell27726662017-10-24 23:16:35 -0400967 ExprInPlace {
968 place: Box::new(_visitor.fold_expr(* _i . place)),
969 kind: _visitor.fold_in_place_kind(_i . kind),
970 value: Box::new(_visitor.fold_expr(* _i . value)),
971 }
972}
973
Nika Layzella6f46c42017-10-26 15:26:16 -0400974pub fn fold_expr_index<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIndex) -> ExprIndex {
Nika Layzell27726662017-10-24 23:16:35 -0400975 ExprIndex {
976 expr: Box::new(_visitor.fold_expr(* _i . expr)),
977 index: Box::new(_visitor.fold_expr(* _i . index)),
978 bracket_token: _i . bracket_token,
979 }
980}
981
Nika Layzella6f46c42017-10-26 15:26:16 -0400982pub fn fold_expr_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprKind) -> ExprKind {
Nika Layzell27726662017-10-24 23:16:35 -0400983 use ::ExprKind::*;
984 match _i {
985 Box(_binding_0, ) => {
986 Box (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400987 full!(_visitor.fold_expr_box(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400988 )
989 }
990 InPlace(_binding_0, ) => {
991 InPlace (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400992 full!(_visitor.fold_expr_in_place(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400993 )
994 }
995 Array(_binding_0, ) => {
996 Array (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400997 full!(_visitor.fold_expr_array(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400998 )
999 }
1000 Call(_binding_0, ) => {
1001 Call (
1002 _visitor.fold_expr_call(_binding_0),
1003 )
1004 }
1005 MethodCall(_binding_0, ) => {
1006 MethodCall (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001007 full!(_visitor.fold_expr_method_call(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001008 )
1009 }
David Tolnay05362582017-12-26 01:33:57 -05001010 Tuple(_binding_0, ) => {
1011 Tuple (
1012 full!(_visitor.fold_expr_tuple(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001013 )
1014 }
1015 Binary(_binding_0, ) => {
1016 Binary (
1017 _visitor.fold_expr_binary(_binding_0),
1018 )
1019 }
1020 Unary(_binding_0, ) => {
1021 Unary (
1022 _visitor.fold_expr_unary(_binding_0),
1023 )
1024 }
1025 Lit(_binding_0, ) => {
1026 Lit (
1027 _binding_0,
1028 )
1029 }
1030 Cast(_binding_0, ) => {
1031 Cast (
1032 _visitor.fold_expr_cast(_binding_0),
1033 )
1034 }
1035 Type(_binding_0, ) => {
1036 Type (
1037 _visitor.fold_expr_type(_binding_0),
1038 )
1039 }
1040 If(_binding_0, ) => {
1041 If (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001042 full!(_visitor.fold_expr_if(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001043 )
1044 }
1045 IfLet(_binding_0, ) => {
1046 IfLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001047 full!(_visitor.fold_expr_if_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001048 )
1049 }
1050 While(_binding_0, ) => {
1051 While (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001052 full!(_visitor.fold_expr_while(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001053 )
1054 }
1055 WhileLet(_binding_0, ) => {
1056 WhileLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001057 full!(_visitor.fold_expr_while_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001058 )
1059 }
1060 ForLoop(_binding_0, ) => {
1061 ForLoop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001062 full!(_visitor.fold_expr_for_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001063 )
1064 }
1065 Loop(_binding_0, ) => {
1066 Loop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001067 full!(_visitor.fold_expr_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001068 )
1069 }
1070 Match(_binding_0, ) => {
1071 Match (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001072 full!(_visitor.fold_expr_match(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001073 )
1074 }
1075 Closure(_binding_0, ) => {
1076 Closure (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001077 full!(_visitor.fold_expr_closure(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001078 )
1079 }
Nika Layzell640832a2017-12-04 13:37:09 -05001080 Unsafe(_binding_0, ) => {
1081 Unsafe (
1082 full!(_visitor.fold_expr_unsafe(_binding_0)),
1083 )
1084 }
Nika Layzell27726662017-10-24 23:16:35 -04001085 Block(_binding_0, ) => {
1086 Block (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001087 full!(_visitor.fold_expr_block(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001088 )
1089 }
1090 Assign(_binding_0, ) => {
1091 Assign (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001092 full!(_visitor.fold_expr_assign(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001093 )
1094 }
1095 AssignOp(_binding_0, ) => {
1096 AssignOp (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001097 full!(_visitor.fold_expr_assign_op(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001098 )
1099 }
1100 Field(_binding_0, ) => {
1101 Field (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001102 full!(_visitor.fold_expr_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001103 )
1104 }
1105 TupField(_binding_0, ) => {
1106 TupField (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001107 full!(_visitor.fold_expr_tup_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001108 )
1109 }
1110 Index(_binding_0, ) => {
1111 Index (
1112 _visitor.fold_expr_index(_binding_0),
1113 )
1114 }
1115 Range(_binding_0, ) => {
1116 Range (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001117 full!(_visitor.fold_expr_range(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001118 )
1119 }
1120 Path(_binding_0, ) => {
1121 Path (
1122 _visitor.fold_expr_path(_binding_0),
1123 )
1124 }
1125 AddrOf(_binding_0, ) => {
1126 AddrOf (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001127 full!(_visitor.fold_expr_addr_of(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001128 )
1129 }
1130 Break(_binding_0, ) => {
1131 Break (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001132 full!(_visitor.fold_expr_break(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001133 )
1134 }
1135 Continue(_binding_0, ) => {
1136 Continue (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001137 full!(_visitor.fold_expr_continue(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001138 )
1139 }
1140 Ret(_binding_0, ) => {
1141 Ret (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001142 full!(_visitor.fold_expr_ret(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001143 )
1144 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001145 Macro(_binding_0, ) => {
1146 Macro (
1147 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001148 )
1149 }
1150 Struct(_binding_0, ) => {
1151 Struct (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001152 full!(_visitor.fold_expr_struct(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001153 )
1154 }
1155 Repeat(_binding_0, ) => {
1156 Repeat (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001157 full!(_visitor.fold_expr_repeat(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001158 )
1159 }
1160 Paren(_binding_0, ) => {
1161 Paren (
1162 _visitor.fold_expr_paren(_binding_0),
1163 )
1164 }
1165 Group(_binding_0, ) => {
1166 Group (
1167 _visitor.fold_expr_group(_binding_0),
1168 )
1169 }
1170 Try(_binding_0, ) => {
1171 Try (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001172 full!(_visitor.fold_expr_try(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001173 )
1174 }
1175 Catch(_binding_0, ) => {
1176 Catch (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001177 full!(_visitor.fold_expr_catch(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001178 )
1179 }
1180 Yield(_binding_0, ) => {
1181 Yield (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001182 full!(_visitor.fold_expr_yield(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001183 )
1184 }
1185 }
1186}
1187# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001188pub fn fold_expr_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprLoop) -> ExprLoop {
Nika Layzell27726662017-10-24 23:16:35 -04001189 ExprLoop {
1190 body: _visitor.fold_block(_i . body),
1191 label: _i . label,
1192 loop_token: _i . loop_token,
1193 colon_token: _i . colon_token,
1194 }
1195}
1196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001197pub fn fold_expr_match<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMatch) -> ExprMatch {
Nika Layzell27726662017-10-24 23:16:35 -04001198 ExprMatch {
1199 match_token: _i . match_token,
1200 brace_token: _i . brace_token,
1201 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1202 arms: FoldHelper::lift(_i . arms, |it| { _visitor.fold_arm(it) }),
1203 }
1204}
1205# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001206pub fn fold_expr_method_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMethodCall) -> ExprMethodCall {
Nika Layzell27726662017-10-24 23:16:35 -04001207 ExprMethodCall {
1208 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001209 method: _visitor.fold_ident(_i . method),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001210 typarams: FoldHelper::lift(_i . typarams, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001211 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1212 paren_token: _i . paren_token,
1213 dot_token: _i . dot_token,
1214 lt_token: _i . lt_token,
1215 colon2_token: _i . colon2_token,
1216 gt_token: _i . gt_token,
1217 }
1218}
1219
Nika Layzella6f46c42017-10-26 15:26:16 -04001220pub fn fold_expr_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprParen) -> ExprParen {
Nika Layzell27726662017-10-24 23:16:35 -04001221 ExprParen {
1222 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1223 paren_token: _i . paren_token,
1224 }
1225}
1226
Nika Layzella6f46c42017-10-26 15:26:16 -04001227pub fn fold_expr_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprPath) -> ExprPath {
Nika Layzell27726662017-10-24 23:16:35 -04001228 ExprPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001229 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001230 path: _visitor.fold_path(_i . path),
1231 }
1232}
1233# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001234pub fn fold_expr_range<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRange) -> ExprRange {
Nika Layzell27726662017-10-24 23:16:35 -04001235 ExprRange {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001236 from: (_i . from).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
1237 to: (_i . to).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001238 limits: _visitor.fold_range_limits(_i . limits),
1239 }
1240}
1241# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001242pub fn fold_expr_repeat<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRepeat) -> ExprRepeat {
Nika Layzell27726662017-10-24 23:16:35 -04001243 ExprRepeat {
1244 bracket_token: _i . bracket_token,
1245 semi_token: _i . semi_token,
1246 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1247 amt: Box::new(_visitor.fold_expr(* _i . amt)),
1248 }
1249}
1250# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001251pub fn fold_expr_ret<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRet) -> ExprRet {
Nika Layzell27726662017-10-24 23:16:35 -04001252 ExprRet {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001253 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001254 return_token: _i . return_token,
1255 }
1256}
1257# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001258pub fn fold_expr_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprStruct) -> ExprStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001259 ExprStruct {
1260 path: _visitor.fold_path(_i . path),
1261 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_value(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001262 rest: (_i . rest).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001263 dot2_token: _i . dot2_token,
1264 brace_token: _i . brace_token,
1265 }
1266}
1267# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001268pub fn fold_expr_try<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTry) -> ExprTry {
Nika Layzell27726662017-10-24 23:16:35 -04001269 ExprTry {
1270 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1271 question_token: _i . question_token,
1272 }
1273}
1274# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001275pub fn fold_expr_tup_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTupField) -> ExprTupField {
Nika Layzell27726662017-10-24 23:16:35 -04001276 ExprTupField {
1277 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1278 field: _i . field,
1279 dot_token: _i . dot_token,
1280 }
1281}
David Tolnay05362582017-12-26 01:33:57 -05001282# [ cfg ( feature = "full" ) ]
1283pub fn fold_expr_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTuple) -> ExprTuple {
1284 ExprTuple {
1285 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1286 paren_token: _i . paren_token,
1287 lone_comma: _i . lone_comma,
1288 }
1289}
Nika Layzell27726662017-10-24 23:16:35 -04001290
Nika Layzella6f46c42017-10-26 15:26:16 -04001291pub fn fold_expr_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprType) -> ExprType {
Nika Layzell27726662017-10-24 23:16:35 -04001292 ExprType {
1293 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1294 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001295 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001296 }
1297}
1298
Nika Layzella6f46c42017-10-26 15:26:16 -04001299pub fn fold_expr_unary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnary) -> ExprUnary {
Nika Layzell27726662017-10-24 23:16:35 -04001300 ExprUnary {
1301 op: _visitor.fold_un_op(_i . op),
1302 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1303 }
1304}
1305# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -05001306pub fn fold_expr_unsafe<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnsafe) -> ExprUnsafe {
1307 ExprUnsafe {
1308 unsafe_token: _i . unsafe_token,
1309 block: _visitor.fold_block(_i . block),
1310 }
1311}
1312# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001313pub fn fold_expr_while<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhile) -> ExprWhile {
Nika Layzell27726662017-10-24 23:16:35 -04001314 ExprWhile {
1315 cond: Box::new(_visitor.fold_expr(* _i . cond)),
1316 body: _visitor.fold_block(_i . body),
1317 label: _i . label,
1318 colon_token: _i . colon_token,
1319 while_token: _i . while_token,
1320 }
1321}
1322# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001323pub fn fold_expr_while_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhileLet) -> ExprWhileLet {
Nika Layzell27726662017-10-24 23:16:35 -04001324 ExprWhileLet {
1325 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1326 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1327 body: _visitor.fold_block(_i . body),
1328 label: _i . label,
1329 colon_token: _i . colon_token,
1330 while_token: _i . while_token,
1331 let_token: _i . let_token,
1332 eq_token: _i . eq_token,
1333 }
1334}
1335# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001336pub fn fold_expr_yield<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprYield) -> ExprYield {
Nika Layzell27726662017-10-24 23:16:35 -04001337 ExprYield {
1338 yield_token: _i . yield_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001339 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001340 }
1341}
1342
Nika Layzella6f46c42017-10-26 15:26:16 -04001343pub fn fold_field<V: Folder + ?Sized>(_visitor: &mut V, _i: Field) -> Field {
Nika Layzell27726662017-10-24 23:16:35 -04001344 Field {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001345 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001346 vis: _visitor.fold_visibility(_i . vis),
1347 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001348 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001349 colon_token: _i . colon_token,
1350 }
1351}
1352# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001353pub fn fold_field_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldPat) -> FieldPat {
Nika Layzell27726662017-10-24 23:16:35 -04001354 FieldPat {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001355 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001356 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1357 is_shorthand: _i . is_shorthand,
1358 colon_token: _i . colon_token,
1359 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1360 }
1361}
1362# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001363pub fn fold_field_value<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldValue) -> FieldValue {
Nika Layzell27726662017-10-24 23:16:35 -04001364 FieldValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001365 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001366 expr: _visitor.fold_expr(_i . expr),
1367 is_shorthand: _i . is_shorthand,
1368 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1369 colon_token: _i . colon_token,
1370 }
1371}
1372# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001373pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
Nika Layzell27726662017-10-24 23:16:35 -04001374 File {
1375 shebang: _i . shebang,
1376 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1377 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_item(it) }),
1378 }
1379}
1380# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001381pub fn fold_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: FnArg) -> FnArg {
Nika Layzell27726662017-10-24 23:16:35 -04001382 use ::FnArg::*;
1383 match _i {
1384 SelfRef(_binding_0, ) => {
1385 SelfRef (
1386 _visitor.fold_arg_self_ref(_binding_0),
1387 )
1388 }
1389 SelfValue(_binding_0, ) => {
1390 SelfValue (
1391 _visitor.fold_arg_self(_binding_0),
1392 )
1393 }
1394 Captured(_binding_0, ) => {
1395 Captured (
1396 _visitor.fold_arg_captured(_binding_0),
1397 )
1398 }
1399 Ignored(_binding_0, ) => {
1400 Ignored (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001401 _visitor.fold_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001402 )
1403 }
1404 }
1405}
1406# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001407pub fn fold_fn_decl<V: Folder + ?Sized>(_visitor: &mut V, _i: FnDecl) -> FnDecl {
Nika Layzell27726662017-10-24 23:16:35 -04001408 FnDecl {
1409 fn_token: _i . fn_token,
1410 paren_token: _i . paren_token,
1411 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08001412 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04001413 generics: _visitor.fold_generics(_i . generics),
1414 variadic: _i . variadic,
1415 dot_tokens: _i . dot_tokens,
1416 }
1417}
1418# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001419pub fn fold_foreign_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItem) -> ForeignItem {
David Tolnay8894f602017-11-11 12:11:04 -08001420 use ::ForeignItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001421 match _i {
1422 Fn(_binding_0, ) => {
1423 Fn (
1424 _visitor.fold_foreign_item_fn(_binding_0),
1425 )
1426 }
1427 Static(_binding_0, ) => {
1428 Static (
1429 _visitor.fold_foreign_item_static(_binding_0),
1430 )
1431 }
David Tolnay199bcbb2017-11-12 10:33:52 -08001432 Type(_binding_0, ) => {
1433 Type (
1434 _visitor.fold_foreign_item_type(_binding_0),
1435 )
1436 }
Nika Layzell27726662017-10-24 23:16:35 -04001437 }
1438}
1439# [ cfg ( feature = "full" ) ]
David Tolnay8894f602017-11-11 12:11:04 -08001440pub fn fold_foreign_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemFn) -> ForeignItemFn {
1441 ForeignItemFn {
1442 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1443 vis: _visitor.fold_visibility(_i . vis),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001444 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001445 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1446 semi_token: _i . semi_token,
1447 }
1448}
1449# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001450pub fn fold_foreign_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemStatic) -> ForeignItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001451 ForeignItemStatic {
David Tolnay8894f602017-11-11 12:11:04 -08001452 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1453 vis: _visitor.fold_visibility(_i . vis),
Nika Layzell27726662017-10-24 23:16:35 -04001454 static_token: _i . static_token,
Nika Layzell27726662017-10-24 23:16:35 -04001455 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001456 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001457 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001458 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnay8894f602017-11-11 12:11:04 -08001459 semi_token: _i . semi_token,
Nika Layzell27726662017-10-24 23:16:35 -04001460 }
1461}
David Tolnay199bcbb2017-11-12 10:33:52 -08001462# [ cfg ( feature = "full" ) ]
1463pub fn fold_foreign_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemType) -> ForeignItemType {
1464 ForeignItemType {
1465 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1466 vis: _visitor.fold_visibility(_i . vis),
1467 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001468 ident: _visitor.fold_ident(_i . ident),
David Tolnay199bcbb2017-11-12 10:33:52 -08001469 semi_token: _i . semi_token,
1470 }
1471}
Nika Layzell27726662017-10-24 23:16:35 -04001472
Nika Layzellc08227a2017-12-04 16:30:17 -05001473pub fn fold_generic_argument<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericArgument) -> GenericArgument {
1474 use ::GenericArgument::*;
Nika Layzell357885a2017-12-04 15:47:07 -05001475 match _i {
1476 Lifetime(_binding_0, ) => {
1477 Lifetime (
1478 _binding_0,
1479 )
1480 }
1481 Type(_binding_0, ) => {
1482 Type (
1483 _visitor.fold_type(_binding_0),
1484 )
1485 }
1486 TypeBinding(_binding_0, ) => {
1487 TypeBinding (
1488 _visitor.fold_type_binding(_binding_0),
1489 )
1490 }
Nika Layzellc680e612017-12-04 19:07:20 -05001491 Const(_binding_0, ) => {
1492 Const (
Nika Layzellce37f332017-12-05 12:01:22 -05001493 _visitor.fold_expr(_binding_0),
Nika Layzellc680e612017-12-04 19:07:20 -05001494 )
1495 }
Nika Layzell357885a2017-12-04 15:47:07 -05001496 }
1497}
1498
David Tolnayc2f1aba2017-11-12 20:29:22 -08001499pub fn fold_generic_param<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericParam) -> GenericParam {
1500 use ::GenericParam::*;
1501 match _i {
1502 Lifetime(_binding_0, ) => {
1503 Lifetime (
1504 _visitor.fold_lifetime_def(_binding_0),
1505 )
1506 }
1507 Type(_binding_0, ) => {
1508 Type (
1509 _visitor.fold_type_param(_binding_0),
1510 )
1511 }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -05001512 Const(_binding_0, ) => {
1513 Const (
1514 _visitor.fold_const_param(_binding_0),
1515 )
1516 }
David Tolnayc2f1aba2017-11-12 20:29:22 -08001517 }
1518}
1519
Nika Layzella6f46c42017-10-26 15:26:16 -04001520pub fn fold_generics<V: Folder + ?Sized>(_visitor: &mut V, _i: Generics) -> Generics {
Nika Layzell27726662017-10-24 23:16:35 -04001521 Generics {
1522 lt_token: _i . lt_token,
David Tolnayc2f1aba2017-11-12 20:29:22 -08001523 params: FoldHelper::lift(_i . params, |it| { _visitor.fold_generic_param(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001524 gt_token: _i . gt_token,
Nika Layzell27726662017-10-24 23:16:35 -04001525 where_clause: _visitor.fold_where_clause(_i . where_clause),
1526 }
1527}
Nika Layzellefb83ba2017-12-19 18:23:55 -05001528
1529pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
1530 _i
1531}
Nika Layzell27726662017-10-24 23:16:35 -04001532# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001533pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
David Tolnay857628c2017-11-11 12:25:31 -08001534 use ::ImplItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001535 match _i {
1536 Const(_binding_0, ) => {
1537 Const (
1538 _visitor.fold_impl_item_const(_binding_0),
1539 )
1540 }
1541 Method(_binding_0, ) => {
1542 Method (
1543 _visitor.fold_impl_item_method(_binding_0),
1544 )
1545 }
1546 Type(_binding_0, ) => {
1547 Type (
1548 _visitor.fold_impl_item_type(_binding_0),
1549 )
1550 }
1551 Macro(_binding_0, ) => {
1552 Macro (
David Tolnay857628c2017-11-11 12:25:31 -08001553 _visitor.fold_impl_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001554 )
1555 }
1556 }
1557}
1558# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -08001559pub fn fold_impl_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemConst) -> ImplItemConst {
1560 ImplItemConst {
1561 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1562 vis: _visitor.fold_visibility(_i . vis),
1563 defaultness: _visitor.fold_defaultness(_i . defaultness),
1564 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001565 ident: _visitor.fold_ident(_i . ident),
David Tolnay857628c2017-11-11 12:25:31 -08001566 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001567 ty: _visitor.fold_type(_i . ty),
David Tolnay857628c2017-11-11 12:25:31 -08001568 eq_token: _i . eq_token,
1569 expr: _visitor.fold_expr(_i . expr),
1570 semi_token: _i . semi_token,
1571 }
1572}
1573# [ cfg ( feature = "full" ) ]
1574pub fn fold_impl_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMacro) -> ImplItemMacro {
1575 ImplItemMacro {
1576 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1577 mac: _visitor.fold_macro(_i . mac),
1578 }
1579}
1580# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001581pub fn fold_impl_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMethod) -> ImplItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04001582 ImplItemMethod {
David Tolnay857628c2017-11-11 12:25:31 -08001583 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001584 vis: _visitor.fold_visibility(_i . vis),
1585 defaultness: _visitor.fold_defaultness(_i . defaultness),
1586 sig: _visitor.fold_method_sig(_i . sig),
1587 block: _visitor.fold_block(_i . block),
1588 }
1589}
1590# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001591pub fn fold_impl_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemType) -> ImplItemType {
Nika Layzell27726662017-10-24 23:16:35 -04001592 ImplItemType {
David Tolnay857628c2017-11-11 12:25:31 -08001593 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001594 vis: _visitor.fold_visibility(_i . vis),
1595 defaultness: _visitor.fold_defaultness(_i . defaultness),
1596 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001597 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05001598 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04001599 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001600 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001601 semi_token: _i . semi_token,
1602 }
1603}
1604# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001605pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
Nika Layzell27726662017-10-24 23:16:35 -04001606 use ::ImplPolarity::*;
1607 match _i {
1608 Positive => { Positive }
1609 Negative(_binding_0, ) => {
1610 Negative (
1611 _binding_0,
1612 )
1613 }
1614 }
1615}
1616# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001617pub fn fold_in_place_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: InPlaceKind) -> InPlaceKind {
Nika Layzell27726662017-10-24 23:16:35 -04001618 use ::InPlaceKind::*;
1619 match _i {
1620 Arrow(_binding_0, ) => {
1621 Arrow (
1622 _binding_0,
1623 )
1624 }
1625 In(_binding_0, ) => {
1626 In (
1627 _binding_0,
1628 )
1629 }
1630 }
1631}
1632# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001633pub fn fold_item<V: Folder + ?Sized>(_visitor: &mut V, _i: Item) -> Item {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001634 use ::Item::*;
Nika Layzell27726662017-10-24 23:16:35 -04001635 match _i {
1636 ExternCrate(_binding_0, ) => {
1637 ExternCrate (
1638 _visitor.fold_item_extern_crate(_binding_0),
1639 )
1640 }
1641 Use(_binding_0, ) => {
1642 Use (
1643 _visitor.fold_item_use(_binding_0),
1644 )
1645 }
1646 Static(_binding_0, ) => {
1647 Static (
1648 _visitor.fold_item_static(_binding_0),
1649 )
1650 }
1651 Const(_binding_0, ) => {
1652 Const (
1653 _visitor.fold_item_const(_binding_0),
1654 )
1655 }
1656 Fn(_binding_0, ) => {
1657 Fn (
1658 _visitor.fold_item_fn(_binding_0),
1659 )
1660 }
1661 Mod(_binding_0, ) => {
1662 Mod (
1663 _visitor.fold_item_mod(_binding_0),
1664 )
1665 }
1666 ForeignMod(_binding_0, ) => {
1667 ForeignMod (
1668 _visitor.fold_item_foreign_mod(_binding_0),
1669 )
1670 }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001671 Type(_binding_0, ) => {
1672 Type (
1673 _visitor.fold_item_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001674 )
1675 }
1676 Enum(_binding_0, ) => {
1677 Enum (
1678 _visitor.fold_item_enum(_binding_0),
1679 )
1680 }
1681 Struct(_binding_0, ) => {
1682 Struct (
1683 _visitor.fold_item_struct(_binding_0),
1684 )
1685 }
1686 Union(_binding_0, ) => {
1687 Union (
1688 _visitor.fold_item_union(_binding_0),
1689 )
1690 }
1691 Trait(_binding_0, ) => {
1692 Trait (
1693 _visitor.fold_item_trait(_binding_0),
1694 )
1695 }
1696 DefaultImpl(_binding_0, ) => {
1697 DefaultImpl (
1698 _visitor.fold_item_default_impl(_binding_0),
1699 )
1700 }
1701 Impl(_binding_0, ) => {
1702 Impl (
1703 _visitor.fold_item_impl(_binding_0),
1704 )
1705 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001706 Macro(_binding_0, ) => {
1707 Macro (
1708 _visitor.fold_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001709 )
1710 }
David Tolnay500d8322017-12-18 00:32:51 -08001711 Macro2(_binding_0, ) => {
1712 Macro2 (
1713 _visitor.fold_item_macro2(_binding_0),
1714 )
1715 }
Nika Layzell27726662017-10-24 23:16:35 -04001716 }
1717}
1718# [ cfg ( feature = "full" ) ]
David Tolnayc6b55bc2017-11-09 22:48:38 -08001719pub fn fold_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemConst) -> ItemConst {
1720 ItemConst {
1721 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1722 vis: _visitor.fold_visibility(_i . vis),
1723 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001724 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001725 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001726 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001727 eq_token: _i . eq_token,
1728 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1729 semi_token: _i . semi_token,
1730 }
1731}
1732# [ cfg ( feature = "full" ) ]
1733pub fn fold_item_default_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemDefaultImpl) -> ItemDefaultImpl {
1734 ItemDefaultImpl {
1735 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1736 unsafety: _visitor.fold_unsafety(_i . unsafety),
1737 impl_token: _i . impl_token,
1738 path: _visitor.fold_path(_i . path),
1739 for_token: _i . for_token,
1740 dot2_token: _i . dot2_token,
1741 brace_token: _i . brace_token,
1742 }
1743}
1744# [ cfg ( feature = "full" ) ]
1745pub fn fold_item_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemEnum) -> ItemEnum {
1746 ItemEnum {
1747 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1748 vis: _visitor.fold_visibility(_i . vis),
1749 enum_token: _i . enum_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001750 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001751 generics: _visitor.fold_generics(_i . generics),
1752 brace_token: _i . brace_token,
1753 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
1754 }
1755}
1756# [ cfg ( feature = "full" ) ]
1757pub fn fold_item_extern_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemExternCrate) -> ItemExternCrate {
1758 ItemExternCrate {
1759 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1760 vis: _visitor.fold_visibility(_i . vis),
1761 extern_token: _i . extern_token,
1762 crate_token: _i . crate_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001763 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001764 rename: _i . rename,
1765 semi_token: _i . semi_token,
1766 }
1767}
1768# [ cfg ( feature = "full" ) ]
1769pub fn fold_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemFn) -> ItemFn {
1770 ItemFn {
1771 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1772 vis: _visitor.fold_visibility(_i . vis),
1773 constness: _visitor.fold_constness(_i . constness),
1774 unsafety: _visitor.fold_unsafety(_i . unsafety),
1775 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
1776 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001777 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001778 block: Box::new(_visitor.fold_block(* _i . block)),
1779 }
1780}
1781# [ cfg ( feature = "full" ) ]
1782pub fn fold_item_foreign_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemForeignMod) -> ItemForeignMod {
1783 ItemForeignMod {
1784 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1785 abi: _visitor.fold_abi(_i . abi),
1786 brace_token: _i . brace_token,
1787 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_foreign_item(it) }),
1788 }
1789}
1790# [ cfg ( feature = "full" ) ]
1791pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
1792 ItemImpl {
1793 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1794 defaultness: _visitor.fold_defaultness(_i . defaultness),
1795 unsafety: _visitor.fold_unsafety(_i . unsafety),
1796 impl_token: _i . impl_token,
1797 generics: _visitor.fold_generics(_i . generics),
1798 trait_: _i . trait_,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001799 self_ty: Box::new(_visitor.fold_type(* _i . self_ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001800 brace_token: _i . brace_token,
1801 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_impl_item(it) }),
1802 }
1803}
1804# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08001805pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
1806 ItemMacro {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001807 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001808 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08001809 mac: _visitor.fold_macro(_i . mac),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001810 }
1811}
1812# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -08001813pub fn fold_item_macro2<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro2) -> ItemMacro2 {
1814 ItemMacro2 {
1815 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1816 vis: _visitor.fold_visibility(_i . vis),
1817 macro_token: _i . macro_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001818 ident: _visitor.fold_ident(_i . ident),
David Tolnay500d8322017-12-18 00:32:51 -08001819 args: _i . args,
1820 body: _i . body,
1821 }
1822}
1823# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001824pub fn fold_item_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMod) -> ItemMod {
Nika Layzell27726662017-10-24 23:16:35 -04001825 ItemMod {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001826 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001827 vis: _visitor.fold_visibility(_i . vis),
1828 mod_token: _i . mod_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001829 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001830 content: _i . content,
1831 semi: _i . semi,
1832 }
1833}
1834# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001835pub fn fold_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStatic) -> ItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001836 ItemStatic {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001837 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001838 vis: _visitor.fold_visibility(_i . vis),
1839 static_token: _i . static_token,
1840 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001841 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001842 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001843 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001844 eq_token: _i . eq_token,
1845 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1846 semi_token: _i . semi_token,
1847 }
1848}
1849# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001850pub fn fold_item_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStruct) -> ItemStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001851 ItemStruct {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001852 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001853 vis: _visitor.fold_visibility(_i . vis),
1854 struct_token: _i . struct_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001855 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001856 generics: _visitor.fold_generics(_i . generics),
1857 data: _visitor.fold_variant_data(_i . data),
1858 semi_token: _i . semi_token,
1859 }
1860}
1861# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001862pub fn fold_item_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTrait) -> ItemTrait {
Nika Layzell27726662017-10-24 23:16:35 -04001863 ItemTrait {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001864 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001865 vis: _visitor.fold_visibility(_i . vis),
1866 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell0dc6e632017-11-18 12:55:25 -05001867 auto_token: _i . auto_token,
Nika Layzell27726662017-10-24 23:16:35 -04001868 trait_token: _i . trait_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001869 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001870 generics: _visitor.fold_generics(_i . generics),
1871 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001872 supertraits: FoldHelper::lift(_i . supertraits, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001873 brace_token: _i . brace_token,
1874 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_trait_item(it) }),
1875 }
1876}
1877# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001878pub fn fold_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemType) -> ItemType {
1879 ItemType {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001880 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001881 vis: _visitor.fold_visibility(_i . vis),
1882 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001883 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001884 generics: _visitor.fold_generics(_i . generics),
1885 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001886 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001887 semi_token: _i . semi_token,
1888 }
1889}
1890# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001891pub fn fold_item_union<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUnion) -> ItemUnion {
Nika Layzell27726662017-10-24 23:16:35 -04001892 ItemUnion {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001893 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001894 vis: _visitor.fold_visibility(_i . vis),
1895 union_token: _i . union_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001896 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001897 generics: _visitor.fold_generics(_i . generics),
1898 data: _visitor.fold_variant_data(_i . data),
1899 }
1900}
1901# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001902pub fn fold_item_use<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUse) -> ItemUse {
Nika Layzell27726662017-10-24 23:16:35 -04001903 ItemUse {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001904 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001905 vis: _visitor.fold_visibility(_i . vis),
1906 use_token: _i . use_token,
David Tolnay5f332a92017-12-26 00:42:45 -05001907 leading_colon: _i . leading_colon,
1908 prefix: FoldHelper::lift(_i . prefix, |it| { _visitor.fold_ident(it) }),
1909 tree: _visitor.fold_use_tree(_i . tree),
Nika Layzell27726662017-10-24 23:16:35 -04001910 semi_token: _i . semi_token,
1911 }
1912}
1913
Nika Layzella6f46c42017-10-26 15:26:16 -04001914pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001915 LifetimeDef {
1916 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1917 lifetime: _i . lifetime,
1918 colon_token: _i . colon_token,
1919 bounds: _i . bounds,
1920 }
1921}
1922# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001923pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001924 Local {
1925 let_token: _i . let_token,
1926 colon_token: _i . colon_token,
1927 eq_token: _i . eq_token,
1928 semi_token: _i . semi_token,
1929 pat: Box::new(_visitor.fold_pat(* _i . pat)),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001930 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_type(* it)) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001931 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001932 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1933 }
1934}
Nika Layzell27726662017-10-24 23:16:35 -04001935# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001936pub fn fold_mac_stmt_style<V: Folder + ?Sized>(_visitor: &mut V, _i: MacStmtStyle) -> MacStmtStyle {
Nika Layzell27726662017-10-24 23:16:35 -04001937 use ::MacStmtStyle::*;
1938 match _i {
1939 Semicolon(_binding_0, ) => {
1940 Semicolon (
1941 _binding_0,
1942 )
1943 }
1944 Braces => { Braces }
1945 NoBraces => { NoBraces }
1946 }
1947}
1948
David Tolnaydecf28d2017-11-11 11:56:45 -08001949pub fn fold_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: Macro) -> Macro {
1950 Macro {
1951 path: _visitor.fold_path(_i . path),
1952 bang_token: _i . bang_token,
David Tolnaydecf28d2017-11-11 11:56:45 -08001953 tokens: _i . tokens,
1954 }
1955}
1956
Nika Layzella6f46c42017-10-26 15:26:16 -04001957pub fn fold_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001958 use ::MetaItem::*;
1959 match _i {
1960 Term(_binding_0, ) => {
1961 Term (
Nika Layzellefb83ba2017-12-19 18:23:55 -05001962 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001963 )
1964 }
1965 List(_binding_0, ) => {
1966 List (
1967 _visitor.fold_meta_item_list(_binding_0),
1968 )
1969 }
1970 NameValue(_binding_0, ) => {
1971 NameValue (
1972 _visitor.fold_meta_name_value(_binding_0),
1973 )
1974 }
1975 }
1976}
1977
Nika Layzella6f46c42017-10-26 15:26:16 -04001978pub fn fold_meta_item_list<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
Nika Layzell27726662017-10-24 23:16:35 -04001979 MetaItemList {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001980 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001981 paren_token: _i . paren_token,
1982 nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
1983 }
1984}
1985
Nika Layzella6f46c42017-10-26 15:26:16 -04001986pub fn fold_meta_name_value<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaNameValue) -> MetaNameValue {
Nika Layzell27726662017-10-24 23:16:35 -04001987 MetaNameValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001988 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001989 eq_token: _i . eq_token,
1990 lit: _i . lit,
1991 }
1992}
1993# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001994pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
Nika Layzell27726662017-10-24 23:16:35 -04001995 MethodSig {
1996 constness: _visitor.fold_constness(_i . constness),
1997 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001998 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001999 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002000 decl: _visitor.fold_fn_decl(_i . decl),
2001 }
2002}
2003
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002004pub fn fold_mut_type<V: Folder + ?Sized>(_visitor: &mut V, _i: MutType) -> MutType {
2005 MutType {
2006 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04002007 mutability: _visitor.fold_mutability(_i . mutability),
2008 }
2009}
2010
Nika Layzella6f46c42017-10-26 15:26:16 -04002011pub fn fold_mutability<V: Folder + ?Sized>(_visitor: &mut V, _i: Mutability) -> Mutability {
Nika Layzell27726662017-10-24 23:16:35 -04002012 use ::Mutability::*;
2013 match _i {
2014 Mutable(_binding_0, ) => {
2015 Mutable (
2016 _binding_0,
2017 )
2018 }
2019 Immutable => { Immutable }
2020 }
2021}
2022
Nika Layzella6f46c42017-10-26 15:26:16 -04002023pub fn fold_nested_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04002024 use ::NestedMetaItem::*;
2025 match _i {
2026 MetaItem(_binding_0, ) => {
2027 MetaItem (
2028 _visitor.fold_meta_item(_binding_0),
2029 )
2030 }
2031 Literal(_binding_0, ) => {
2032 Literal (
2033 _binding_0,
2034 )
2035 }
2036 }
2037}
2038
Nika Layzellc08227a2017-12-04 16:30:17 -05002039pub fn fold_parenthesized_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments {
2040 ParenthesizedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -04002041 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002042 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_type(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08002043 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04002044 }
2045}
2046# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002047pub fn fold_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: Pat) -> Pat {
Nika Layzell27726662017-10-24 23:16:35 -04002048 use ::Pat::*;
2049 match _i {
2050 Wild(_binding_0, ) => {
2051 Wild (
2052 _visitor.fold_pat_wild(_binding_0),
2053 )
2054 }
2055 Ident(_binding_0, ) => {
2056 Ident (
2057 _visitor.fold_pat_ident(_binding_0),
2058 )
2059 }
2060 Struct(_binding_0, ) => {
2061 Struct (
2062 _visitor.fold_pat_struct(_binding_0),
2063 )
2064 }
2065 TupleStruct(_binding_0, ) => {
2066 TupleStruct (
2067 _visitor.fold_pat_tuple_struct(_binding_0),
2068 )
2069 }
2070 Path(_binding_0, ) => {
2071 Path (
2072 _visitor.fold_pat_path(_binding_0),
2073 )
2074 }
2075 Tuple(_binding_0, ) => {
2076 Tuple (
2077 _visitor.fold_pat_tuple(_binding_0),
2078 )
2079 }
2080 Box(_binding_0, ) => {
2081 Box (
2082 _visitor.fold_pat_box(_binding_0),
2083 )
2084 }
2085 Ref(_binding_0, ) => {
2086 Ref (
2087 _visitor.fold_pat_ref(_binding_0),
2088 )
2089 }
2090 Lit(_binding_0, ) => {
2091 Lit (
2092 _visitor.fold_pat_lit(_binding_0),
2093 )
2094 }
2095 Range(_binding_0, ) => {
2096 Range (
2097 _visitor.fold_pat_range(_binding_0),
2098 )
2099 }
2100 Slice(_binding_0, ) => {
2101 Slice (
2102 _visitor.fold_pat_slice(_binding_0),
2103 )
2104 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002105 Macro(_binding_0, ) => {
2106 Macro (
2107 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002108 )
2109 }
2110 }
2111}
2112# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002113pub fn fold_pat_box<V: Folder + ?Sized>(_visitor: &mut V, _i: PatBox) -> PatBox {
Nika Layzell27726662017-10-24 23:16:35 -04002114 PatBox {
2115 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2116 box_token: _i . box_token,
2117 }
2118}
2119# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002120pub fn fold_pat_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: PatIdent) -> PatIdent {
Nika Layzell27726662017-10-24 23:16:35 -04002121 PatIdent {
2122 mode: _visitor.fold_binding_mode(_i . mode),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002123 ident: _visitor.fold_ident(_i . ident),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002124 subpat: (_i . subpat).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002125 at_token: _i . at_token,
2126 }
2127}
2128# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002129pub fn fold_pat_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: PatLit) -> PatLit {
Nika Layzell27726662017-10-24 23:16:35 -04002130 PatLit {
2131 expr: Box::new(_visitor.fold_expr(* _i . expr)),
2132 }
2133}
2134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002135pub fn fold_pat_path<V: Folder + ?Sized>(_visitor: &mut V, _i: PatPath) -> PatPath {
Nika Layzell27726662017-10-24 23:16:35 -04002136 PatPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002137 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002138 path: _visitor.fold_path(_i . path),
2139 }
2140}
2141# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002142pub fn fold_pat_range<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRange) -> PatRange {
Nika Layzell27726662017-10-24 23:16:35 -04002143 PatRange {
2144 lo: Box::new(_visitor.fold_expr(* _i . lo)),
2145 hi: Box::new(_visitor.fold_expr(* _i . hi)),
2146 limits: _visitor.fold_range_limits(_i . limits),
2147 }
2148}
2149# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002150pub fn fold_pat_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRef) -> PatRef {
Nika Layzell27726662017-10-24 23:16:35 -04002151 PatRef {
2152 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2153 mutbl: _visitor.fold_mutability(_i . mutbl),
2154 and_token: _i . and_token,
2155 }
2156}
2157# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002158pub fn fold_pat_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: PatSlice) -> PatSlice {
Nika Layzell27726662017-10-24 23:16:35 -04002159 PatSlice {
2160 front: FoldHelper::lift(_i . front, |it| { _visitor.fold_pat(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002161 middle: (_i . middle).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002162 back: FoldHelper::lift(_i . back, |it| { _visitor.fold_pat(it) }),
2163 dot2_token: _i . dot2_token,
2164 comma_token: _i . comma_token,
2165 bracket_token: _i . bracket_token,
2166 }
2167}
2168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002169pub fn fold_pat_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatStruct) -> PatStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002170 PatStruct {
2171 path: _visitor.fold_path(_i . path),
2172 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_pat(it) }),
2173 brace_token: _i . brace_token,
2174 dot2_token: _i . dot2_token,
2175 }
2176}
2177# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002178pub fn fold_pat_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTuple) -> PatTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002179 PatTuple {
2180 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
2181 dots_pos: _i . dots_pos,
2182 paren_token: _i . paren_token,
2183 dot2_token: _i . dot2_token,
2184 comma_token: _i . comma_token,
2185 }
2186}
2187# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002188pub fn fold_pat_tuple_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTupleStruct) -> PatTupleStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002189 PatTupleStruct {
2190 path: _visitor.fold_path(_i . path),
2191 pat: _visitor.fold_pat_tuple(_i . pat),
2192 }
2193}
2194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002195pub fn fold_pat_wild<V: Folder + ?Sized>(_visitor: &mut V, _i: PatWild) -> PatWild {
Nika Layzell27726662017-10-24 23:16:35 -04002196 PatWild {
2197 underscore_token: _i . underscore_token,
2198 }
2199}
2200
Nika Layzella6f46c42017-10-26 15:26:16 -04002201pub fn fold_path<V: Folder + ?Sized>(_visitor: &mut V, _i: Path) -> Path {
Nika Layzell27726662017-10-24 23:16:35 -04002202 Path {
2203 leading_colon: _i . leading_colon,
2204 segments: FoldHelper::lift(_i . segments, |it| { _visitor.fold_path_segment(it) }),
2205 }
2206}
Nika Layzellc08227a2017-12-04 16:30:17 -05002207
2208pub fn fold_path_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: PathArguments) -> PathArguments {
2209 use ::PathArguments::*;
2210 match _i {
2211 None => { None }
2212 AngleBracketed(_binding_0, ) => {
2213 AngleBracketed (
2214 _visitor.fold_angle_bracketed_generic_arguments(_binding_0),
2215 )
2216 }
2217 Parenthesized(_binding_0, ) => {
2218 Parenthesized (
2219 _visitor.fold_parenthesized_generic_arguments(_binding_0),
2220 )
2221 }
2222 }
2223}
Nika Layzell27726662017-10-24 23:16:35 -04002224
Nika Layzella6f46c42017-10-26 15:26:16 -04002225pub fn fold_path_segment<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSegment) -> PathSegment {
Nika Layzell27726662017-10-24 23:16:35 -04002226 PathSegment {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002227 ident: _visitor.fold_ident(_i . ident),
Nika Layzellc08227a2017-12-04 16:30:17 -05002228 arguments: _visitor.fold_path_arguments(_i . arguments),
Nika Layzell27726662017-10-24 23:16:35 -04002229 }
2230}
Nika Layzell27726662017-10-24 23:16:35 -04002231
Nika Layzella6f46c42017-10-26 15:26:16 -04002232pub fn fold_poly_trait_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PolyTraitRef) -> PolyTraitRef {
Nika Layzell27726662017-10-24 23:16:35 -04002233 PolyTraitRef {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002234 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002235 trait_ref: _visitor.fold_path(_i . trait_ref),
2236 }
2237}
2238
Nika Layzella6f46c42017-10-26 15:26:16 -04002239pub fn fold_qself<V: Folder + ?Sized>(_visitor: &mut V, _i: QSelf) -> QSelf {
Nika Layzell27726662017-10-24 23:16:35 -04002240 QSelf {
2241 lt_token: _i . lt_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002242 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002243 position: _i . position,
2244 as_token: _i . as_token,
2245 gt_token: _i . gt_token,
2246 }
2247}
2248# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002249pub fn fold_range_limits<V: Folder + ?Sized>(_visitor: &mut V, _i: RangeLimits) -> RangeLimits {
Nika Layzell27726662017-10-24 23:16:35 -04002250 use ::RangeLimits::*;
2251 match _i {
2252 HalfOpen(_binding_0, ) => {
2253 HalfOpen (
2254 _binding_0,
2255 )
2256 }
2257 Closed(_binding_0, ) => {
2258 Closed (
2259 _binding_0,
2260 )
2261 }
2262 }
2263}
David Tolnayf93b90d2017-11-11 19:21:26 -08002264
2265pub fn fold_return_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ReturnType) -> ReturnType {
2266 use ::ReturnType::*;
2267 match _i {
2268 Default => { Default }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002269 Type(_binding_0, _binding_1, ) => {
2270 Type (
2271 _visitor.fold_type(_binding_0),
David Tolnayf93b90d2017-11-11 19:21:26 -08002272 _binding_1,
2273 )
2274 }
2275 }
2276}
Nika Layzellefb83ba2017-12-19 18:23:55 -05002277
2278pub fn fold_span<V: Folder + ?Sized>(_visitor: &mut V, _i: Span) -> Span {
2279 _i
2280}
Nika Layzell27726662017-10-24 23:16:35 -04002281# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002282pub fn fold_stmt<V: Folder + ?Sized>(_visitor: &mut V, _i: Stmt) -> Stmt {
Nika Layzell27726662017-10-24 23:16:35 -04002283 use ::Stmt::*;
2284 match _i {
2285 Local(_binding_0, ) => {
2286 Local (
2287 Box::new(_visitor.fold_local(* _binding_0)),
2288 )
2289 }
2290 Item(_binding_0, ) => {
2291 Item (
2292 Box::new(_visitor.fold_item(* _binding_0)),
2293 )
2294 }
2295 Expr(_binding_0, ) => {
2296 Expr (
2297 Box::new(_visitor.fold_expr(* _binding_0)),
2298 )
2299 }
2300 Semi(_binding_0, _binding_1, ) => {
2301 Semi (
2302 Box::new(_visitor.fold_expr(* _binding_0)),
2303 _binding_1,
2304 )
2305 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002306 Macro(_binding_0, ) => {
2307 Macro (
Nika Layzell27726662017-10-24 23:16:35 -04002308 _binding_0,
2309 )
2310 }
2311 }
2312}
2313
Nika Layzella6f46c42017-10-26 15:26:16 -04002314pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002315 use ::TraitBoundModifier::*;
2316 match _i {
2317 None => { None }
2318 Maybe(_binding_0, ) => {
2319 Maybe (
2320 _binding_0,
2321 )
2322 }
2323 }
2324}
2325# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002326pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002327 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002328 match _i {
2329 Const(_binding_0, ) => {
2330 Const (
2331 _visitor.fold_trait_item_const(_binding_0),
2332 )
2333 }
2334 Method(_binding_0, ) => {
2335 Method (
2336 _visitor.fold_trait_item_method(_binding_0),
2337 )
2338 }
2339 Type(_binding_0, ) => {
2340 Type (
2341 _visitor.fold_trait_item_type(_binding_0),
2342 )
2343 }
2344 Macro(_binding_0, ) => {
2345 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002346 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002347 )
2348 }
2349 }
2350}
2351# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002352pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2353 TraitItemConst {
2354 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2355 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002356 ident: _visitor.fold_ident(_i . ident),
David Tolnayda705bd2017-11-10 21:58:05 -08002357 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002358 ty: _visitor.fold_type(_i . ty),
David Tolnayda705bd2017-11-10 21:58:05 -08002359 default: _i . default,
2360 semi_token: _i . semi_token,
2361 }
2362}
2363# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002364pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2365 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002366 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002367 mac: _visitor.fold_macro(_i . mac),
David Tolnayda705bd2017-11-10 21:58:05 -08002368 }
2369}
2370# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002371pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002372 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002373 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002374 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002375 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002376 semi_token: _i . semi_token,
2377 }
2378}
2379# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002380pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002381 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002382 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002383 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002384 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05002385 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04002386 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002387 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002388 default: _i . default,
2389 semi_token: _i . semi_token,
2390 }
2391}
2392
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002393pub fn fold_type<V: Folder + ?Sized>(_visitor: &mut V, _i: Type) -> Type {
2394 use ::Type::*;
Nika Layzell27726662017-10-24 23:16:35 -04002395 match _i {
2396 Slice(_binding_0, ) => {
2397 Slice (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002398 _visitor.fold_type_slice(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002399 )
2400 }
2401 Array(_binding_0, ) => {
2402 Array (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002403 _visitor.fold_type_array(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002404 )
2405 }
2406 Ptr(_binding_0, ) => {
2407 Ptr (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002408 _visitor.fold_type_ptr(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002409 )
2410 }
David Tolnay0a89b4d2017-11-13 00:55:45 -08002411 Reference(_binding_0, ) => {
2412 Reference (
2413 _visitor.fold_type_reference(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002414 )
2415 }
2416 BareFn(_binding_0, ) => {
2417 BareFn (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002418 _visitor.fold_type_bare_fn(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002419 )
2420 }
2421 Never(_binding_0, ) => {
2422 Never (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002423 _visitor.fold_type_never(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002424 )
2425 }
David Tolnay05362582017-12-26 01:33:57 -05002426 Tuple(_binding_0, ) => {
2427 Tuple (
2428 _visitor.fold_type_tuple(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002429 )
2430 }
2431 Path(_binding_0, ) => {
2432 Path (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002433 _visitor.fold_type_path(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002434 )
2435 }
2436 TraitObject(_binding_0, ) => {
2437 TraitObject (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002438 _visitor.fold_type_trait_object(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002439 )
2440 }
2441 ImplTrait(_binding_0, ) => {
2442 ImplTrait (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002443 _visitor.fold_type_impl_trait(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002444 )
2445 }
2446 Paren(_binding_0, ) => {
2447 Paren (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002448 _visitor.fold_type_paren(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002449 )
2450 }
2451 Group(_binding_0, ) => {
2452 Group (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002453 _visitor.fold_type_group(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002454 )
2455 }
2456 Infer(_binding_0, ) => {
2457 Infer (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002458 _visitor.fold_type_infer(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002459 )
2460 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002461 Macro(_binding_0, ) => {
2462 Macro (
2463 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002464 )
2465 }
2466 }
2467}
2468
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002469pub fn fold_type_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeArray) -> TypeArray {
2470 TypeArray {
Nika Layzell27726662017-10-24 23:16:35 -04002471 bracket_token: _i . bracket_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002472 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002473 semi_token: _i . semi_token,
2474 amt: _visitor.fold_expr(_i . amt),
2475 }
2476}
2477
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002478pub fn fold_type_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBareFn) -> TypeBareFn {
2479 TypeBareFn {
2480 ty: Box::new(_visitor.fold_bare_fn_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002481 }
2482}
2483
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002484pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
2485 TypeBinding {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002486 ident: _visitor.fold_ident(_i . ident),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002487 eq_token: _i . eq_token,
2488 ty: _visitor.fold_type(_i . ty),
2489 }
2490}
2491
2492pub fn fold_type_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeGroup) -> TypeGroup {
2493 TypeGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002494 group_token: _i . group_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002495 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002496 }
2497}
2498
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002499pub fn fold_type_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeImplTrait) -> TypeImplTrait {
2500 TypeImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002501 impl_token: _i . impl_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002502 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002503 }
2504}
2505
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002506pub fn fold_type_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeInfer) -> TypeInfer {
2507 TypeInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002508 underscore_token: _i . underscore_token,
2509 }
2510}
2511
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002512pub fn fold_type_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeNever) -> TypeNever {
2513 TypeNever {
Nika Layzell27726662017-10-24 23:16:35 -04002514 bang_token: _i . bang_token,
2515 }
2516}
2517
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002518pub fn fold_type_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParam) -> TypeParam {
2519 TypeParam {
Nika Layzell27726662017-10-24 23:16:35 -04002520 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002521 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002522 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002523 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002524 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002525 default: (_i . default).map(|it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002526 }
2527}
2528
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002529pub fn fold_type_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParamBound) -> TypeParamBound {
2530 use ::TypeParamBound::*;
Nika Layzell27726662017-10-24 23:16:35 -04002531 match _i {
2532 Trait(_binding_0, _binding_1, ) => {
2533 Trait (
2534 _visitor.fold_poly_trait_ref(_binding_0),
2535 _visitor.fold_trait_bound_modifier(_binding_1),
2536 )
2537 }
2538 Region(_binding_0, ) => {
2539 Region (
2540 _binding_0,
2541 )
2542 }
2543 }
2544}
2545
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002546pub fn fold_type_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParen) -> TypeParen {
2547 TypeParen {
Nika Layzell27726662017-10-24 23:16:35 -04002548 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002549 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002550 }
2551}
2552
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002553pub fn fold_type_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePath) -> TypePath {
2554 TypePath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002555 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002556 path: _visitor.fold_path(_i . path),
2557 }
2558}
2559
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002560pub fn fold_type_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePtr) -> TypePtr {
2561 TypePtr {
Nika Layzell27726662017-10-24 23:16:35 -04002562 star_token: _i . star_token,
2563 const_token: _i . const_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002564 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002565 }
2566}
2567
David Tolnay0a89b4d2017-11-13 00:55:45 -08002568pub fn fold_type_reference<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeReference) -> TypeReference {
2569 TypeReference {
Nika Layzell27726662017-10-24 23:16:35 -04002570 and_token: _i . and_token,
2571 lifetime: _i . lifetime,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002572 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002573 }
2574}
2575
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002576pub fn fold_type_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeSlice) -> TypeSlice {
2577 TypeSlice {
2578 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002579 bracket_token: _i . bracket_token,
2580 }
2581}
2582
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002583pub fn fold_type_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTraitObject) -> TypeTraitObject {
2584 TypeTraitObject {
David Tolnaye45b59f2017-12-25 18:44:49 -05002585 dyn_token: _i . dyn_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002586 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002587 }
2588}
2589
David Tolnay05362582017-12-26 01:33:57 -05002590pub fn fold_type_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTuple) -> TypeTuple {
2591 TypeTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002592 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002593 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002594 lone_comma: _i . lone_comma,
2595 }
2596}
2597
Nika Layzella6f46c42017-10-26 15:26:16 -04002598pub fn fold_un_op<V: Folder + ?Sized>(_visitor: &mut V, _i: UnOp) -> UnOp {
Nika Layzell27726662017-10-24 23:16:35 -04002599 use ::UnOp::*;
2600 match _i {
2601 Deref(_binding_0, ) => {
2602 Deref (
2603 _binding_0,
2604 )
2605 }
2606 Not(_binding_0, ) => {
2607 Not (
2608 _binding_0,
2609 )
2610 }
2611 Neg(_binding_0, ) => {
2612 Neg (
2613 _binding_0,
2614 )
2615 }
2616 }
2617}
2618
Nika Layzella6f46c42017-10-26 15:26:16 -04002619pub fn fold_unsafety<V: Folder + ?Sized>(_visitor: &mut V, _i: Unsafety) -> Unsafety {
Nika Layzell27726662017-10-24 23:16:35 -04002620 use ::Unsafety::*;
2621 match _i {
2622 Unsafe(_binding_0, ) => {
2623 Unsafe (
2624 _binding_0,
2625 )
2626 }
2627 Normal => { Normal }
2628 }
2629}
David Tolnay5f332a92017-12-26 00:42:45 -05002630# [ cfg ( feature = "full" ) ]
2631pub fn fold_use_glob<V: Folder + ?Sized>(_visitor: &mut V, _i: UseGlob) -> UseGlob {
2632 UseGlob {
2633 star_token: _i . star_token,
2634 }
2635}
2636# [ cfg ( feature = "full" ) ]
2637pub fn fold_use_list<V: Folder + ?Sized>(_visitor: &mut V, _i: UseList) -> UseList {
2638 UseList {
2639 brace_token: _i . brace_token,
2640 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_use_tree(it) }),
2641 }
2642}
2643# [ cfg ( feature = "full" ) ]
2644pub fn fold_use_path<V: Folder + ?Sized>(_visitor: &mut V, _i: UsePath) -> UsePath {
2645 UsePath {
2646 ident: _visitor.fold_ident(_i . ident),
2647 rename: _i . rename,
2648 }
2649}
2650# [ cfg ( feature = "full" ) ]
2651pub fn fold_use_tree<V: Folder + ?Sized>(_visitor: &mut V, _i: UseTree) -> UseTree {
2652 use ::UseTree::*;
2653 match _i {
2654 Path(_binding_0, ) => {
2655 Path (
2656 _visitor.fold_use_path(_binding_0),
2657 )
2658 }
2659 Glob(_binding_0, ) => {
2660 Glob (
2661 _visitor.fold_use_glob(_binding_0),
2662 )
2663 }
2664 List(_binding_0, ) => {
2665 List (
2666 _visitor.fold_use_list(_binding_0),
2667 )
2668 }
2669 }
2670}
Nika Layzell27726662017-10-24 23:16:35 -04002671
Nika Layzella6f46c42017-10-26 15:26:16 -04002672pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002673 Variant {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002674 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002675 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2676 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002677 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002678 eq_token: _i . eq_token,
2679 }
2680}
2681
Nika Layzella6f46c42017-10-26 15:26:16 -04002682pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002683 use ::VariantData::*;
2684 match _i {
2685 Struct(_binding_0, _binding_1, ) => {
2686 Struct (
2687 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2688 _binding_1,
2689 )
2690 }
2691 Tuple(_binding_0, _binding_1, ) => {
2692 Tuple (
2693 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2694 _binding_1,
2695 )
2696 }
2697 Unit => { Unit }
2698 }
2699}
Nika Layzell27726662017-10-24 23:16:35 -04002700
Nika Layzella6f46c42017-10-26 15:26:16 -04002701pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002702 VisCrate {
2703 pub_token: _i . pub_token,
2704 paren_token: _i . paren_token,
2705 crate_token: _i . crate_token,
2706 }
2707}
2708
Nika Layzella6f46c42017-10-26 15:26:16 -04002709pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002710 VisInherited {
2711 }
2712}
2713
Nika Layzella6f46c42017-10-26 15:26:16 -04002714pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002715 VisPublic {
2716 pub_token: _i . pub_token,
2717 }
2718}
2719
Nika Layzella6f46c42017-10-26 15:26:16 -04002720pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002721 VisRestricted {
2722 pub_token: _i . pub_token,
2723 paren_token: _i . paren_token,
2724 in_token: _i . in_token,
2725 path: Box::new(_visitor.fold_path(* _i . path)),
2726 }
2727}
2728
Nika Layzella6f46c42017-10-26 15:26:16 -04002729pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002730 use ::Visibility::*;
2731 match _i {
2732 Public(_binding_0, ) => {
2733 Public (
2734 _visitor.fold_vis_public(_binding_0),
2735 )
2736 }
2737 Crate(_binding_0, ) => {
2738 Crate (
2739 _visitor.fold_vis_crate(_binding_0),
2740 )
2741 }
2742 Restricted(_binding_0, ) => {
2743 Restricted (
2744 _visitor.fold_vis_restricted(_binding_0),
2745 )
2746 }
2747 Inherited(_binding_0, ) => {
2748 Inherited (
2749 _visitor.fold_vis_inherited(_binding_0),
2750 )
2751 }
2752 }
2753}
2754
Nika Layzella6f46c42017-10-26 15:26:16 -04002755pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002756 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002757 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002758 bounded_ty: _visitor.fold_type(_i . bounded_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002759 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002760 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002761 }
2762}
2763
Nika Layzella6f46c42017-10-26 15:26:16 -04002764pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002765 WhereClause {
2766 where_token: _i . where_token,
2767 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2768 }
2769}
2770
Nika Layzella6f46c42017-10-26 15:26:16 -04002771pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002772 WhereEqPredicate {
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002773 lhs_ty: _visitor.fold_type(_i . lhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002774 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002775 rhs_ty: _visitor.fold_type(_i . rhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002776 }
2777}
2778
Nika Layzella6f46c42017-10-26 15:26:16 -04002779pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002780 use ::WherePredicate::*;
2781 match _i {
2782 BoundPredicate(_binding_0, ) => {
2783 BoundPredicate (
2784 _visitor.fold_where_bound_predicate(_binding_0),
2785 )
2786 }
2787 RegionPredicate(_binding_0, ) => {
2788 RegionPredicate (
2789 _visitor.fold_where_region_predicate(_binding_0),
2790 )
2791 }
2792 EqPredicate(_binding_0, ) => {
2793 EqPredicate (
2794 _visitor.fold_where_eq_predicate(_binding_0),
2795 )
2796 }
2797 }
2798}
2799
Nika Layzella6f46c42017-10-26 15:26:16 -04002800pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002801 WhereRegionPredicate {
2802 lifetime: _i . lifetime,
2803 colon_token: _i . colon_token,
2804 bounds: _i . bounds,
2805 }
2806}
2807