blob: dbb2b8bd2c67f14a8fdaf256c7b5a379e77124ee [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
David Tolnay0afc9b32017-12-27 13:38:24 -05007#![cfg_attr(rustfmt, rustfmt_skip)]
8
Nika Layzell27726662017-10-24 23:16:35 -04009// Unreachable code is generated sometimes without the full feature.
10#![allow(unreachable_code)]
David Tolnayf0d63bf2017-12-26 12:29:47 -050011#![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))]
Nika Layzell27726662017-10-24 23:16:35 -040012
Nika Layzella6f46c42017-10-26 15:26:16 -040013use *;
David Tolnayc5ab8c62017-12-26 16:43:39 -050014use delimited::Delimited;
David Tolnay98942562017-12-26 21:24:35 -050015use proc_macro2::Span;
Nika Layzell27726662017-10-24 23:16:35 -040016
17trait FoldHelper {
18 type Item;
19 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item;
20}
21
22impl<T> FoldHelper for Vec<T> {
23 type Item = T;
24 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
25 self.into_iter().map(f).collect()
26 }
27}
28
29impl<T, U> FoldHelper for Delimited<T, U> {
30 type Item = T;
31 fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
32 self.into_iter().map(|elem| {
33 let (t, u) = elem.into_tuple();
34 (f(t), u)
35 }).collect::<Vec<(T, Option<U>)>>().into()
36 }
37}
38
Nika Layzell4ab8d6e2017-10-26 09:45:49 -040039
40#[cfg(feature = "full")]
41macro_rules! full {
42 ($e:expr) => { $e }
43}
44
45#[cfg(not(feature = "full"))]
46macro_rules! full {
47 ($e:expr) => { unreachable!() }
48}
49
50
Nika Layzell27726662017-10-24 23:16:35 -040051/// AST->AST fold.
52///
53/// Each method of the Folder trait is a hook to be potentially overridden. Each
54/// method's default implementation recursively visits the substructure of the
55/// input via the `walk` functions, which perform an "identity fold", that
56/// is, they return the same structure that they are given (for example the
57/// `fold_file` method by default calls `fold::walk_file`).
58///
59/// If you want to ensure that your code handles every variant
60/// explicitly, you need to override each method. (And you also need
61/// to monitor future changes to `Folder` in case a new method with a
62/// new default implementation gets introduced.)
63pub trait Folder {
64
Nika Layzella6f46c42017-10-26 15:26:16 -040065fn fold_abi(&mut self, i: Abi) -> Abi { fold_abi(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040066
Nika Layzella6f46c42017-10-26 15:26:16 -040067fn fold_abi_kind(&mut self, i: AbiKind) -> AbiKind { fold_abi_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040068
Nika Layzellc08227a2017-12-04 16:30:17 -050069fn fold_angle_bracketed_generic_arguments(&mut self, i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments { fold_angle_bracketed_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040070# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040071fn fold_arg_captured(&mut self, i: ArgCaptured) -> ArgCaptured { fold_arg_captured(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040072# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040073fn fold_arg_self(&mut self, i: ArgSelf) -> ArgSelf { fold_arg_self(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040074# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040075fn fold_arg_self_ref(&mut self, i: ArgSelfRef) -> ArgSelfRef { fold_arg_self_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040076# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040077fn fold_arm(&mut self, i: Arm) -> Arm { fold_arm(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040078
Nika Layzella6f46c42017-10-26 15:26:16 -040079fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle { fold_attr_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040080
Nika Layzella6f46c42017-10-26 15:26:16 -040081fn fold_attribute(&mut self, i: Attribute) -> Attribute { fold_attribute(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040082
Nika Layzella6f46c42017-10-26 15:26:16 -040083fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg { fold_bare_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040084
Nika Layzella6f46c42017-10-26 15:26:16 -040085fn fold_bare_fn_arg_name(&mut self, i: BareFnArgName) -> BareFnArgName { fold_bare_fn_arg_name(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040086
David Tolnayfd6bf5c2017-11-12 09:41:14 -080087fn fold_bare_fn_type(&mut self, i: BareFnType) -> BareFnType { fold_bare_fn_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040088
Nika Layzella6f46c42017-10-26 15:26:16 -040089fn fold_bin_op(&mut self, i: BinOp) -> BinOp { fold_bin_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040090# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040091fn fold_binding_mode(&mut self, i: BindingMode) -> BindingMode { fold_binding_mode(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040092# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040093fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040094
Nika Layzella6f46c42017-10-26 15:26:16 -040095fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040096
Nika Layzella6f46c42017-10-26 15:26:16 -040097fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040098
Nika Layzella6f46c42017-10-26 15:26:16 -040099fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400100
Nika Layzella6f46c42017-10-26 15:26:16 -0400101fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400102# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400103fn fold_capture_by(&mut self, i: CaptureBy) -> CaptureBy { fold_capture_by(self, i) }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500104
105fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400106# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400107fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400108# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400109fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400110
Nika Layzella6f46c42017-10-26 15:26:16 -0400111fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400112
Nika Layzella6f46c42017-10-26 15:26:16 -0400113fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400115fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400116# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400117fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400118# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400119fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400120# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400121fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400122
Nika Layzella6f46c42017-10-26 15:26:16 -0400123fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400124# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400125fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400126# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400127fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400128# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400129fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400130
Nika Layzella6f46c42017-10-26 15:26:16 -0400131fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400132
Nika Layzella6f46c42017-10-26 15:26:16 -0400133fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400135fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400136# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400137fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400138# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400139fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400140# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400141fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400142# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400143fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400144
Nika Layzella6f46c42017-10-26 15:26:16 -0400145fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400146# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400147fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400148# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400149fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400150# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400151fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400152
Nika Layzella6f46c42017-10-26 15:26:16 -0400153fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400154
Nika Layzella6f46c42017-10-26 15:26:16 -0400155fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400156# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400157fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400158# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400159fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400160# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400161fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400162
Nika Layzella6f46c42017-10-26 15:26:16 -0400163fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400164
Nika Layzella6f46c42017-10-26 15:26:16 -0400165fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400166# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400167fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400169fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400170# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400171fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400172# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400173fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400174# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400175fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400176# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400177fn fold_expr_tup_field(&mut self, i: ExprTupField) -> ExprTupField { fold_expr_tup_field(self, i) }
David Tolnay05362582017-12-26 01:33:57 -0500178# [ cfg ( feature = "full" ) ]
179fn fold_expr_tuple(&mut self, i: ExprTuple) -> ExprTuple { fold_expr_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400180
Nika Layzella6f46c42017-10-26 15:26:16 -0400181fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400182
Nika Layzella6f46c42017-10-26 15:26:16 -0400183fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400184# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -0500185fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe { fold_expr_unsafe(self, i) }
186# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400187fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400188# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400189fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400190# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400191fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400192
Nika Layzella6f46c42017-10-26 15:26:16 -0400193fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400195fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400197fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400199fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400200# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400201fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400202# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400203fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400204# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400205fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400206# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400207fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400208# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400209fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
David Tolnay199bcbb2017-11-12 10:33:52 -0800210# [ cfg ( feature = "full" ) ]
211fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType { fold_foreign_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400212
Nika Layzellc08227a2017-12-04 16:30:17 -0500213fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument { fold_generic_argument(self, i) }
Nika Layzell357885a2017-12-04 15:47:07 -0500214
David Tolnayc2f1aba2017-11-12 20:29:22 -0800215fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam { fold_generic_param(self, i) }
216
Nika Layzella6f46c42017-10-26 15:26:16 -0400217fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500218
219fn fold_ident(&mut self, i: Ident) -> Ident { fold_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400220# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400221fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400222# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400223fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400224# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -0800225fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro { fold_impl_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400226# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400227fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400228# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400229fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400230# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400231fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400232# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400233fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400235fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400236# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400237fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400238# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400239fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400240# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400241fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400242# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400243fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400244# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400245fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400246# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400247fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400248# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400249fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400250# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800251fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400252# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -0800253fn fold_item_macro2(&mut self, i: ItemMacro2) -> ItemMacro2 { fold_item_macro2(self, i) }
254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400255fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400256# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400257fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400258# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400259fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400260# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400261fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400262# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800263fn fold_item_type(&mut self, i: ItemType) -> ItemType { fold_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400264# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400265fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400266# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400267fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400268
Nika Layzella6f46c42017-10-26 15:26:16 -0400269fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400270# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400271fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400272# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400273fn fold_mac_stmt_style(&mut self, i: MacStmtStyle) -> MacStmtStyle { fold_mac_stmt_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400274
David Tolnaydecf28d2017-11-11 11:56:45 -0800275fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
276
Nika Layzella6f46c42017-10-26 15:26:16 -0400277fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400278
Nika Layzella6f46c42017-10-26 15:26:16 -0400279fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400280
Nika Layzella6f46c42017-10-26 15:26:16 -0400281fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400282# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400283fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400284
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800285fn fold_mut_type(&mut self, i: MutType) -> MutType { fold_mut_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400286
Nika Layzella6f46c42017-10-26 15:26:16 -0400287fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400288
Nika Layzella6f46c42017-10-26 15:26:16 -0400289fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400290
Nika Layzellc08227a2017-12-04 16:30:17 -0500291fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400292# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400293fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400294# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400295fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400296# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400297fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400298# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400299fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400300# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400301fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400302# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400303fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400304# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400305fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400306# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400307fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400308# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400309fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400310# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400311fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400312# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400313fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400314# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400315fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400316
Nika Layzella6f46c42017-10-26 15:26:16 -0400317fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzellc08227a2017-12-04 16:30:17 -0500318
319fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments { fold_path_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400320
Nika Layzella6f46c42017-10-26 15:26:16 -0400321fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400322
Nika Layzella6f46c42017-10-26 15:26:16 -0400323fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400324
Nika Layzella6f46c42017-10-26 15:26:16 -0400325fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400326# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400327fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
David Tolnayf93b90d2017-11-11 19:21:26 -0800328
329fn fold_return_type(&mut self, i: ReturnType) -> ReturnType { fold_return_type(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500330
331fn fold_span(&mut self, i: Span) -> Span { fold_span(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400332# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400333fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400334
Nika Layzella6f46c42017-10-26 15:26:16 -0400335fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400336# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400337fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400338# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400339fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400340# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800341fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400342# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400343fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400344# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400345fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400346
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800347fn fold_type(&mut self, i: Type) -> Type { fold_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400348
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800349fn fold_type_array(&mut self, i: TypeArray) -> TypeArray { fold_type_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400350
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800351fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn { fold_type_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400352
Nika Layzella6f46c42017-10-26 15:26:16 -0400353fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400354
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800355fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup { fold_type_group(self, i) }
356
357fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait { fold_type_impl_trait(self, i) }
358
359fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer { fold_type_infer(self, i) }
360
361fn fold_type_never(&mut self, i: TypeNever) -> TypeNever { fold_type_never(self, i) }
362
363fn fold_type_param(&mut self, i: TypeParam) -> TypeParam { fold_type_param(self, i) }
364
365fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound { fold_type_param_bound(self, i) }
366
367fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen { fold_type_paren(self, i) }
368
369fn fold_type_path(&mut self, i: TypePath) -> TypePath { fold_type_path(self, i) }
370
371fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr { fold_type_ptr(self, i) }
372
David Tolnay0a89b4d2017-11-13 00:55:45 -0800373fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference { fold_type_reference(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800374
375fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice { fold_type_slice(self, i) }
376
377fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject { fold_type_trait_object(self, i) }
378
David Tolnay05362582017-12-26 01:33:57 -0500379fn fold_type_tuple(&mut self, i: TypeTuple) -> TypeTuple { fold_type_tuple(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800380
Nika Layzella6f46c42017-10-26 15:26:16 -0400381fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400382
Nika Layzella6f46c42017-10-26 15:26:16 -0400383fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
David Tolnay5f332a92017-12-26 00:42:45 -0500384# [ cfg ( feature = "full" ) ]
385fn fold_use_glob(&mut self, i: UseGlob) -> UseGlob { fold_use_glob(self, i) }
386# [ cfg ( feature = "full" ) ]
387fn fold_use_list(&mut self, i: UseList) -> UseList { fold_use_list(self, i) }
388# [ cfg ( feature = "full" ) ]
389fn fold_use_path(&mut self, i: UsePath) -> UsePath { fold_use_path(self, i) }
390# [ cfg ( feature = "full" ) ]
391fn fold_use_tree(&mut self, i: UseTree) -> UseTree { fold_use_tree(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400392
Nika Layzella6f46c42017-10-26 15:26:16 -0400393fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400394
Nika Layzella6f46c42017-10-26 15:26:16 -0400395fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400396
Nika Layzella6f46c42017-10-26 15:26:16 -0400397fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400398
Nika Layzella6f46c42017-10-26 15:26:16 -0400399fn fold_vis_inherited(&mut self, i: VisInherited) -> VisInherited { fold_vis_inherited(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400400
Nika Layzella6f46c42017-10-26 15:26:16 -0400401fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400402
Nika Layzella6f46c42017-10-26 15:26:16 -0400403fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted { fold_vis_restricted(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400404
Nika Layzella6f46c42017-10-26 15:26:16 -0400405fn fold_visibility(&mut self, i: Visibility) -> Visibility { fold_visibility(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400406
Nika Layzella6f46c42017-10-26 15:26:16 -0400407fn fold_where_bound_predicate(&mut self, i: WhereBoundPredicate) -> WhereBoundPredicate { fold_where_bound_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400408
Nika Layzella6f46c42017-10-26 15:26:16 -0400409fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause { fold_where_clause(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400410
Nika Layzella6f46c42017-10-26 15:26:16 -0400411fn fold_where_eq_predicate(&mut self, i: WhereEqPredicate) -> WhereEqPredicate { fold_where_eq_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400412
Nika Layzella6f46c42017-10-26 15:26:16 -0400413fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate { fold_where_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400414
Nika Layzella6f46c42017-10-26 15:26:16 -0400415fn fold_where_region_predicate(&mut self, i: WhereRegionPredicate) -> WhereRegionPredicate { fold_where_region_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400416
417}
418
419
Nika Layzella6f46c42017-10-26 15:26:16 -0400420pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
Nika Layzell27726662017-10-24 23:16:35 -0400421 Abi {
422 extern_token: _i . extern_token,
423 kind: _visitor.fold_abi_kind(_i . kind),
424 }
425}
426
Nika Layzella6f46c42017-10-26 15:26:16 -0400427pub fn fold_abi_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: AbiKind) -> AbiKind {
Nika Layzell27726662017-10-24 23:16:35 -0400428 use ::AbiKind::*;
429 match _i {
430 Named(_binding_0, ) => {
431 Named (
432 _binding_0,
433 )
434 }
435 Default => { Default }
436 }
437}
438
Nika Layzellc08227a2017-12-04 16:30:17 -0500439pub fn fold_angle_bracketed_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments {
440 AngleBracketedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -0400441 turbofish: _i . turbofish,
442 lt_token: _i . lt_token,
Nika Layzellc08227a2017-12-04 16:30:17 -0500443 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_generic_argument(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400444 gt_token: _i . gt_token,
445 }
446}
447# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400448pub fn fold_arg_captured<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgCaptured) -> ArgCaptured {
Nika Layzell27726662017-10-24 23:16:35 -0400449 ArgCaptured {
450 pat: _visitor.fold_pat(_i . pat),
451 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800452 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400453 }
454}
455# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400456pub fn fold_arg_self<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelf) -> ArgSelf {
Nika Layzell27726662017-10-24 23:16:35 -0400457 ArgSelf {
458 mutbl: _visitor.fold_mutability(_i . mutbl),
459 self_token: _i . self_token,
460 }
461}
462# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400463pub fn fold_arg_self_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelfRef) -> ArgSelfRef {
Nika Layzell27726662017-10-24 23:16:35 -0400464 ArgSelfRef {
465 and_token: _i . and_token,
466 self_token: _i . self_token,
467 lifetime: _i . lifetime,
468 mutbl: _visitor.fold_mutability(_i . mutbl),
469 }
470}
471# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400472pub fn fold_arm<V: Folder + ?Sized>(_visitor: &mut V, _i: Arm) -> Arm {
Nika Layzell27726662017-10-24 23:16:35 -0400473 Arm {
474 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
475 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
476 if_token: _i . if_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400477 guard: (_i . guard).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400478 rocket_token: _i . rocket_token,
479 body: Box::new(_visitor.fold_expr(* _i . body)),
480 comma: _i . comma,
481 }
482}
483
Nika Layzella6f46c42017-10-26 15:26:16 -0400484pub fn fold_attr_style<V: Folder + ?Sized>(_visitor: &mut V, _i: AttrStyle) -> AttrStyle {
Nika Layzell27726662017-10-24 23:16:35 -0400485 use ::AttrStyle::*;
486 match _i {
487 Outer => { Outer }
488 Inner(_binding_0, ) => {
489 Inner (
490 _binding_0,
491 )
492 }
493 }
494}
495
Nika Layzella6f46c42017-10-26 15:26:16 -0400496pub fn fold_attribute<V: Folder + ?Sized>(_visitor: &mut V, _i: Attribute) -> Attribute {
Nika Layzell27726662017-10-24 23:16:35 -0400497 Attribute {
498 style: _visitor.fold_attr_style(_i . style),
499 pound_token: _i . pound_token,
500 bracket_token: _i . bracket_token,
501 path: _visitor.fold_path(_i . path),
502 tts: _i . tts,
503 is_sugared_doc: _i . is_sugared_doc,
504 }
505}
506
Nika Layzella6f46c42017-10-26 15:26:16 -0400507pub fn fold_bare_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArg) -> BareFnArg {
Nika Layzell27726662017-10-24 23:16:35 -0400508 BareFnArg {
509 name: _i . name,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800510 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400511 }
512}
513
Nika Layzella6f46c42017-10-26 15:26:16 -0400514pub fn fold_bare_fn_arg_name<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArgName) -> BareFnArgName {
Nika Layzell27726662017-10-24 23:16:35 -0400515 use ::BareFnArgName::*;
516 match _i {
517 Named(_binding_0, ) => {
518 Named (
Nika Layzellefb83ba2017-12-19 18:23:55 -0500519 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -0400520 )
521 }
522 Wild(_binding_0, ) => {
523 Wild (
524 _binding_0,
525 )
526 }
527 }
528}
529
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800530pub fn fold_bare_fn_type<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnType) -> BareFnType {
531 BareFnType {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400532 lifetimes: (_i . lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400533 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400534 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400535 fn_token: _i . fn_token,
536 paren_token: _i . paren_token,
537 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_bare_fn_arg(it) }),
538 variadic: _i . variadic,
David Tolnayf93b90d2017-11-11 19:21:26 -0800539 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -0400540 }
541}
542
Nika Layzella6f46c42017-10-26 15:26:16 -0400543pub fn fold_bin_op<V: Folder + ?Sized>(_visitor: &mut V, _i: BinOp) -> BinOp {
Nika Layzell27726662017-10-24 23:16:35 -0400544 use ::BinOp::*;
545 match _i {
546 Add(_binding_0, ) => {
547 Add (
548 _binding_0,
549 )
550 }
551 Sub(_binding_0, ) => {
552 Sub (
553 _binding_0,
554 )
555 }
556 Mul(_binding_0, ) => {
557 Mul (
558 _binding_0,
559 )
560 }
561 Div(_binding_0, ) => {
562 Div (
563 _binding_0,
564 )
565 }
566 Rem(_binding_0, ) => {
567 Rem (
568 _binding_0,
569 )
570 }
571 And(_binding_0, ) => {
572 And (
573 _binding_0,
574 )
575 }
576 Or(_binding_0, ) => {
577 Or (
578 _binding_0,
579 )
580 }
581 BitXor(_binding_0, ) => {
582 BitXor (
583 _binding_0,
584 )
585 }
586 BitAnd(_binding_0, ) => {
587 BitAnd (
588 _binding_0,
589 )
590 }
591 BitOr(_binding_0, ) => {
592 BitOr (
593 _binding_0,
594 )
595 }
596 Shl(_binding_0, ) => {
597 Shl (
598 _binding_0,
599 )
600 }
601 Shr(_binding_0, ) => {
602 Shr (
603 _binding_0,
604 )
605 }
606 Eq(_binding_0, ) => {
607 Eq (
608 _binding_0,
609 )
610 }
611 Lt(_binding_0, ) => {
612 Lt (
613 _binding_0,
614 )
615 }
616 Le(_binding_0, ) => {
617 Le (
618 _binding_0,
619 )
620 }
621 Ne(_binding_0, ) => {
622 Ne (
623 _binding_0,
624 )
625 }
626 Ge(_binding_0, ) => {
627 Ge (
628 _binding_0,
629 )
630 }
631 Gt(_binding_0, ) => {
632 Gt (
633 _binding_0,
634 )
635 }
636 AddEq(_binding_0, ) => {
637 AddEq (
638 _binding_0,
639 )
640 }
641 SubEq(_binding_0, ) => {
642 SubEq (
643 _binding_0,
644 )
645 }
646 MulEq(_binding_0, ) => {
647 MulEq (
648 _binding_0,
649 )
650 }
651 DivEq(_binding_0, ) => {
652 DivEq (
653 _binding_0,
654 )
655 }
656 RemEq(_binding_0, ) => {
657 RemEq (
658 _binding_0,
659 )
660 }
661 BitXorEq(_binding_0, ) => {
662 BitXorEq (
663 _binding_0,
664 )
665 }
666 BitAndEq(_binding_0, ) => {
667 BitAndEq (
668 _binding_0,
669 )
670 }
671 BitOrEq(_binding_0, ) => {
672 BitOrEq (
673 _binding_0,
674 )
675 }
676 ShlEq(_binding_0, ) => {
677 ShlEq (
678 _binding_0,
679 )
680 }
681 ShrEq(_binding_0, ) => {
682 ShrEq (
683 _binding_0,
684 )
685 }
686 }
687}
688# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400689pub fn fold_binding_mode<V: Folder + ?Sized>(_visitor: &mut V, _i: BindingMode) -> BindingMode {
Nika Layzell27726662017-10-24 23:16:35 -0400690 use ::BindingMode::*;
691 match _i {
692 ByRef(_binding_0, _binding_1, ) => {
693 ByRef (
694 _binding_0,
695 _visitor.fold_mutability(_binding_1),
696 )
697 }
698 ByValue(_binding_0, ) => {
699 ByValue (
700 _visitor.fold_mutability(_binding_0),
701 )
702 }
703 }
704}
705# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400706pub fn fold_block<V: Folder + ?Sized>(_visitor: &mut V, _i: Block) -> Block {
Nika Layzell27726662017-10-24 23:16:35 -0400707 Block {
708 brace_token: _i . brace_token,
709 stmts: FoldHelper::lift(_i . stmts, |it| { _visitor.fold_stmt(it) }),
710 }
711}
712
Nika Layzella6f46c42017-10-26 15:26:16 -0400713pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
Nika Layzell27726662017-10-24 23:16:35 -0400714 use ::Body::*;
715 match _i {
716 Enum(_binding_0, ) => {
717 Enum (
718 _visitor.fold_body_enum(_binding_0),
719 )
720 }
721 Struct(_binding_0, ) => {
722 Struct (
723 _visitor.fold_body_struct(_binding_0),
724 )
725 }
726 }
727}
728
Nika Layzella6f46c42017-10-26 15:26:16 -0400729pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
Nika Layzell27726662017-10-24 23:16:35 -0400730 BodyEnum {
731 enum_token: _i . enum_token,
732 brace_token: _i . brace_token,
733 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
734 }
735}
736
Nika Layzella6f46c42017-10-26 15:26:16 -0400737pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
Nika Layzell27726662017-10-24 23:16:35 -0400738 BodyStruct {
739 data: _visitor.fold_variant_data(_i . data),
740 struct_token: _i . struct_token,
741 semi_token: _i . semi_token,
742 }
743}
744
Nika Layzella6f46c42017-10-26 15:26:16 -0400745pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
Nika Layzell27726662017-10-24 23:16:35 -0400746 BoundLifetimes {
747 for_token: _i . for_token,
748 lt_token: _i . lt_token,
749 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
750 gt_token: _i . gt_token,
751 }
752}
753# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400754pub fn fold_capture_by<V: Folder + ?Sized>(_visitor: &mut V, _i: CaptureBy) -> CaptureBy {
Nika Layzell27726662017-10-24 23:16:35 -0400755 use ::CaptureBy::*;
756 match _i {
757 Value(_binding_0, ) => {
758 Value (
759 _binding_0,
760 )
761 }
762 Ref => { Ref }
763 }
764}
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500765
766pub fn fold_const_param<V: Folder + ?Sized>(_visitor: &mut V, _i: ConstParam) -> ConstParam {
767 ConstParam {
768 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
769 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -0500770 ident: _visitor.fold_ident(_i . ident),
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500771 colon_token: _i . colon_token,
772 ty: _visitor.fold_type(_i . ty),
773 eq_token: _i . eq_token,
774 default: (_i . default).map(|it| { _visitor.fold_expr(it) }),
775 }
776}
Nika Layzell27726662017-10-24 23:16:35 -0400777# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400778pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
Nika Layzell27726662017-10-24 23:16:35 -0400779 use ::Constness::*;
780 match _i {
781 Const(_binding_0, ) => {
782 Const (
783 _binding_0,
784 )
785 }
786 NotConst => { NotConst }
787 }
788}
789# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400790pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
Nika Layzell27726662017-10-24 23:16:35 -0400791 use ::Defaultness::*;
792 match _i {
793 Default(_binding_0, ) => {
794 Default (
795 _binding_0,
796 )
797 }
798 Final => { Final }
799 }
800}
801
Nika Layzella6f46c42017-10-26 15:26:16 -0400802pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
Nika Layzell27726662017-10-24 23:16:35 -0400803 DeriveInput {
Nika Layzellefb83ba2017-12-19 18:23:55 -0500804 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -0400805 vis: _visitor.fold_visibility(_i . vis),
806 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
807 generics: _visitor.fold_generics(_i . generics),
808 body: _visitor.fold_body(_i . body),
809 }
810}
811
Nika Layzella6f46c42017-10-26 15:26:16 -0400812pub fn fold_expr<V: Folder + ?Sized>(_visitor: &mut V, _i: Expr) -> Expr {
Nika Layzell27726662017-10-24 23:16:35 -0400813 Expr {
814 node: _visitor.fold_expr_kind(_i . node),
815 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
816 }
817}
818# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400819pub fn fold_expr_addr_of<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAddrOf) -> ExprAddrOf {
Nika Layzell27726662017-10-24 23:16:35 -0400820 ExprAddrOf {
821 and_token: _i . and_token,
822 mutbl: _visitor.fold_mutability(_i . mutbl),
823 expr: Box::new(_visitor.fold_expr(* _i . expr)),
824 }
825}
826# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400827pub fn fold_expr_array<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprArray) -> ExprArray {
Nika Layzell27726662017-10-24 23:16:35 -0400828 ExprArray {
829 exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
830 bracket_token: _i . bracket_token,
831 }
832}
833# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400834pub fn fold_expr_assign<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssign) -> ExprAssign {
Nika Layzell27726662017-10-24 23:16:35 -0400835 ExprAssign {
836 left: Box::new(_visitor.fold_expr(* _i . left)),
837 right: Box::new(_visitor.fold_expr(* _i . right)),
838 eq_token: _i . eq_token,
839 }
840}
841# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400842pub fn fold_expr_assign_op<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssignOp) -> ExprAssignOp {
Nika Layzell27726662017-10-24 23:16:35 -0400843 ExprAssignOp {
844 op: _visitor.fold_bin_op(_i . op),
845 left: Box::new(_visitor.fold_expr(* _i . left)),
846 right: Box::new(_visitor.fold_expr(* _i . right)),
847 }
848}
849
Nika Layzella6f46c42017-10-26 15:26:16 -0400850pub fn fold_expr_binary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBinary) -> ExprBinary {
Nika Layzell27726662017-10-24 23:16:35 -0400851 ExprBinary {
852 op: _visitor.fold_bin_op(_i . op),
853 left: Box::new(_visitor.fold_expr(* _i . left)),
854 right: Box::new(_visitor.fold_expr(* _i . right)),
855 }
856}
857# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400858pub fn fold_expr_block<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBlock) -> ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400859 ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400860 block: _visitor.fold_block(_i . block),
861 }
862}
863# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400864pub fn fold_expr_box<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBox) -> ExprBox {
Nika Layzell27726662017-10-24 23:16:35 -0400865 ExprBox {
866 expr: Box::new(_visitor.fold_expr(* _i . expr)),
867 box_token: _i . box_token,
868 }
869}
870# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400871pub fn fold_expr_break<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBreak) -> ExprBreak {
Nika Layzell27726662017-10-24 23:16:35 -0400872 ExprBreak {
873 label: _i . label,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400874 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400875 break_token: _i . break_token,
876 }
877}
878
Nika Layzella6f46c42017-10-26 15:26:16 -0400879pub fn fold_expr_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCall) -> ExprCall {
Nika Layzell27726662017-10-24 23:16:35 -0400880 ExprCall {
881 func: Box::new(_visitor.fold_expr(* _i . func)),
882 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
883 paren_token: _i . paren_token,
884 }
885}
886
Nika Layzella6f46c42017-10-26 15:26:16 -0400887pub fn fold_expr_cast<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCast) -> ExprCast {
Nika Layzell27726662017-10-24 23:16:35 -0400888 ExprCast {
889 expr: Box::new(_visitor.fold_expr(* _i . expr)),
890 as_token: _i . as_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800891 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -0400892 }
893}
894# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400895pub fn fold_expr_catch<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCatch) -> ExprCatch {
Nika Layzell27726662017-10-24 23:16:35 -0400896 ExprCatch {
897 do_token: _i . do_token,
898 catch_token: _i . catch_token,
899 block: _visitor.fold_block(_i . block),
900 }
901}
902# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400903pub fn fold_expr_closure<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprClosure) -> ExprClosure {
Nika Layzell27726662017-10-24 23:16:35 -0400904 ExprClosure {
905 capture: _visitor.fold_capture_by(_i . capture),
906 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
907 body: Box::new(_visitor.fold_expr(* _i . body)),
908 or1_token: _i . or1_token,
909 or2_token: _i . or2_token,
910 }
911}
912# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400913pub fn fold_expr_continue<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprContinue) -> ExprContinue {
Nika Layzell27726662017-10-24 23:16:35 -0400914 ExprContinue {
915 label: _i . label,
916 continue_token: _i . continue_token,
917 }
918}
919# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400920pub fn fold_expr_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprField) -> ExprField {
Nika Layzell27726662017-10-24 23:16:35 -0400921 ExprField {
922 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -0500923 field: _visitor.fold_ident(_i . field),
Nika Layzell27726662017-10-24 23:16:35 -0400924 dot_token: _i . dot_token,
925 }
926}
927# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400928pub fn fold_expr_for_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprForLoop) -> ExprForLoop {
Nika Layzell27726662017-10-24 23:16:35 -0400929 ExprForLoop {
930 pat: Box::new(_visitor.fold_pat(* _i . pat)),
931 expr: Box::new(_visitor.fold_expr(* _i . expr)),
932 body: _visitor.fold_block(_i . body),
933 label: _i . label,
934 for_token: _i . for_token,
935 colon_token: _i . colon_token,
936 in_token: _i . in_token,
937 }
938}
939
Nika Layzella6f46c42017-10-26 15:26:16 -0400940pub fn fold_expr_group<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprGroup) -> ExprGroup {
Nika Layzell27726662017-10-24 23:16:35 -0400941 ExprGroup {
942 expr: Box::new(_visitor.fold_expr(* _i . expr)),
943 group_token: _i . group_token,
944 }
945}
946# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400947pub fn fold_expr_if<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIf) -> ExprIf {
Nika Layzell27726662017-10-24 23:16:35 -0400948 ExprIf {
949 cond: Box::new(_visitor.fold_expr(* _i . cond)),
950 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400951 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400952 if_token: _i . if_token,
953 else_token: _i . else_token,
954 }
955}
956# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400957pub fn fold_expr_if_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIfLet) -> ExprIfLet {
Nika Layzell27726662017-10-24 23:16:35 -0400958 ExprIfLet {
959 pat: Box::new(_visitor.fold_pat(* _i . pat)),
960 expr: Box::new(_visitor.fold_expr(* _i . expr)),
961 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400962 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400963 if_token: _i . if_token,
964 let_token: _i . let_token,
965 eq_token: _i . eq_token,
966 else_token: _i . else_token,
967 }
968}
969# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400970pub fn fold_expr_in_place<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprInPlace) -> ExprInPlace {
Nika Layzell27726662017-10-24 23:16:35 -0400971 ExprInPlace {
972 place: Box::new(_visitor.fold_expr(* _i . place)),
973 kind: _visitor.fold_in_place_kind(_i . kind),
974 value: Box::new(_visitor.fold_expr(* _i . value)),
975 }
976}
977
Nika Layzella6f46c42017-10-26 15:26:16 -0400978pub fn fold_expr_index<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIndex) -> ExprIndex {
Nika Layzell27726662017-10-24 23:16:35 -0400979 ExprIndex {
980 expr: Box::new(_visitor.fold_expr(* _i . expr)),
981 index: Box::new(_visitor.fold_expr(* _i . index)),
982 bracket_token: _i . bracket_token,
983 }
984}
985
Nika Layzella6f46c42017-10-26 15:26:16 -0400986pub fn fold_expr_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprKind) -> ExprKind {
Nika Layzell27726662017-10-24 23:16:35 -0400987 use ::ExprKind::*;
988 match _i {
989 Box(_binding_0, ) => {
990 Box (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400991 full!(_visitor.fold_expr_box(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400992 )
993 }
994 InPlace(_binding_0, ) => {
995 InPlace (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400996 full!(_visitor.fold_expr_in_place(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400997 )
998 }
999 Array(_binding_0, ) => {
1000 Array (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001001 full!(_visitor.fold_expr_array(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001002 )
1003 }
1004 Call(_binding_0, ) => {
1005 Call (
1006 _visitor.fold_expr_call(_binding_0),
1007 )
1008 }
1009 MethodCall(_binding_0, ) => {
1010 MethodCall (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001011 full!(_visitor.fold_expr_method_call(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001012 )
1013 }
David Tolnay05362582017-12-26 01:33:57 -05001014 Tuple(_binding_0, ) => {
1015 Tuple (
1016 full!(_visitor.fold_expr_tuple(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001017 )
1018 }
1019 Binary(_binding_0, ) => {
1020 Binary (
1021 _visitor.fold_expr_binary(_binding_0),
1022 )
1023 }
1024 Unary(_binding_0, ) => {
1025 Unary (
1026 _visitor.fold_expr_unary(_binding_0),
1027 )
1028 }
1029 Lit(_binding_0, ) => {
1030 Lit (
1031 _binding_0,
1032 )
1033 }
1034 Cast(_binding_0, ) => {
1035 Cast (
1036 _visitor.fold_expr_cast(_binding_0),
1037 )
1038 }
1039 Type(_binding_0, ) => {
1040 Type (
1041 _visitor.fold_expr_type(_binding_0),
1042 )
1043 }
1044 If(_binding_0, ) => {
1045 If (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001046 full!(_visitor.fold_expr_if(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001047 )
1048 }
1049 IfLet(_binding_0, ) => {
1050 IfLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001051 full!(_visitor.fold_expr_if_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001052 )
1053 }
1054 While(_binding_0, ) => {
1055 While (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001056 full!(_visitor.fold_expr_while(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001057 )
1058 }
1059 WhileLet(_binding_0, ) => {
1060 WhileLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001061 full!(_visitor.fold_expr_while_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001062 )
1063 }
1064 ForLoop(_binding_0, ) => {
1065 ForLoop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001066 full!(_visitor.fold_expr_for_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001067 )
1068 }
1069 Loop(_binding_0, ) => {
1070 Loop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001071 full!(_visitor.fold_expr_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001072 )
1073 }
1074 Match(_binding_0, ) => {
1075 Match (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001076 full!(_visitor.fold_expr_match(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001077 )
1078 }
1079 Closure(_binding_0, ) => {
1080 Closure (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001081 full!(_visitor.fold_expr_closure(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001082 )
1083 }
Nika Layzell640832a2017-12-04 13:37:09 -05001084 Unsafe(_binding_0, ) => {
1085 Unsafe (
1086 full!(_visitor.fold_expr_unsafe(_binding_0)),
1087 )
1088 }
Nika Layzell27726662017-10-24 23:16:35 -04001089 Block(_binding_0, ) => {
1090 Block (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001091 full!(_visitor.fold_expr_block(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001092 )
1093 }
1094 Assign(_binding_0, ) => {
1095 Assign (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001096 full!(_visitor.fold_expr_assign(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001097 )
1098 }
1099 AssignOp(_binding_0, ) => {
1100 AssignOp (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001101 full!(_visitor.fold_expr_assign_op(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001102 )
1103 }
1104 Field(_binding_0, ) => {
1105 Field (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001106 full!(_visitor.fold_expr_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001107 )
1108 }
1109 TupField(_binding_0, ) => {
1110 TupField (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001111 full!(_visitor.fold_expr_tup_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001112 )
1113 }
1114 Index(_binding_0, ) => {
1115 Index (
1116 _visitor.fold_expr_index(_binding_0),
1117 )
1118 }
1119 Range(_binding_0, ) => {
1120 Range (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001121 full!(_visitor.fold_expr_range(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001122 )
1123 }
1124 Path(_binding_0, ) => {
1125 Path (
1126 _visitor.fold_expr_path(_binding_0),
1127 )
1128 }
1129 AddrOf(_binding_0, ) => {
1130 AddrOf (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001131 full!(_visitor.fold_expr_addr_of(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001132 )
1133 }
1134 Break(_binding_0, ) => {
1135 Break (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001136 full!(_visitor.fold_expr_break(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001137 )
1138 }
1139 Continue(_binding_0, ) => {
1140 Continue (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001141 full!(_visitor.fold_expr_continue(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001142 )
1143 }
1144 Ret(_binding_0, ) => {
1145 Ret (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001146 full!(_visitor.fold_expr_ret(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001147 )
1148 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001149 Macro(_binding_0, ) => {
1150 Macro (
1151 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001152 )
1153 }
1154 Struct(_binding_0, ) => {
1155 Struct (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001156 full!(_visitor.fold_expr_struct(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001157 )
1158 }
1159 Repeat(_binding_0, ) => {
1160 Repeat (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001161 full!(_visitor.fold_expr_repeat(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001162 )
1163 }
1164 Paren(_binding_0, ) => {
1165 Paren (
1166 _visitor.fold_expr_paren(_binding_0),
1167 )
1168 }
1169 Group(_binding_0, ) => {
1170 Group (
1171 _visitor.fold_expr_group(_binding_0),
1172 )
1173 }
1174 Try(_binding_0, ) => {
1175 Try (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001176 full!(_visitor.fold_expr_try(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001177 )
1178 }
1179 Catch(_binding_0, ) => {
1180 Catch (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001181 full!(_visitor.fold_expr_catch(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001182 )
1183 }
1184 Yield(_binding_0, ) => {
1185 Yield (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001186 full!(_visitor.fold_expr_yield(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001187 )
1188 }
1189 }
1190}
1191# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001192pub fn fold_expr_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprLoop) -> ExprLoop {
Nika Layzell27726662017-10-24 23:16:35 -04001193 ExprLoop {
1194 body: _visitor.fold_block(_i . body),
1195 label: _i . label,
1196 loop_token: _i . loop_token,
1197 colon_token: _i . colon_token,
1198 }
1199}
1200# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001201pub fn fold_expr_match<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMatch) -> ExprMatch {
Nika Layzell27726662017-10-24 23:16:35 -04001202 ExprMatch {
1203 match_token: _i . match_token,
1204 brace_token: _i . brace_token,
1205 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1206 arms: FoldHelper::lift(_i . arms, |it| { _visitor.fold_arm(it) }),
1207 }
1208}
1209# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001210pub fn fold_expr_method_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMethodCall) -> ExprMethodCall {
Nika Layzell27726662017-10-24 23:16:35 -04001211 ExprMethodCall {
1212 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001213 method: _visitor.fold_ident(_i . method),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001214 typarams: FoldHelper::lift(_i . typarams, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001215 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1216 paren_token: _i . paren_token,
1217 dot_token: _i . dot_token,
1218 lt_token: _i . lt_token,
1219 colon2_token: _i . colon2_token,
1220 gt_token: _i . gt_token,
1221 }
1222}
1223
Nika Layzella6f46c42017-10-26 15:26:16 -04001224pub fn fold_expr_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprParen) -> ExprParen {
Nika Layzell27726662017-10-24 23:16:35 -04001225 ExprParen {
1226 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1227 paren_token: _i . paren_token,
1228 }
1229}
1230
Nika Layzella6f46c42017-10-26 15:26:16 -04001231pub fn fold_expr_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprPath) -> ExprPath {
Nika Layzell27726662017-10-24 23:16:35 -04001232 ExprPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001233 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001234 path: _visitor.fold_path(_i . path),
1235 }
1236}
1237# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001238pub fn fold_expr_range<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRange) -> ExprRange {
Nika Layzell27726662017-10-24 23:16:35 -04001239 ExprRange {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001240 from: (_i . from).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
1241 to: (_i . to).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001242 limits: _visitor.fold_range_limits(_i . limits),
1243 }
1244}
1245# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001246pub fn fold_expr_repeat<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRepeat) -> ExprRepeat {
Nika Layzell27726662017-10-24 23:16:35 -04001247 ExprRepeat {
1248 bracket_token: _i . bracket_token,
1249 semi_token: _i . semi_token,
1250 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1251 amt: Box::new(_visitor.fold_expr(* _i . amt)),
1252 }
1253}
1254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001255pub fn fold_expr_ret<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRet) -> ExprRet {
Nika Layzell27726662017-10-24 23:16:35 -04001256 ExprRet {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001257 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001258 return_token: _i . return_token,
1259 }
1260}
1261# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001262pub fn fold_expr_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprStruct) -> ExprStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001263 ExprStruct {
1264 path: _visitor.fold_path(_i . path),
1265 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_value(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001266 rest: (_i . rest).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001267 dot2_token: _i . dot2_token,
1268 brace_token: _i . brace_token,
1269 }
1270}
1271# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001272pub fn fold_expr_try<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTry) -> ExprTry {
Nika Layzell27726662017-10-24 23:16:35 -04001273 ExprTry {
1274 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1275 question_token: _i . question_token,
1276 }
1277}
1278# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001279pub fn fold_expr_tup_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTupField) -> ExprTupField {
Nika Layzell27726662017-10-24 23:16:35 -04001280 ExprTupField {
1281 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1282 field: _i . field,
1283 dot_token: _i . dot_token,
1284 }
1285}
David Tolnay05362582017-12-26 01:33:57 -05001286# [ cfg ( feature = "full" ) ]
1287pub fn fold_expr_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTuple) -> ExprTuple {
1288 ExprTuple {
1289 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1290 paren_token: _i . paren_token,
1291 lone_comma: _i . lone_comma,
1292 }
1293}
Nika Layzell27726662017-10-24 23:16:35 -04001294
Nika Layzella6f46c42017-10-26 15:26:16 -04001295pub fn fold_expr_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprType) -> ExprType {
Nika Layzell27726662017-10-24 23:16:35 -04001296 ExprType {
1297 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1298 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001299 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001300 }
1301}
1302
Nika Layzella6f46c42017-10-26 15:26:16 -04001303pub fn fold_expr_unary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnary) -> ExprUnary {
Nika Layzell27726662017-10-24 23:16:35 -04001304 ExprUnary {
1305 op: _visitor.fold_un_op(_i . op),
1306 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1307 }
1308}
1309# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -05001310pub fn fold_expr_unsafe<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnsafe) -> ExprUnsafe {
1311 ExprUnsafe {
1312 unsafe_token: _i . unsafe_token,
1313 block: _visitor.fold_block(_i . block),
1314 }
1315}
1316# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001317pub fn fold_expr_while<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhile) -> ExprWhile {
Nika Layzell27726662017-10-24 23:16:35 -04001318 ExprWhile {
1319 cond: Box::new(_visitor.fold_expr(* _i . cond)),
1320 body: _visitor.fold_block(_i . body),
1321 label: _i . label,
1322 colon_token: _i . colon_token,
1323 while_token: _i . while_token,
1324 }
1325}
1326# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001327pub fn fold_expr_while_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhileLet) -> ExprWhileLet {
Nika Layzell27726662017-10-24 23:16:35 -04001328 ExprWhileLet {
1329 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1330 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1331 body: _visitor.fold_block(_i . body),
1332 label: _i . label,
1333 colon_token: _i . colon_token,
1334 while_token: _i . while_token,
1335 let_token: _i . let_token,
1336 eq_token: _i . eq_token,
1337 }
1338}
1339# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001340pub fn fold_expr_yield<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprYield) -> ExprYield {
Nika Layzell27726662017-10-24 23:16:35 -04001341 ExprYield {
1342 yield_token: _i . yield_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001343 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001344 }
1345}
1346
Nika Layzella6f46c42017-10-26 15:26:16 -04001347pub fn fold_field<V: Folder + ?Sized>(_visitor: &mut V, _i: Field) -> Field {
Nika Layzell27726662017-10-24 23:16:35 -04001348 Field {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001349 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001350 vis: _visitor.fold_visibility(_i . vis),
1351 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001352 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001353 colon_token: _i . colon_token,
1354 }
1355}
1356# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001357pub fn fold_field_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldPat) -> FieldPat {
Nika Layzell27726662017-10-24 23:16:35 -04001358 FieldPat {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001359 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001360 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1361 is_shorthand: _i . is_shorthand,
1362 colon_token: _i . colon_token,
1363 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1364 }
1365}
1366# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001367pub fn fold_field_value<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldValue) -> FieldValue {
Nika Layzell27726662017-10-24 23:16:35 -04001368 FieldValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001369 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001370 expr: _visitor.fold_expr(_i . expr),
1371 is_shorthand: _i . is_shorthand,
1372 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1373 colon_token: _i . colon_token,
1374 }
1375}
1376# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001377pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
Nika Layzell27726662017-10-24 23:16:35 -04001378 File {
1379 shebang: _i . shebang,
1380 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1381 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_item(it) }),
1382 }
1383}
1384# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001385pub fn fold_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: FnArg) -> FnArg {
Nika Layzell27726662017-10-24 23:16:35 -04001386 use ::FnArg::*;
1387 match _i {
1388 SelfRef(_binding_0, ) => {
1389 SelfRef (
1390 _visitor.fold_arg_self_ref(_binding_0),
1391 )
1392 }
1393 SelfValue(_binding_0, ) => {
1394 SelfValue (
1395 _visitor.fold_arg_self(_binding_0),
1396 )
1397 }
1398 Captured(_binding_0, ) => {
1399 Captured (
1400 _visitor.fold_arg_captured(_binding_0),
1401 )
1402 }
1403 Ignored(_binding_0, ) => {
1404 Ignored (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001405 _visitor.fold_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001406 )
1407 }
1408 }
1409}
1410# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001411pub fn fold_fn_decl<V: Folder + ?Sized>(_visitor: &mut V, _i: FnDecl) -> FnDecl {
Nika Layzell27726662017-10-24 23:16:35 -04001412 FnDecl {
1413 fn_token: _i . fn_token,
1414 paren_token: _i . paren_token,
1415 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08001416 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04001417 generics: _visitor.fold_generics(_i . generics),
1418 variadic: _i . variadic,
1419 dot_tokens: _i . dot_tokens,
1420 }
1421}
1422# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001423pub fn fold_foreign_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItem) -> ForeignItem {
David Tolnay8894f602017-11-11 12:11:04 -08001424 use ::ForeignItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001425 match _i {
1426 Fn(_binding_0, ) => {
1427 Fn (
1428 _visitor.fold_foreign_item_fn(_binding_0),
1429 )
1430 }
1431 Static(_binding_0, ) => {
1432 Static (
1433 _visitor.fold_foreign_item_static(_binding_0),
1434 )
1435 }
David Tolnay199bcbb2017-11-12 10:33:52 -08001436 Type(_binding_0, ) => {
1437 Type (
1438 _visitor.fold_foreign_item_type(_binding_0),
1439 )
1440 }
Nika Layzell27726662017-10-24 23:16:35 -04001441 }
1442}
1443# [ cfg ( feature = "full" ) ]
David Tolnay8894f602017-11-11 12:11:04 -08001444pub fn fold_foreign_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemFn) -> ForeignItemFn {
1445 ForeignItemFn {
1446 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1447 vis: _visitor.fold_visibility(_i . vis),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001448 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001449 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1450 semi_token: _i . semi_token,
1451 }
1452}
1453# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001454pub fn fold_foreign_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemStatic) -> ForeignItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001455 ForeignItemStatic {
David Tolnay8894f602017-11-11 12:11:04 -08001456 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1457 vis: _visitor.fold_visibility(_i . vis),
Nika Layzell27726662017-10-24 23:16:35 -04001458 static_token: _i . static_token,
Nika Layzell27726662017-10-24 23:16:35 -04001459 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001460 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001461 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001462 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnay8894f602017-11-11 12:11:04 -08001463 semi_token: _i . semi_token,
Nika Layzell27726662017-10-24 23:16:35 -04001464 }
1465}
David Tolnay199bcbb2017-11-12 10:33:52 -08001466# [ cfg ( feature = "full" ) ]
1467pub fn fold_foreign_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemType) -> ForeignItemType {
1468 ForeignItemType {
1469 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1470 vis: _visitor.fold_visibility(_i . vis),
1471 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001472 ident: _visitor.fold_ident(_i . ident),
David Tolnay199bcbb2017-11-12 10:33:52 -08001473 semi_token: _i . semi_token,
1474 }
1475}
Nika Layzell27726662017-10-24 23:16:35 -04001476
Nika Layzellc08227a2017-12-04 16:30:17 -05001477pub fn fold_generic_argument<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericArgument) -> GenericArgument {
1478 use ::GenericArgument::*;
Nika Layzell357885a2017-12-04 15:47:07 -05001479 match _i {
1480 Lifetime(_binding_0, ) => {
1481 Lifetime (
1482 _binding_0,
1483 )
1484 }
1485 Type(_binding_0, ) => {
1486 Type (
1487 _visitor.fold_type(_binding_0),
1488 )
1489 }
1490 TypeBinding(_binding_0, ) => {
1491 TypeBinding (
1492 _visitor.fold_type_binding(_binding_0),
1493 )
1494 }
Nika Layzellc680e612017-12-04 19:07:20 -05001495 Const(_binding_0, ) => {
1496 Const (
Nika Layzellce37f332017-12-05 12:01:22 -05001497 _visitor.fold_expr(_binding_0),
Nika Layzellc680e612017-12-04 19:07:20 -05001498 )
1499 }
Nika Layzell357885a2017-12-04 15:47:07 -05001500 }
1501}
1502
David Tolnayc2f1aba2017-11-12 20:29:22 -08001503pub fn fold_generic_param<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericParam) -> GenericParam {
1504 use ::GenericParam::*;
1505 match _i {
1506 Lifetime(_binding_0, ) => {
1507 Lifetime (
1508 _visitor.fold_lifetime_def(_binding_0),
1509 )
1510 }
1511 Type(_binding_0, ) => {
1512 Type (
1513 _visitor.fold_type_param(_binding_0),
1514 )
1515 }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -05001516 Const(_binding_0, ) => {
1517 Const (
1518 _visitor.fold_const_param(_binding_0),
1519 )
1520 }
David Tolnayc2f1aba2017-11-12 20:29:22 -08001521 }
1522}
1523
Nika Layzella6f46c42017-10-26 15:26:16 -04001524pub fn fold_generics<V: Folder + ?Sized>(_visitor: &mut V, _i: Generics) -> Generics {
Nika Layzell27726662017-10-24 23:16:35 -04001525 Generics {
1526 lt_token: _i . lt_token,
David Tolnayc2f1aba2017-11-12 20:29:22 -08001527 params: FoldHelper::lift(_i . params, |it| { _visitor.fold_generic_param(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001528 gt_token: _i . gt_token,
Nika Layzell27726662017-10-24 23:16:35 -04001529 where_clause: _visitor.fold_where_clause(_i . where_clause),
1530 }
1531}
Nika Layzellefb83ba2017-12-19 18:23:55 -05001532
1533pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
1534 _i
1535}
Nika Layzell27726662017-10-24 23:16:35 -04001536# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001537pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
David Tolnay857628c2017-11-11 12:25:31 -08001538 use ::ImplItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001539 match _i {
1540 Const(_binding_0, ) => {
1541 Const (
1542 _visitor.fold_impl_item_const(_binding_0),
1543 )
1544 }
1545 Method(_binding_0, ) => {
1546 Method (
1547 _visitor.fold_impl_item_method(_binding_0),
1548 )
1549 }
1550 Type(_binding_0, ) => {
1551 Type (
1552 _visitor.fold_impl_item_type(_binding_0),
1553 )
1554 }
1555 Macro(_binding_0, ) => {
1556 Macro (
David Tolnay857628c2017-11-11 12:25:31 -08001557 _visitor.fold_impl_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001558 )
1559 }
1560 }
1561}
1562# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -08001563pub fn fold_impl_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemConst) -> ImplItemConst {
1564 ImplItemConst {
1565 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1566 vis: _visitor.fold_visibility(_i . vis),
1567 defaultness: _visitor.fold_defaultness(_i . defaultness),
1568 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001569 ident: _visitor.fold_ident(_i . ident),
David Tolnay857628c2017-11-11 12:25:31 -08001570 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001571 ty: _visitor.fold_type(_i . ty),
David Tolnay857628c2017-11-11 12:25:31 -08001572 eq_token: _i . eq_token,
1573 expr: _visitor.fold_expr(_i . expr),
1574 semi_token: _i . semi_token,
1575 }
1576}
1577# [ cfg ( feature = "full" ) ]
1578pub fn fold_impl_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMacro) -> ImplItemMacro {
1579 ImplItemMacro {
1580 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1581 mac: _visitor.fold_macro(_i . mac),
1582 }
1583}
1584# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001585pub fn fold_impl_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMethod) -> ImplItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04001586 ImplItemMethod {
David Tolnay857628c2017-11-11 12:25:31 -08001587 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001588 vis: _visitor.fold_visibility(_i . vis),
1589 defaultness: _visitor.fold_defaultness(_i . defaultness),
1590 sig: _visitor.fold_method_sig(_i . sig),
1591 block: _visitor.fold_block(_i . block),
1592 }
1593}
1594# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001595pub fn fold_impl_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemType) -> ImplItemType {
Nika Layzell27726662017-10-24 23:16:35 -04001596 ImplItemType {
David Tolnay857628c2017-11-11 12:25:31 -08001597 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001598 vis: _visitor.fold_visibility(_i . vis),
1599 defaultness: _visitor.fold_defaultness(_i . defaultness),
1600 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001601 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05001602 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04001603 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001604 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001605 semi_token: _i . semi_token,
1606 }
1607}
1608# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001609pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
Nika Layzell27726662017-10-24 23:16:35 -04001610 use ::ImplPolarity::*;
1611 match _i {
1612 Positive => { Positive }
1613 Negative(_binding_0, ) => {
1614 Negative (
1615 _binding_0,
1616 )
1617 }
1618 }
1619}
1620# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001621pub fn fold_in_place_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: InPlaceKind) -> InPlaceKind {
Nika Layzell27726662017-10-24 23:16:35 -04001622 use ::InPlaceKind::*;
1623 match _i {
1624 Arrow(_binding_0, ) => {
1625 Arrow (
1626 _binding_0,
1627 )
1628 }
1629 In(_binding_0, ) => {
1630 In (
1631 _binding_0,
1632 )
1633 }
1634 }
1635}
1636# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001637pub fn fold_item<V: Folder + ?Sized>(_visitor: &mut V, _i: Item) -> Item {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001638 use ::Item::*;
Nika Layzell27726662017-10-24 23:16:35 -04001639 match _i {
1640 ExternCrate(_binding_0, ) => {
1641 ExternCrate (
1642 _visitor.fold_item_extern_crate(_binding_0),
1643 )
1644 }
1645 Use(_binding_0, ) => {
1646 Use (
1647 _visitor.fold_item_use(_binding_0),
1648 )
1649 }
1650 Static(_binding_0, ) => {
1651 Static (
1652 _visitor.fold_item_static(_binding_0),
1653 )
1654 }
1655 Const(_binding_0, ) => {
1656 Const (
1657 _visitor.fold_item_const(_binding_0),
1658 )
1659 }
1660 Fn(_binding_0, ) => {
1661 Fn (
1662 _visitor.fold_item_fn(_binding_0),
1663 )
1664 }
1665 Mod(_binding_0, ) => {
1666 Mod (
1667 _visitor.fold_item_mod(_binding_0),
1668 )
1669 }
1670 ForeignMod(_binding_0, ) => {
1671 ForeignMod (
1672 _visitor.fold_item_foreign_mod(_binding_0),
1673 )
1674 }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001675 Type(_binding_0, ) => {
1676 Type (
1677 _visitor.fold_item_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001678 )
1679 }
1680 Enum(_binding_0, ) => {
1681 Enum (
1682 _visitor.fold_item_enum(_binding_0),
1683 )
1684 }
1685 Struct(_binding_0, ) => {
1686 Struct (
1687 _visitor.fold_item_struct(_binding_0),
1688 )
1689 }
1690 Union(_binding_0, ) => {
1691 Union (
1692 _visitor.fold_item_union(_binding_0),
1693 )
1694 }
1695 Trait(_binding_0, ) => {
1696 Trait (
1697 _visitor.fold_item_trait(_binding_0),
1698 )
1699 }
1700 DefaultImpl(_binding_0, ) => {
1701 DefaultImpl (
1702 _visitor.fold_item_default_impl(_binding_0),
1703 )
1704 }
1705 Impl(_binding_0, ) => {
1706 Impl (
1707 _visitor.fold_item_impl(_binding_0),
1708 )
1709 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001710 Macro(_binding_0, ) => {
1711 Macro (
1712 _visitor.fold_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001713 )
1714 }
David Tolnay500d8322017-12-18 00:32:51 -08001715 Macro2(_binding_0, ) => {
1716 Macro2 (
1717 _visitor.fold_item_macro2(_binding_0),
1718 )
1719 }
Nika Layzell27726662017-10-24 23:16:35 -04001720 }
1721}
1722# [ cfg ( feature = "full" ) ]
David Tolnayc6b55bc2017-11-09 22:48:38 -08001723pub fn fold_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemConst) -> ItemConst {
1724 ItemConst {
1725 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1726 vis: _visitor.fold_visibility(_i . vis),
1727 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001728 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001729 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001730 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001731 eq_token: _i . eq_token,
1732 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1733 semi_token: _i . semi_token,
1734 }
1735}
1736# [ cfg ( feature = "full" ) ]
1737pub fn fold_item_default_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemDefaultImpl) -> ItemDefaultImpl {
1738 ItemDefaultImpl {
1739 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1740 unsafety: _visitor.fold_unsafety(_i . unsafety),
1741 impl_token: _i . impl_token,
1742 path: _visitor.fold_path(_i . path),
1743 for_token: _i . for_token,
1744 dot2_token: _i . dot2_token,
1745 brace_token: _i . brace_token,
1746 }
1747}
1748# [ cfg ( feature = "full" ) ]
1749pub fn fold_item_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemEnum) -> ItemEnum {
1750 ItemEnum {
1751 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1752 vis: _visitor.fold_visibility(_i . vis),
1753 enum_token: _i . enum_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001754 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001755 generics: _visitor.fold_generics(_i . generics),
1756 brace_token: _i . brace_token,
1757 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
1758 }
1759}
1760# [ cfg ( feature = "full" ) ]
1761pub fn fold_item_extern_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemExternCrate) -> ItemExternCrate {
1762 ItemExternCrate {
1763 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1764 vis: _visitor.fold_visibility(_i . vis),
1765 extern_token: _i . extern_token,
1766 crate_token: _i . crate_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001767 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001768 rename: _i . rename,
1769 semi_token: _i . semi_token,
1770 }
1771}
1772# [ cfg ( feature = "full" ) ]
1773pub fn fold_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemFn) -> ItemFn {
1774 ItemFn {
1775 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1776 vis: _visitor.fold_visibility(_i . vis),
1777 constness: _visitor.fold_constness(_i . constness),
1778 unsafety: _visitor.fold_unsafety(_i . unsafety),
1779 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
1780 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001781 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001782 block: Box::new(_visitor.fold_block(* _i . block)),
1783 }
1784}
1785# [ cfg ( feature = "full" ) ]
1786pub fn fold_item_foreign_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemForeignMod) -> ItemForeignMod {
1787 ItemForeignMod {
1788 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1789 abi: _visitor.fold_abi(_i . abi),
1790 brace_token: _i . brace_token,
1791 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_foreign_item(it) }),
1792 }
1793}
1794# [ cfg ( feature = "full" ) ]
1795pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
1796 ItemImpl {
1797 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1798 defaultness: _visitor.fold_defaultness(_i . defaultness),
1799 unsafety: _visitor.fold_unsafety(_i . unsafety),
1800 impl_token: _i . impl_token,
1801 generics: _visitor.fold_generics(_i . generics),
1802 trait_: _i . trait_,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001803 self_ty: Box::new(_visitor.fold_type(* _i . self_ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001804 brace_token: _i . brace_token,
1805 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_impl_item(it) }),
1806 }
1807}
1808# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08001809pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
1810 ItemMacro {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001811 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001812 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08001813 mac: _visitor.fold_macro(_i . mac),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001814 }
1815}
1816# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -08001817pub fn fold_item_macro2<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro2) -> ItemMacro2 {
1818 ItemMacro2 {
1819 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1820 vis: _visitor.fold_visibility(_i . vis),
1821 macro_token: _i . macro_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001822 ident: _visitor.fold_ident(_i . ident),
David Tolnay500d8322017-12-18 00:32:51 -08001823 args: _i . args,
1824 body: _i . body,
1825 }
1826}
1827# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001828pub fn fold_item_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMod) -> ItemMod {
Nika Layzell27726662017-10-24 23:16:35 -04001829 ItemMod {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001830 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001831 vis: _visitor.fold_visibility(_i . vis),
1832 mod_token: _i . mod_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001833 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001834 content: _i . content,
1835 semi: _i . semi,
1836 }
1837}
1838# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001839pub fn fold_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStatic) -> ItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001840 ItemStatic {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001841 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001842 vis: _visitor.fold_visibility(_i . vis),
1843 static_token: _i . static_token,
1844 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001845 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001846 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001847 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001848 eq_token: _i . eq_token,
1849 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1850 semi_token: _i . semi_token,
1851 }
1852}
1853# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001854pub fn fold_item_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStruct) -> ItemStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001855 ItemStruct {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001856 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001857 vis: _visitor.fold_visibility(_i . vis),
1858 struct_token: _i . struct_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001859 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001860 generics: _visitor.fold_generics(_i . generics),
1861 data: _visitor.fold_variant_data(_i . data),
1862 semi_token: _i . semi_token,
1863 }
1864}
1865# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001866pub fn fold_item_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTrait) -> ItemTrait {
Nika Layzell27726662017-10-24 23:16:35 -04001867 ItemTrait {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001868 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001869 vis: _visitor.fold_visibility(_i . vis),
1870 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell0dc6e632017-11-18 12:55:25 -05001871 auto_token: _i . auto_token,
Nika Layzell27726662017-10-24 23:16:35 -04001872 trait_token: _i . trait_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001873 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001874 generics: _visitor.fold_generics(_i . generics),
1875 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001876 supertraits: FoldHelper::lift(_i . supertraits, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001877 brace_token: _i . brace_token,
1878 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_trait_item(it) }),
1879 }
1880}
1881# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001882pub fn fold_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemType) -> ItemType {
1883 ItemType {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001884 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001885 vis: _visitor.fold_visibility(_i . vis),
1886 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001887 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001888 generics: _visitor.fold_generics(_i . generics),
1889 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001890 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001891 semi_token: _i . semi_token,
1892 }
1893}
1894# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001895pub fn fold_item_union<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUnion) -> ItemUnion {
Nika Layzell27726662017-10-24 23:16:35 -04001896 ItemUnion {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001897 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001898 vis: _visitor.fold_visibility(_i . vis),
1899 union_token: _i . union_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001900 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001901 generics: _visitor.fold_generics(_i . generics),
1902 data: _visitor.fold_variant_data(_i . data),
1903 }
1904}
1905# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001906pub fn fold_item_use<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUse) -> ItemUse {
Nika Layzell27726662017-10-24 23:16:35 -04001907 ItemUse {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001908 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001909 vis: _visitor.fold_visibility(_i . vis),
1910 use_token: _i . use_token,
David Tolnay5f332a92017-12-26 00:42:45 -05001911 leading_colon: _i . leading_colon,
1912 prefix: FoldHelper::lift(_i . prefix, |it| { _visitor.fold_ident(it) }),
1913 tree: _visitor.fold_use_tree(_i . tree),
Nika Layzell27726662017-10-24 23:16:35 -04001914 semi_token: _i . semi_token,
1915 }
1916}
1917
Nika Layzella6f46c42017-10-26 15:26:16 -04001918pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001919 LifetimeDef {
1920 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1921 lifetime: _i . lifetime,
1922 colon_token: _i . colon_token,
1923 bounds: _i . bounds,
1924 }
1925}
1926# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001927pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001928 Local {
1929 let_token: _i . let_token,
1930 colon_token: _i . colon_token,
1931 eq_token: _i . eq_token,
1932 semi_token: _i . semi_token,
1933 pat: Box::new(_visitor.fold_pat(* _i . pat)),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001934 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_type(* it)) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001935 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001936 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1937 }
1938}
Nika Layzell27726662017-10-24 23:16:35 -04001939# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001940pub fn fold_mac_stmt_style<V: Folder + ?Sized>(_visitor: &mut V, _i: MacStmtStyle) -> MacStmtStyle {
Nika Layzell27726662017-10-24 23:16:35 -04001941 use ::MacStmtStyle::*;
1942 match _i {
1943 Semicolon(_binding_0, ) => {
1944 Semicolon (
1945 _binding_0,
1946 )
1947 }
1948 Braces => { Braces }
1949 NoBraces => { NoBraces }
1950 }
1951}
1952
David Tolnaydecf28d2017-11-11 11:56:45 -08001953pub fn fold_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: Macro) -> Macro {
1954 Macro {
1955 path: _visitor.fold_path(_i . path),
1956 bang_token: _i . bang_token,
David Tolnaydecf28d2017-11-11 11:56:45 -08001957 tokens: _i . tokens,
1958 }
1959}
1960
Nika Layzella6f46c42017-10-26 15:26:16 -04001961pub fn fold_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001962 use ::MetaItem::*;
1963 match _i {
1964 Term(_binding_0, ) => {
1965 Term (
Nika Layzellefb83ba2017-12-19 18:23:55 -05001966 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001967 )
1968 }
1969 List(_binding_0, ) => {
1970 List (
1971 _visitor.fold_meta_item_list(_binding_0),
1972 )
1973 }
1974 NameValue(_binding_0, ) => {
1975 NameValue (
1976 _visitor.fold_meta_name_value(_binding_0),
1977 )
1978 }
1979 }
1980}
1981
Nika Layzella6f46c42017-10-26 15:26:16 -04001982pub fn fold_meta_item_list<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
Nika Layzell27726662017-10-24 23:16:35 -04001983 MetaItemList {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001984 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001985 paren_token: _i . paren_token,
1986 nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
1987 }
1988}
1989
Nika Layzella6f46c42017-10-26 15:26:16 -04001990pub fn fold_meta_name_value<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaNameValue) -> MetaNameValue {
Nika Layzell27726662017-10-24 23:16:35 -04001991 MetaNameValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001992 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001993 eq_token: _i . eq_token,
1994 lit: _i . lit,
1995 }
1996}
1997# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001998pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
Nika Layzell27726662017-10-24 23:16:35 -04001999 MethodSig {
2000 constness: _visitor.fold_constness(_i . constness),
2001 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002002 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002003 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002004 decl: _visitor.fold_fn_decl(_i . decl),
2005 }
2006}
2007
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002008pub fn fold_mut_type<V: Folder + ?Sized>(_visitor: &mut V, _i: MutType) -> MutType {
2009 MutType {
2010 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04002011 mutability: _visitor.fold_mutability(_i . mutability),
2012 }
2013}
2014
Nika Layzella6f46c42017-10-26 15:26:16 -04002015pub fn fold_mutability<V: Folder + ?Sized>(_visitor: &mut V, _i: Mutability) -> Mutability {
Nika Layzell27726662017-10-24 23:16:35 -04002016 use ::Mutability::*;
2017 match _i {
2018 Mutable(_binding_0, ) => {
2019 Mutable (
2020 _binding_0,
2021 )
2022 }
2023 Immutable => { Immutable }
2024 }
2025}
2026
Nika Layzella6f46c42017-10-26 15:26:16 -04002027pub fn fold_nested_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04002028 use ::NestedMetaItem::*;
2029 match _i {
2030 MetaItem(_binding_0, ) => {
2031 MetaItem (
2032 _visitor.fold_meta_item(_binding_0),
2033 )
2034 }
2035 Literal(_binding_0, ) => {
2036 Literal (
2037 _binding_0,
2038 )
2039 }
2040 }
2041}
2042
Nika Layzellc08227a2017-12-04 16:30:17 -05002043pub fn fold_parenthesized_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments {
2044 ParenthesizedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -04002045 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002046 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_type(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08002047 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04002048 }
2049}
2050# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002051pub fn fold_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: Pat) -> Pat {
Nika Layzell27726662017-10-24 23:16:35 -04002052 use ::Pat::*;
2053 match _i {
2054 Wild(_binding_0, ) => {
2055 Wild (
2056 _visitor.fold_pat_wild(_binding_0),
2057 )
2058 }
2059 Ident(_binding_0, ) => {
2060 Ident (
2061 _visitor.fold_pat_ident(_binding_0),
2062 )
2063 }
2064 Struct(_binding_0, ) => {
2065 Struct (
2066 _visitor.fold_pat_struct(_binding_0),
2067 )
2068 }
2069 TupleStruct(_binding_0, ) => {
2070 TupleStruct (
2071 _visitor.fold_pat_tuple_struct(_binding_0),
2072 )
2073 }
2074 Path(_binding_0, ) => {
2075 Path (
2076 _visitor.fold_pat_path(_binding_0),
2077 )
2078 }
2079 Tuple(_binding_0, ) => {
2080 Tuple (
2081 _visitor.fold_pat_tuple(_binding_0),
2082 )
2083 }
2084 Box(_binding_0, ) => {
2085 Box (
2086 _visitor.fold_pat_box(_binding_0),
2087 )
2088 }
2089 Ref(_binding_0, ) => {
2090 Ref (
2091 _visitor.fold_pat_ref(_binding_0),
2092 )
2093 }
2094 Lit(_binding_0, ) => {
2095 Lit (
2096 _visitor.fold_pat_lit(_binding_0),
2097 )
2098 }
2099 Range(_binding_0, ) => {
2100 Range (
2101 _visitor.fold_pat_range(_binding_0),
2102 )
2103 }
2104 Slice(_binding_0, ) => {
2105 Slice (
2106 _visitor.fold_pat_slice(_binding_0),
2107 )
2108 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002109 Macro(_binding_0, ) => {
2110 Macro (
2111 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002112 )
2113 }
2114 }
2115}
2116# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002117pub fn fold_pat_box<V: Folder + ?Sized>(_visitor: &mut V, _i: PatBox) -> PatBox {
Nika Layzell27726662017-10-24 23:16:35 -04002118 PatBox {
2119 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2120 box_token: _i . box_token,
2121 }
2122}
2123# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002124pub fn fold_pat_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: PatIdent) -> PatIdent {
Nika Layzell27726662017-10-24 23:16:35 -04002125 PatIdent {
2126 mode: _visitor.fold_binding_mode(_i . mode),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002127 ident: _visitor.fold_ident(_i . ident),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002128 subpat: (_i . subpat).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002129 at_token: _i . at_token,
2130 }
2131}
2132# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002133pub fn fold_pat_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: PatLit) -> PatLit {
Nika Layzell27726662017-10-24 23:16:35 -04002134 PatLit {
2135 expr: Box::new(_visitor.fold_expr(* _i . expr)),
2136 }
2137}
2138# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002139pub fn fold_pat_path<V: Folder + ?Sized>(_visitor: &mut V, _i: PatPath) -> PatPath {
Nika Layzell27726662017-10-24 23:16:35 -04002140 PatPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002141 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002142 path: _visitor.fold_path(_i . path),
2143 }
2144}
2145# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002146pub fn fold_pat_range<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRange) -> PatRange {
Nika Layzell27726662017-10-24 23:16:35 -04002147 PatRange {
2148 lo: Box::new(_visitor.fold_expr(* _i . lo)),
2149 hi: Box::new(_visitor.fold_expr(* _i . hi)),
2150 limits: _visitor.fold_range_limits(_i . limits),
2151 }
2152}
2153# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002154pub fn fold_pat_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRef) -> PatRef {
Nika Layzell27726662017-10-24 23:16:35 -04002155 PatRef {
2156 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2157 mutbl: _visitor.fold_mutability(_i . mutbl),
2158 and_token: _i . and_token,
2159 }
2160}
2161# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002162pub fn fold_pat_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: PatSlice) -> PatSlice {
Nika Layzell27726662017-10-24 23:16:35 -04002163 PatSlice {
2164 front: FoldHelper::lift(_i . front, |it| { _visitor.fold_pat(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002165 middle: (_i . middle).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002166 back: FoldHelper::lift(_i . back, |it| { _visitor.fold_pat(it) }),
2167 dot2_token: _i . dot2_token,
2168 comma_token: _i . comma_token,
2169 bracket_token: _i . bracket_token,
2170 }
2171}
2172# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002173pub fn fold_pat_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatStruct) -> PatStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002174 PatStruct {
2175 path: _visitor.fold_path(_i . path),
2176 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_pat(it) }),
2177 brace_token: _i . brace_token,
2178 dot2_token: _i . dot2_token,
2179 }
2180}
2181# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002182pub fn fold_pat_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTuple) -> PatTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002183 PatTuple {
2184 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
2185 dots_pos: _i . dots_pos,
2186 paren_token: _i . paren_token,
2187 dot2_token: _i . dot2_token,
2188 comma_token: _i . comma_token,
2189 }
2190}
2191# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002192pub fn fold_pat_tuple_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTupleStruct) -> PatTupleStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002193 PatTupleStruct {
2194 path: _visitor.fold_path(_i . path),
2195 pat: _visitor.fold_pat_tuple(_i . pat),
2196 }
2197}
2198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002199pub fn fold_pat_wild<V: Folder + ?Sized>(_visitor: &mut V, _i: PatWild) -> PatWild {
Nika Layzell27726662017-10-24 23:16:35 -04002200 PatWild {
2201 underscore_token: _i . underscore_token,
2202 }
2203}
2204
Nika Layzella6f46c42017-10-26 15:26:16 -04002205pub fn fold_path<V: Folder + ?Sized>(_visitor: &mut V, _i: Path) -> Path {
Nika Layzell27726662017-10-24 23:16:35 -04002206 Path {
2207 leading_colon: _i . leading_colon,
2208 segments: FoldHelper::lift(_i . segments, |it| { _visitor.fold_path_segment(it) }),
2209 }
2210}
Nika Layzellc08227a2017-12-04 16:30:17 -05002211
2212pub fn fold_path_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: PathArguments) -> PathArguments {
2213 use ::PathArguments::*;
2214 match _i {
2215 None => { None }
2216 AngleBracketed(_binding_0, ) => {
2217 AngleBracketed (
2218 _visitor.fold_angle_bracketed_generic_arguments(_binding_0),
2219 )
2220 }
2221 Parenthesized(_binding_0, ) => {
2222 Parenthesized (
2223 _visitor.fold_parenthesized_generic_arguments(_binding_0),
2224 )
2225 }
2226 }
2227}
Nika Layzell27726662017-10-24 23:16:35 -04002228
Nika Layzella6f46c42017-10-26 15:26:16 -04002229pub fn fold_path_segment<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSegment) -> PathSegment {
Nika Layzell27726662017-10-24 23:16:35 -04002230 PathSegment {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002231 ident: _visitor.fold_ident(_i . ident),
Nika Layzellc08227a2017-12-04 16:30:17 -05002232 arguments: _visitor.fold_path_arguments(_i . arguments),
Nika Layzell27726662017-10-24 23:16:35 -04002233 }
2234}
Nika Layzell27726662017-10-24 23:16:35 -04002235
Nika Layzella6f46c42017-10-26 15:26:16 -04002236pub fn fold_poly_trait_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PolyTraitRef) -> PolyTraitRef {
Nika Layzell27726662017-10-24 23:16:35 -04002237 PolyTraitRef {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002238 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002239 trait_ref: _visitor.fold_path(_i . trait_ref),
2240 }
2241}
2242
Nika Layzella6f46c42017-10-26 15:26:16 -04002243pub fn fold_qself<V: Folder + ?Sized>(_visitor: &mut V, _i: QSelf) -> QSelf {
Nika Layzell27726662017-10-24 23:16:35 -04002244 QSelf {
2245 lt_token: _i . lt_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002246 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002247 position: _i . position,
2248 as_token: _i . as_token,
2249 gt_token: _i . gt_token,
2250 }
2251}
2252# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002253pub fn fold_range_limits<V: Folder + ?Sized>(_visitor: &mut V, _i: RangeLimits) -> RangeLimits {
Nika Layzell27726662017-10-24 23:16:35 -04002254 use ::RangeLimits::*;
2255 match _i {
2256 HalfOpen(_binding_0, ) => {
2257 HalfOpen (
2258 _binding_0,
2259 )
2260 }
2261 Closed(_binding_0, ) => {
2262 Closed (
2263 _binding_0,
2264 )
2265 }
2266 }
2267}
David Tolnayf93b90d2017-11-11 19:21:26 -08002268
2269pub fn fold_return_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ReturnType) -> ReturnType {
2270 use ::ReturnType::*;
2271 match _i {
2272 Default => { Default }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002273 Type(_binding_0, _binding_1, ) => {
2274 Type (
2275 _visitor.fold_type(_binding_0),
David Tolnayf93b90d2017-11-11 19:21:26 -08002276 _binding_1,
2277 )
2278 }
2279 }
2280}
Nika Layzellefb83ba2017-12-19 18:23:55 -05002281
2282pub fn fold_span<V: Folder + ?Sized>(_visitor: &mut V, _i: Span) -> Span {
2283 _i
2284}
Nika Layzell27726662017-10-24 23:16:35 -04002285# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002286pub fn fold_stmt<V: Folder + ?Sized>(_visitor: &mut V, _i: Stmt) -> Stmt {
Nika Layzell27726662017-10-24 23:16:35 -04002287 use ::Stmt::*;
2288 match _i {
2289 Local(_binding_0, ) => {
2290 Local (
2291 Box::new(_visitor.fold_local(* _binding_0)),
2292 )
2293 }
2294 Item(_binding_0, ) => {
2295 Item (
2296 Box::new(_visitor.fold_item(* _binding_0)),
2297 )
2298 }
2299 Expr(_binding_0, ) => {
2300 Expr (
2301 Box::new(_visitor.fold_expr(* _binding_0)),
2302 )
2303 }
2304 Semi(_binding_0, _binding_1, ) => {
2305 Semi (
2306 Box::new(_visitor.fold_expr(* _binding_0)),
2307 _binding_1,
2308 )
2309 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002310 Macro(_binding_0, ) => {
2311 Macro (
Nika Layzell27726662017-10-24 23:16:35 -04002312 _binding_0,
2313 )
2314 }
2315 }
2316}
2317
Nika Layzella6f46c42017-10-26 15:26:16 -04002318pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002319 use ::TraitBoundModifier::*;
2320 match _i {
2321 None => { None }
2322 Maybe(_binding_0, ) => {
2323 Maybe (
2324 _binding_0,
2325 )
2326 }
2327 }
2328}
2329# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002330pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002331 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002332 match _i {
2333 Const(_binding_0, ) => {
2334 Const (
2335 _visitor.fold_trait_item_const(_binding_0),
2336 )
2337 }
2338 Method(_binding_0, ) => {
2339 Method (
2340 _visitor.fold_trait_item_method(_binding_0),
2341 )
2342 }
2343 Type(_binding_0, ) => {
2344 Type (
2345 _visitor.fold_trait_item_type(_binding_0),
2346 )
2347 }
2348 Macro(_binding_0, ) => {
2349 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002350 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002351 )
2352 }
2353 }
2354}
2355# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002356pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2357 TraitItemConst {
2358 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2359 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002360 ident: _visitor.fold_ident(_i . ident),
David Tolnayda705bd2017-11-10 21:58:05 -08002361 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002362 ty: _visitor.fold_type(_i . ty),
David Tolnayda705bd2017-11-10 21:58:05 -08002363 default: _i . default,
2364 semi_token: _i . semi_token,
2365 }
2366}
2367# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002368pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2369 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002370 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002371 mac: _visitor.fold_macro(_i . mac),
David Tolnayda705bd2017-11-10 21:58:05 -08002372 }
2373}
2374# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002375pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002376 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002377 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002378 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002379 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002380 semi_token: _i . semi_token,
2381 }
2382}
2383# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002384pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002385 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002386 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002387 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002388 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05002389 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04002390 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002391 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002392 default: _i . default,
2393 semi_token: _i . semi_token,
2394 }
2395}
2396
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002397pub fn fold_type<V: Folder + ?Sized>(_visitor: &mut V, _i: Type) -> Type {
2398 use ::Type::*;
Nika Layzell27726662017-10-24 23:16:35 -04002399 match _i {
2400 Slice(_binding_0, ) => {
2401 Slice (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002402 _visitor.fold_type_slice(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002403 )
2404 }
2405 Array(_binding_0, ) => {
2406 Array (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002407 _visitor.fold_type_array(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002408 )
2409 }
2410 Ptr(_binding_0, ) => {
2411 Ptr (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002412 _visitor.fold_type_ptr(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002413 )
2414 }
David Tolnay0a89b4d2017-11-13 00:55:45 -08002415 Reference(_binding_0, ) => {
2416 Reference (
2417 _visitor.fold_type_reference(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002418 )
2419 }
2420 BareFn(_binding_0, ) => {
2421 BareFn (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002422 _visitor.fold_type_bare_fn(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002423 )
2424 }
2425 Never(_binding_0, ) => {
2426 Never (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002427 _visitor.fold_type_never(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002428 )
2429 }
David Tolnay05362582017-12-26 01:33:57 -05002430 Tuple(_binding_0, ) => {
2431 Tuple (
2432 _visitor.fold_type_tuple(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002433 )
2434 }
2435 Path(_binding_0, ) => {
2436 Path (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002437 _visitor.fold_type_path(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002438 )
2439 }
2440 TraitObject(_binding_0, ) => {
2441 TraitObject (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002442 _visitor.fold_type_trait_object(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002443 )
2444 }
2445 ImplTrait(_binding_0, ) => {
2446 ImplTrait (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002447 _visitor.fold_type_impl_trait(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002448 )
2449 }
2450 Paren(_binding_0, ) => {
2451 Paren (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002452 _visitor.fold_type_paren(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002453 )
2454 }
2455 Group(_binding_0, ) => {
2456 Group (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002457 _visitor.fold_type_group(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002458 )
2459 }
2460 Infer(_binding_0, ) => {
2461 Infer (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002462 _visitor.fold_type_infer(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002463 )
2464 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002465 Macro(_binding_0, ) => {
2466 Macro (
2467 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002468 )
2469 }
2470 }
2471}
2472
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002473pub fn fold_type_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeArray) -> TypeArray {
2474 TypeArray {
Nika Layzell27726662017-10-24 23:16:35 -04002475 bracket_token: _i . bracket_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002476 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002477 semi_token: _i . semi_token,
2478 amt: _visitor.fold_expr(_i . amt),
2479 }
2480}
2481
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002482pub fn fold_type_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBareFn) -> TypeBareFn {
2483 TypeBareFn {
2484 ty: Box::new(_visitor.fold_bare_fn_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002485 }
2486}
2487
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002488pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
2489 TypeBinding {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002490 ident: _visitor.fold_ident(_i . ident),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002491 eq_token: _i . eq_token,
2492 ty: _visitor.fold_type(_i . ty),
2493 }
2494}
2495
2496pub fn fold_type_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeGroup) -> TypeGroup {
2497 TypeGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002498 group_token: _i . group_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002499 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002500 }
2501}
2502
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002503pub fn fold_type_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeImplTrait) -> TypeImplTrait {
2504 TypeImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002505 impl_token: _i . impl_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002506 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002507 }
2508}
2509
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002510pub fn fold_type_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeInfer) -> TypeInfer {
2511 TypeInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002512 underscore_token: _i . underscore_token,
2513 }
2514}
2515
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002516pub fn fold_type_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeNever) -> TypeNever {
2517 TypeNever {
Nika Layzell27726662017-10-24 23:16:35 -04002518 bang_token: _i . bang_token,
2519 }
2520}
2521
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002522pub fn fold_type_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParam) -> TypeParam {
2523 TypeParam {
Nika Layzell27726662017-10-24 23:16:35 -04002524 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002525 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002526 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002527 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002528 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002529 default: (_i . default).map(|it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002530 }
2531}
2532
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002533pub fn fold_type_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParamBound) -> TypeParamBound {
2534 use ::TypeParamBound::*;
Nika Layzell27726662017-10-24 23:16:35 -04002535 match _i {
2536 Trait(_binding_0, _binding_1, ) => {
2537 Trait (
2538 _visitor.fold_poly_trait_ref(_binding_0),
2539 _visitor.fold_trait_bound_modifier(_binding_1),
2540 )
2541 }
2542 Region(_binding_0, ) => {
2543 Region (
2544 _binding_0,
2545 )
2546 }
2547 }
2548}
2549
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002550pub fn fold_type_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParen) -> TypeParen {
2551 TypeParen {
Nika Layzell27726662017-10-24 23:16:35 -04002552 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002553 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002554 }
2555}
2556
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002557pub fn fold_type_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePath) -> TypePath {
2558 TypePath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002559 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002560 path: _visitor.fold_path(_i . path),
2561 }
2562}
2563
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002564pub fn fold_type_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePtr) -> TypePtr {
2565 TypePtr {
Nika Layzell27726662017-10-24 23:16:35 -04002566 star_token: _i . star_token,
2567 const_token: _i . const_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002568 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002569 }
2570}
2571
David Tolnay0a89b4d2017-11-13 00:55:45 -08002572pub fn fold_type_reference<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeReference) -> TypeReference {
2573 TypeReference {
Nika Layzell27726662017-10-24 23:16:35 -04002574 and_token: _i . and_token,
2575 lifetime: _i . lifetime,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002576 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002577 }
2578}
2579
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002580pub fn fold_type_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeSlice) -> TypeSlice {
2581 TypeSlice {
2582 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002583 bracket_token: _i . bracket_token,
2584 }
2585}
2586
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002587pub fn fold_type_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTraitObject) -> TypeTraitObject {
2588 TypeTraitObject {
David Tolnaye45b59f2017-12-25 18:44:49 -05002589 dyn_token: _i . dyn_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002590 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002591 }
2592}
2593
David Tolnay05362582017-12-26 01:33:57 -05002594pub fn fold_type_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTuple) -> TypeTuple {
2595 TypeTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002596 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002597 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002598 lone_comma: _i . lone_comma,
2599 }
2600}
2601
Nika Layzella6f46c42017-10-26 15:26:16 -04002602pub fn fold_un_op<V: Folder + ?Sized>(_visitor: &mut V, _i: UnOp) -> UnOp {
Nika Layzell27726662017-10-24 23:16:35 -04002603 use ::UnOp::*;
2604 match _i {
2605 Deref(_binding_0, ) => {
2606 Deref (
2607 _binding_0,
2608 )
2609 }
2610 Not(_binding_0, ) => {
2611 Not (
2612 _binding_0,
2613 )
2614 }
2615 Neg(_binding_0, ) => {
2616 Neg (
2617 _binding_0,
2618 )
2619 }
2620 }
2621}
2622
Nika Layzella6f46c42017-10-26 15:26:16 -04002623pub fn fold_unsafety<V: Folder + ?Sized>(_visitor: &mut V, _i: Unsafety) -> Unsafety {
Nika Layzell27726662017-10-24 23:16:35 -04002624 use ::Unsafety::*;
2625 match _i {
2626 Unsafe(_binding_0, ) => {
2627 Unsafe (
2628 _binding_0,
2629 )
2630 }
2631 Normal => { Normal }
2632 }
2633}
David Tolnay5f332a92017-12-26 00:42:45 -05002634# [ cfg ( feature = "full" ) ]
2635pub fn fold_use_glob<V: Folder + ?Sized>(_visitor: &mut V, _i: UseGlob) -> UseGlob {
2636 UseGlob {
2637 star_token: _i . star_token,
2638 }
2639}
2640# [ cfg ( feature = "full" ) ]
2641pub fn fold_use_list<V: Folder + ?Sized>(_visitor: &mut V, _i: UseList) -> UseList {
2642 UseList {
2643 brace_token: _i . brace_token,
2644 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_use_tree(it) }),
2645 }
2646}
2647# [ cfg ( feature = "full" ) ]
2648pub fn fold_use_path<V: Folder + ?Sized>(_visitor: &mut V, _i: UsePath) -> UsePath {
2649 UsePath {
2650 ident: _visitor.fold_ident(_i . ident),
2651 rename: _i . rename,
2652 }
2653}
2654# [ cfg ( feature = "full" ) ]
2655pub fn fold_use_tree<V: Folder + ?Sized>(_visitor: &mut V, _i: UseTree) -> UseTree {
2656 use ::UseTree::*;
2657 match _i {
2658 Path(_binding_0, ) => {
2659 Path (
2660 _visitor.fold_use_path(_binding_0),
2661 )
2662 }
2663 Glob(_binding_0, ) => {
2664 Glob (
2665 _visitor.fold_use_glob(_binding_0),
2666 )
2667 }
2668 List(_binding_0, ) => {
2669 List (
2670 _visitor.fold_use_list(_binding_0),
2671 )
2672 }
2673 }
2674}
Nika Layzell27726662017-10-24 23:16:35 -04002675
Nika Layzella6f46c42017-10-26 15:26:16 -04002676pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002677 Variant {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002678 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002679 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2680 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002681 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002682 eq_token: _i . eq_token,
2683 }
2684}
2685
Nika Layzella6f46c42017-10-26 15:26:16 -04002686pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002687 use ::VariantData::*;
2688 match _i {
2689 Struct(_binding_0, _binding_1, ) => {
2690 Struct (
2691 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2692 _binding_1,
2693 )
2694 }
2695 Tuple(_binding_0, _binding_1, ) => {
2696 Tuple (
2697 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2698 _binding_1,
2699 )
2700 }
2701 Unit => { Unit }
2702 }
2703}
Nika Layzell27726662017-10-24 23:16:35 -04002704
Nika Layzella6f46c42017-10-26 15:26:16 -04002705pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002706 VisCrate {
2707 pub_token: _i . pub_token,
2708 paren_token: _i . paren_token,
2709 crate_token: _i . crate_token,
2710 }
2711}
2712
Nika Layzella6f46c42017-10-26 15:26:16 -04002713pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002714 VisInherited {
2715 }
2716}
2717
Nika Layzella6f46c42017-10-26 15:26:16 -04002718pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002719 VisPublic {
2720 pub_token: _i . pub_token,
2721 }
2722}
2723
Nika Layzella6f46c42017-10-26 15:26:16 -04002724pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002725 VisRestricted {
2726 pub_token: _i . pub_token,
2727 paren_token: _i . paren_token,
2728 in_token: _i . in_token,
2729 path: Box::new(_visitor.fold_path(* _i . path)),
2730 }
2731}
2732
Nika Layzella6f46c42017-10-26 15:26:16 -04002733pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002734 use ::Visibility::*;
2735 match _i {
2736 Public(_binding_0, ) => {
2737 Public (
2738 _visitor.fold_vis_public(_binding_0),
2739 )
2740 }
2741 Crate(_binding_0, ) => {
2742 Crate (
2743 _visitor.fold_vis_crate(_binding_0),
2744 )
2745 }
2746 Restricted(_binding_0, ) => {
2747 Restricted (
2748 _visitor.fold_vis_restricted(_binding_0),
2749 )
2750 }
2751 Inherited(_binding_0, ) => {
2752 Inherited (
2753 _visitor.fold_vis_inherited(_binding_0),
2754 )
2755 }
2756 }
2757}
2758
Nika Layzella6f46c42017-10-26 15:26:16 -04002759pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002760 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002761 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002762 bounded_ty: _visitor.fold_type(_i . bounded_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002763 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002764 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002765 }
2766}
2767
Nika Layzella6f46c42017-10-26 15:26:16 -04002768pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002769 WhereClause {
2770 where_token: _i . where_token,
2771 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2772 }
2773}
2774
Nika Layzella6f46c42017-10-26 15:26:16 -04002775pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002776 WhereEqPredicate {
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002777 lhs_ty: _visitor.fold_type(_i . lhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002778 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002779 rhs_ty: _visitor.fold_type(_i . rhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002780 }
2781}
2782
Nika Layzella6f46c42017-10-26 15:26:16 -04002783pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002784 use ::WherePredicate::*;
2785 match _i {
2786 BoundPredicate(_binding_0, ) => {
2787 BoundPredicate (
2788 _visitor.fold_where_bound_predicate(_binding_0),
2789 )
2790 }
2791 RegionPredicate(_binding_0, ) => {
2792 RegionPredicate (
2793 _visitor.fold_where_region_predicate(_binding_0),
2794 )
2795 }
2796 EqPredicate(_binding_0, ) => {
2797 EqPredicate (
2798 _visitor.fold_where_eq_predicate(_binding_0),
2799 )
2800 }
2801 }
2802}
2803
Nika Layzella6f46c42017-10-26 15:26:16 -04002804pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002805 WhereRegionPredicate {
2806 lifetime: _i . lifetime,
2807 colon_token: _i . colon_token,
2808 bounds: _i . bounds,
2809 }
2810}
2811